[Glass] GsDevKit_Stones, Rowan, Development UI, GIT and all other questions ..

Dale Henrichs dale.henrichs at gemtalksystems.com
Fri Jun 28 11:38:32 PDT 2024


Marten,

Very good questions ... personally, I've been wondering why questions like
these haven't popped up before now.

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.

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.

What is Rowan ? -- What is FileTree ? -- What is Tonel ? -- Which IDE's are
> supporting Rowan ?


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
...

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.

[image: image.png]
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.

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.

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.

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.

So, what is going today with Jade ?

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.

What is GsDevKit_home and GsDevKit_stones ?

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.

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.

So, now the open questions: What way should a user go ? What is really
> working ? What are the ways from now to a git/rowan world ? And which
> UIs should be used to develop (and please - what IS available !).


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).

Rowan is not ready for prime time and when it is ready, it will need to be
used with the latest version of GemStone ...

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.

Once the stones are built, it looks like Jade[7], topaz and GBS are your
only options development environments right now.

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 ...

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.

Dale

[1] https://github.com/GemTalk/JadeiteForPharo
[2] https://github.com/GemTalk/Rowan
[3] https://github.com/GsDevKit/GsDevKit_stones
[4] https://github.com/GsDevKit/GsDevKit_stones/blob/v2.1/tests/test_tode.sh
[5] https://github.com/GsDevKit/GsDevKit_stones/tree/v2.1/bin
[6] https://github.com/GsDevKit/GsDevKit_stones/tree/v2.1/src
[7] https://github.com/jgfoster/Jade
[8] https://github.com/dalehenrich/Rowan4GsDevKit
[9]
https://github.com/dalehenrich/Rowan4GsDevKit/blob/master/tests/master_gsApplicationTools_seaside_zinc.sh
[10] https://github.com/feenkcom/gt4gemstone
[11] https://github.com/feenkcom/gtoolkit


On Fri, Jun 28, 2024 at 4:18 AM Marten Feldtmann via Glass <
glass at lists.gemtalksystems.com> wrote:

> Hello,
>
> due to the changes we have to face in the Gemstone/S development scene,
> I would like to ask questions about these new terms. Perhaps the
> questions might seems silly or stupid (or "He does not know that ????").
>
> What is Rowan ?
>
> Rowan is a new Project/Package manager for Smalltalk supporting FileTree
> and Tonel repositories (https://github.com/GemTalk/Rowan). It seems,
> that a Gemstone extent is available with Rowan installed since version
> Gemstone/S 3.6.4.
>
> What is FileTree ?
>
> FileTree describes an export format for Smalltalk code. Each method gets
> its own file just describing the method. The drawbacks of FileTree: lots
> of files, slow. Plus: git.
>
> What is Tonel ?
>
> Tonel describes an export format for Smalltalk code - on a class based
> approach. So it reduces the number of files dramatically - but the level
> of description is now class oriented.
>
> Which IDE's are supporting Rowan ?
>
> And there should be a UI named Jadeite
> (https://github.com/GemTalk/Jadeite) suitable to work with Rowan, which
> latest version has been published March/2023 - 3.2.17. This one seems to
> be supposed to work with Gemstone/S 3.7.0.
>
> So, what is going today with Jade ?
>
> As I assume, if you want to work with Jade and git - you must define a
> GIT repository. Clone it locally on the Gemstone server. Define a
> repository with type "filetree" in that cloned repository and then you
> have your code in GIT (either via locally commit and/or a push to your
> specific git server). More Information are available at:
> https://github.com/dalehenrich/filetree.
>
> So I assume, that when working only with filetree repositories in Jade
> there should be a smoother jump into the Rowan world ???
>
> What is GsDevKit_home and GsDevKit_stones ?
>
> Both projects located at github and Gemstone/S management tools:
> installation, updating, backupand so on. GsDevKit_homes uses a 32bit
> Pharo implementation to do the work - and this is getting more and more
> difficult today, because all the Linux distributions signal very load,
> that the 32bit layers are obsolete in the future.
>
> GsDevKit_stones is a rewrite of that - but with other structures and it
> uses Gemstone itself for executing code.
>
> ==============
>
> So, now the open questions: What way should a user go ? What is really
> working ? What are the ways from now to a git/rowan world ? And which
> UIs should be used to develop (and please - what IS available !).
>
> And feel free to add remarks to the points above - I may be wrong when
> summarize them
>
> ==============
>
> Personal Remark:
>
> Well I have to make a personal remark - Monticelo, FileTree and Tonel
> are attempts to store source code of Smalltalk somehow. FileTree and
> Tonel are attempts to use the popularity of github (and git). Using the
> popularity of git is ok and I can understand that. But none of these
> formats of storing source code gives you the power of ENVY, which is now
> around for 40 years. I understand, that the younger Smalltalkers have
> never seen that and that is a pity. I know from the non-Smalltalker
> world, that source code repositories are a no-go. I am still working
> with ENVY in VASmalltalk, and it still the most powerful source code
> management system I have ever used so far for Smalltalk.
>
> The introduction of Monticello, FileTree and Tonel offers you two
> advantages:
>
> * be - in some kind until one of the Smalltalk does change the language
> syntax - in a position to exchange the source code between Smalltalk
> dialects.
>
> * be prepared to manage non-Smalltalk (icons, documentation, readmes,
> ...) stuff in your repositoy - the only disadvantage ENVY has.
>
>
>
>
> _______________________________________________
> Glass mailing list
> Glass at lists.gemtalksystems.com
> https://lists.gemtalksystems.com/mailman/listinfo/glass
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/archives/glass/attachments/20240628/88d180a6/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 866402 bytes
Desc: not available
URL: <http://lists.gemtalksystems.com/mailman/archives/glass/attachments/20240628/88d180a6/attachment-0001.png>


More information about the Glass mailing list