<div dir="ltr"><div>Marten,</div><div><br></div><div>Very good questions ... personally, I've been wondering why questions like these haven't popped up before now.</div><div><br></div><div>I think it is important to note that with the exception of Rowan and Jadeite ... all of the projects and technology that you mention are open source projects and the health and longevity of these projects is a function of "community support". There is a community out there but the community is a small fraction of the folks who are using the technology ... and that is the norm in today's world.</div><div><br></div><div>However, it means that if you want to see something going in a direction that you don't like, then please feel free to step up and implement/support the functionality that you need.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">What is Rowan ? -- What is FileTree ? -- What is Tonel ? -- Which IDE's are supporting Rowan ?</blockquote><div> </div><div>Rowan and Jadeite are aimed at becoming the officially supported development environment for GemStone. Rowan and Jadeite are not ready for prime time, but a small internal team of us are working hard to get there ... I should point out, that we are focusing on JadeitForPharo[1] as the primary development environment, since Pharo runs on Windows, Linux and Mac ... <br></div><div><br></div><div>As of 3.7.1 you can see that extent0.rowan.dbf and extent0.rowan3.dbf are present in $GEMSTONE/bin. They are publicly available, because there are a few developers out there able to use these pre-alpha releases to their advantage, despite the missing functionality. We have one commercial customer using Rowan 1 and a handful of folks are using Rowan 2. When we do release Rowan for general use it will be Rowan 3 and JadeiteForPharo is written to run against Rowan 3.</div><div><br></div><div><img src="cid:ii_lxyyvt6x1" alt="image.png" width="428" height="222"><br>JadeiteForPharo provides a complete Rowan-based development environment.
 The project console provides the ability to manage Rowan projects. The 
project browser gives you access to the classes and methods in a 
project. You can move methods and classes between packages/projects.</div><div><br></div><div><div>topaz will have integrated Rowan support, so the full range of 
Rowan functionality available in JadeiteForPharo (project/package 
management) will be available from the command line.<br></div><div><br></div></div><div>Rowan reads and writes FileTree and Tonel format repositories. FileTree and Tonel are disk-based formats and developers are free to use their favorite disk-based SCM. Rowan has built in support for git. If required, support for additional SCMs could be added in the future ... and given the fact that Rowan[2] is an open source project itself, developers can propose additional extensions for inclusion via pull requests on github.</div><div><br></div><div>We do not have plans to support monticello mcz files in Rowan, however it is relatively easy to copy a monticello mcz file to filetree using tODE. The tODE GUI depends upon 32 bit Pharo, but a tODE image built using GsDevKit_stones[3] can be used to do the conversion from the command line. This script[4] can be used as a template for creating a tODE stone and if you are interested, I can supply you with the todeIt commands needed to convert an mcz file into filetree format.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">So, what is going today with Jade ?</blockquote><div>You will be able to use Jade, GBS, and topaz to edit source code in a Rowan 3 image. For writing and loading Rowan projects/packages you will need to use Smalltalk doits, .stone scripts, JadeiteForPharo or topaz.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">What is GsDevKit_home and GsDevKit_stones ?</blockquote><div>Your are pretty much spot on with your comments about GsDevKit_home and GsDevKit_stones. GsDevKit_stones is not finished but it is functional with regards to basic stone management (create/start/stop/delete/newExtent). Unlike GsDevKit_home which had a very rigid (and complicated) directory structure, GsDevKit_stones give the user complete control over directory structure which is recorded in a registry, or collection of .ston files where your decisions are recorded. Then a set of .stone and .solo scripts[5] share a common code base[6] for working with the registry data structures.</div><div><br></div><div>If you want to create the stones as built in GsDevKit_home, take a look at test_tode.sh[4] and adapt it to your needs ... nearly all of the tODE commands used interactively in a tODE GUI can be run via the todeIt.stone command.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">So, now the open questions: What way should a user go ? What is really<br>
working ? What are the ways from now to a git/rowan world ? And which<br>
UIs should be used to develop (and please - what IS available !).</blockquote><div><br></div>The tODE GUI no longer can no longer be used on the most recent Linux and Mac (this has been true for the last 5 years or so).<div><div><br></div><div>Rowan is not ready for prime time and when it is ready, it will need to be used with the latest version of GemStone ...</div><div><br></div></div><div>If you are using tODE-based stones, then GsDevKit_stones should be used to build a stone using the loadTODE.stone and the metacelloLoad.stone scripts . It is probably worth looking at the scripts that are part of the Rowan4GsDevKit[8] project for examples. While it is not practical to use Rowan to develop the current GLASS/Seaside projects, the master_gsApplicationTools_seaside_zinc.sh[9] script is an example of doing a complete Seaside install into a stone created via loadTODE.stone ... so you should be able to take inspiration from that to build and maintain your own stones.<br></div><div><br></div><div>Once the stones are built, it looks like Jade[7], topaz and GBS are 
your only options development environments right now. </div><div><br></div><div>There are some folks that do development in Pharo and deploy in GemStone sot that is another option to consider ... it would entail porting your project to Pharo and coming up with a GemStone compatibility strategy ...</div><div><br></div><div>There is also gt4gemstone[10] part of the feenk gtoolkit suite[11]. I haven't had the time to explore the most recent release of gt4gemstone for 3.7.1 ... they don't have a full-fledged development environment for GemStone, but they do have limited code editing and debugging capabilities.</div><div><br></div><div>Dale</div><div><br></div><div><div>[1] <a href="https://github.com/GemTalk/JadeiteForPharo">https://github.com/GemTalk/JadeiteForPharo</a></div><div>[2] <a href="https://github.com/GemTalk/Rowan">https://github.com/GemTalk/Rowan</a></div><div>[3] <a href="https://github.com/GsDevKit/GsDevKit_stones">https://github.com/GsDevKit/GsDevKit_stones</a></div><div>[4] <a href="https://github.com/GsDevKit/GsDevKit_stones/blob/v2.1/tests/test_tode.sh">https://github.com/GsDevKit/GsDevKit_stones/blob/v2.1/tests/test_tode.sh</a></div><div>[5] <a href="https://github.com/GsDevKit/GsDevKit_stones/tree/v2.1/bin">https://github.com/GsDevKit/GsDevKit_stones/tree/v2.1/bin</a></div><div>[6] <a href="https://github.com/GsDevKit/GsDevKit_stones/tree/v2.1/src">https://github.com/GsDevKit/GsDevKit_stones/tree/v2.1/src</a></div><div>[7] <a href="https://github.com/jgfoster/Jade">https://github.com/jgfoster/Jade</a></div><div>[8] <a href="https://github.com/dalehenrich/Rowan4GsDevKit">https://github.com/dalehenrich/Rowan4GsDevKit</a></div><div>[9] <a href="https://github.com/dalehenrich/Rowan4GsDevKit/blob/master/tests/master_gsApplicationTools_seaside_zinc.sh">https://github.com/dalehenrich/Rowan4GsDevKit/blob/master/tests/master_gsApplicationTools_seaside_zinc.sh</a></div><div>[10] <a href="https://github.com/feenkcom/gt4gemstone">https://github.com/feenkcom/gt4gemstone</a></div><div>[11] <a href="https://github.com/feenkcom/gtoolkit">https://github.com/feenkcom/gtoolkit</a></div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jun 28, 2024 at 4:18 AM Marten Feldtmann via Glass <<a href="mailto:glass@lists.gemtalksystems.com">glass@lists.gemtalksystems.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello,<br>
<br>
due to the changes we have to face in the Gemstone/S development scene,<br>
I would like to ask questions about these new terms. Perhaps the<br>
questions might seems silly or stupid (or "He does not know that ????").<br>
<br>
What is Rowan ?<br>
<br>
Rowan is a new Project/Package manager for Smalltalk supporting FileTree<br>
and Tonel repositories (<a href="https://github.com/GemTalk/Rowan" rel="noreferrer" target="_blank">https://github.com/GemTalk/Rowan</a>). It seems,<br>
that a Gemstone extent is available with Rowan installed since version<br>
Gemstone/S 3.6.4.<br>
<br>
What is FileTree ?<br>
<br>
FileTree describes an export format for Smalltalk code. Each method gets<br>
its own file just describing the method. The drawbacks of FileTree: lots<br>
of files, slow. Plus: git.<br>
<br>
What is Tonel ?<br>
<br>
Tonel describes an export format for Smalltalk code - on a class based<br>
approach. So it reduces the number of files dramatically - but the level<br>
of description is now class oriented.<br>
<br>
Which IDE's are supporting Rowan ?<br>
<br>
And there should be a UI named Jadeite<br>
(<a href="https://github.com/GemTalk/Jadeite" rel="noreferrer" target="_blank">https://github.com/GemTalk/Jadeite</a>) suitable to work with Rowan, which<br>
latest version has been published March/2023 - 3.2.17. This one seems to<br>
be supposed to work with Gemstone/S 3.7.0.<br>
<br>
So, what is going today with Jade ?<br>
<br>
As I assume, if you want to work with Jade and git - you must define a<br>
GIT repository. Clone it locally on the Gemstone server. Define a<br>
repository with type "filetree" in that cloned repository and then you<br>
have your code in GIT (either via locally commit and/or a push to your<br>
specific git server). More Information are available at:<br>
<a href="https://github.com/dalehenrich/filetree" rel="noreferrer" target="_blank">https://github.com/dalehenrich/filetree</a>.<br>
<br>
So I assume, that when working only with filetree repositories in Jade<br>
there should be a smoother jump into the Rowan world ???<br>
<br>
What is GsDevKit_home and GsDevKit_stones ?<br>
<br>
Both projects located at github and Gemstone/S management tools:<br>
installation, updating, backupand so on. GsDevKit_homes uses a 32bit<br>
Pharo implementation to do the work - and this is getting more and more<br>
difficult today, because all the Linux distributions signal very load,<br>
that the 32bit layers are obsolete in the future.<br>
<br>
GsDevKit_stones is a rewrite of that - but with other structures and it<br>
uses Gemstone itself for executing code.<br>
<br>
==============<br>
<br>
So, now the open questions: What way should a user go ? What is really<br>
working ? What are the ways from now to a git/rowan world ? And which<br>
UIs should be used to develop (and please - what IS available !).<br>
<br>
And feel free to add remarks to the points above - I may be wrong when<br>
summarize them<br>
<br>
==============<br>
<br>
Personal Remark:<br>
<br>
Well I have to make a personal remark - Monticelo, FileTree and Tonel<br>
are attempts to store source code of Smalltalk somehow. FileTree and<br>
Tonel are attempts to use the popularity of github (and git). Using the<br>
popularity of git is ok and I can understand that. But none of these<br>
formats of storing source code gives you the power of ENVY, which is now<br>
around for 40 years. I understand, that the younger Smalltalkers have<br>
never seen that and that is a pity. I know from the non-Smalltalker<br>
world, that source code repositories are a no-go. I am still working<br>
with ENVY in VASmalltalk, and it still the most powerful source code<br>
management system I have ever used so far for Smalltalk.<br>
<br>
The introduction of Monticello, FileTree and Tonel offers you two<br>
advantages:<br>
<br>
* be - in some kind until one of the Smalltalk does change the language<br>
syntax - in a position to exchange the source code between Smalltalk<br>
dialects.<br>
<br>
* be prepared to manage non-Smalltalk (icons, documentation, readmes,<br>
...) stuff in your repositoy - the only disadvantage ENVY has.<br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
Glass mailing list<br>
<a href="mailto:Glass@lists.gemtalksystems.com" target="_blank">Glass@lists.gemtalksystems.com</a><br>
<a href="https://lists.gemtalksystems.com/mailman/listinfo/glass" rel="noreferrer" target="_blank">https://lists.gemtalksystems.com/mailman/listinfo/glass</a><br>
</blockquote></div>