Hi Joachim,
On Wed, May 20, 2020 at 1:12 AM Joachim Tuchel <
jtu...@objektfabrik.de> wrote:
> I would say I have some initial experience with Smalltalk, but I still wonder how I would start using git with VAST. Do you have any pointers to documentation on
> how to load code from your git repository into VAST
> how to export code from VAST into a git repository
These two are described in the Tonel README[1], and
will be updated soon as the 1.1 milestone is achieved.
> how to cooperate with other developers using a git repository
The existing ENVY tools continue to provide the value and features as
they always did, and you still will need EM/Library to merge, compare,
etc.
However, the tonel-tools scope is to import/export with the added
features like loading from a Tonel based repository into your image,
and in most cases also version these changes directly into the
library, load prerequisites, etc.
> how to port a project on Github (say a new Seaside version, or some simpler project as a start ;-) ) to VAST
I wouldn't start by one of the most complex projects among Smalltalk
dialects, but even with simple ones there are many caveats, some of
which has been addressed, and others that are in the backlog.
You can read the recommendations for interoperability [2].
> Would you say that what we have now is ready for the last point?
> I have the feeling that a lot of building blocks are now existing, but I don't have a full picture on what is possible now and what might be missing.
Most of the building blocks are, but I don't think it is ready for
something like that initially.
We wanted to provide file based SCM support for VAST users for their
applications, and of course choosing a format that is supported by
other dialects like Tonel would bridge the gap that there is among
dialects, enabling interoperation. And I emphasize the "bridging"
part, because some gaps cannot be closed due to strong semantic
differences, features support, implementation details, etc.
Some limitations are due to these semantic mismatchs, and other due to
limitations in the Tonel format itself (which in some cases we worked
around).
But there are a few cases of people needing to maintain the same
project both in VAST and Pharo, and we got quite a feedback (and
feature requests) that are also in the backlog to address these
things.
> I personally dream of an environment where I can download the latest Glorp, Seaside, whatever version from Github into VAST, fix a bug or write a little improvement and contribute it back to the central repository (creating a pull request, that is) directly into THE Glorp project (which is not existent yet, as long as the Company maintaning Glorp is not willing to share code openly, so Seaside or NeoJSON are probably better examples).
>
> How far away are we from this vision? What is there and what is missing? How would I start?
So to summarize, if you use the tonel-vast tools you will be able to
use a file based SCM to export/import VAST apps [3] and use the
convenience of git features, and it is very likely you will be able to
import existing packages from other dialects.
But I'd say it's early for that vision in the current milestone, once
the 1.2 milestone is reached I think we'll be closer.
You can watch the slides from my presentation [4] to get an overview,
some of the features in the roadmap were already completed, and new
ones are being introduced as adoption grows.
If you have further questions, I'll be happy to answer them or update
the documentation accordingly.
Best regards,
[1]
https://github.com/instantiations/tonel-vast/#programmatically
[2]
https://github.com/instantiations/tonel-vast/blob/master/docs/compatibility.md
[3] Except for shadow applications
[4]
https://www.slideshare.net/FASTPresentations/tonel-repositories-in-va-smalltalk-by-esteban-maringolo