[GemStone-Smalltalk] Beginner questions about Gemstone and Pharo

Dale Henrichs via GemStone-Smalltalk gemstone-smalltalk at lists.gemtalksystems.com
Mon Oct 9 16:06:02 PDT 2017



On 10/04/2017 05:36 AM, Mariano Martinez Peck via GemStone-Smalltalk wrote:
>
>
> On Wed, Oct 4, 2017 at 6:03 AM, Cyril Ferlicot D. via 
> GemStone-Smalltalk <gemstone-smalltalk at lists.gemtalksystems.com 
> <mailto:gemstone-smalltalk at lists.gemtalksystems.com>> wrote:
>
>     Hi,
>
>     Yesterday I started to look into Gemstone, I followed the
>     documentation on GsDevKit_home github page[1], and now... I have
>     beginner questions :)
>
>
> Hi Cyril, nice to see you around here!
>
>     1) I saw that there is a way to directly install Seaside in
>     Gemstone with GsDevKit_home. But it seems that it uses the version
>     3.1 of Seaside, but we use 3.2 at our company. Is it possible to
>     use another version of Seaside without problem?
>
>
> Yeah, that Seaside project inside GsDevKit_home was kind of both 
> things together...a port of Seaside code from shub to Git (and 
> GemStone) as well as some extensions (scripts) for running Seaside on 
> Gs (like starting and stopping gems etc). I think that project was 
> BEFORE the existance of https://github.com/SeasideSt/Seaside
>
> I haven't use this myself so I cannot comment much more.
Here are the tODE commands for downloading and installing Seaside32:

   project entry 
--url=http://gsdevkit.github.io/GsDevKit_home/Seaside32.ston 
/sys/local/server/projects
   project install Seaside3
   project load Seaside3

The `project entry` command, downloads the project entry from 
http://gsdevkit.github.io/GsDevKit_home. The project entry can be edited 
(`edit /sys/local/server/projects/Seaside32`) and customized to your 
liking in terms of where to clone the project and what groups/packages 
to load for Metacello.

The `project install` command clones the SeasideSt/Seaside project from 
Github (Seaside3.2). The install command locks the project entries, 
which means that the `Metacello lock` is automatically performed in 
every stone created within the GsDevKit_home environment.

The `project load` command loads Seaside from the local clone.

Unfortunately, I am a bit behind the times at the moment and haven't 
updated the Seaside examples and documentation and scripts for 
GsDevKit_home .... I'm only a couple of years behind on my todo list ...

>
>     In that case how can we load another version of Seaside? Via
>     Metacello in a workspace?
>
>
>
> That's one way, and that's what I do. In my case, I have a 
> ConfigurationOfMyApp which loads Seaside in different ways in Pharo 
> and in GemStone (I can share the Configuration of with you if you 
> want).  For example, you can do this:
>
>
> Metacello new
>    baseline: 'Seaside3';
>    repository: 'github://SeasideSt/Seaside:v3.2.4/repository';
>    get;
>    load: #('Core' 'Zinc-Seaside' 'Javascript' 'JQuery' 'JSON' 
> 'FastCGI' 'Email' 'Filesystem' 'CI');
>    lock.
>
I would like to encourage folks to work with local git clones of GitHub 
projects (using project entries), so that any bugfixes and local 
modifications can be managed using git projects ... doing this with 
manual scripts can be a bit tiresome.
>
>     How do we manage to start and stop seaside gems if we install
>     Seaside via Metacello?
>
>
> That's excellent question. In my case, I use some fork of the original 
> bash scripts that come with GemStone to start/stop seaside gems. Those 
> are in $GEMSTONE/seaside/bin
> Try looking in
>
> $GS_HOME/shared/downloads/products/GemStone64BitXXX-x86_64.Linux/seaside/bin
>
> BTW, in my opinion those scripts are still a bit limited. I have 
> improved them but I am not sure how to share them back into the 
> product. If you want them, let me know and I can send it to you. Maybe 
> Dale has a better recommendation for sharing this kind of thing.
You can also take a look at the gemServer script used in 
GsDevKit/Seaside31[1] (it will work with Seaside32). The script is 
written to provide easy acess to the gsApplicationTools project[2]. 
There is even fairly comprehensive documentation on the functionality 
supported by gsApplicationTools[3].

[1] https://github.com/GsDevKit/Seaside31/blob/gs_master/tode/gemServer.ston
[2] https://github.com/GsDevKit/gsApplicationTools
[3] 
https://github.com/GsDevKit/gsApplicationTools/blob/master/docs/gettingStarted.md#getting-started-with-gem-servers
>
>     2) We currently have all our tools in Pharo and we want to deploy
>     on Gemstone. It's a little fuzzy for me currently to know how to
>     do that.
>
>     Should we create a tode project  for each of our projects and
>     dependencies? If yes, is there a tutorial somewhere about how to
>     do it? In the documentation[1], I only found how to create a new
>     project from scratch.
>
>     Or should we just use Metacello in a workspace?
>
>
>
> I use Metacello in a workspace and I load my code with Metacello and 
> Gofer. Similarly as I do in Pharo but on GemStone. As you correctly 
> say, GsDevKit / tODE supports "projects" but I have never use them so 
> I cannot say much. I think Dale recommends using Projects ...
The lowest common denominator between Pharo and GemStone is going to be 
Metacello and gofer scripts ... I have plans to do a better job of 
supporting the "develop in Pharo deploy in GemStone" methodology by 
leveraging gt4gemstone[4], but I am still on the ground floor in terms 
of fleshing out what that really means ...

I would definitely be interested in getting feedback from the folks that 
are currently doing "develop in Pharo deploy in GemStone" to see where 
things can be improved ... but it will be several months before I would 
begin work in that area.

My next project is to clean up the GLASS/GsDevKit upgrade process ... 
When 3.4 is released it will be possible to load GsDevKit/GsDevKit[5] 
directly into the base image using Cypress 1 and Metacello[7] without 
going through the old Monticello bootstrap process ... this should 
streamline the process of upgrading to new versions of GemStone as well 
as speed up the stone creation process., This work is expected to take a 
couple of months to complete.

Dale

[4] https://github.com/feenkcom/gt4gemstone
[5] https://github.com/GsDevKit/GsDevKit/tree/gs_port
[6] https://github.com/Metacello/metacello/tree/gs_port

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/gemstone-smalltalk/attachments/20171009/51a50ad3/attachment.html>


More information about the GemStone-Smalltalk mailing list