Beginner questions about Gemstone and Pharo

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Beginner questions about Gemstone and Pharo

Gemstone/S mailing list
Hi,

Yesterday I started to look into Gemstone, I followed the documentation on GsDevKit_home github page[1], and now... I have beginner questions :)

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?

In that case how can we load another version of Seaside? Via Metacello in a workspace? How do we manage to start and stop seaside gems if we install Seaside via Metacello?

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 think it will be a good beginning. When I will know the answers I will probably have more questions.

Thank you in advance.



--
Cyril Ferlicot

2 rue Jacques Prévert 01,
59650 Villeneuve d'ascq France



_______________________________________________
GemStone-Smalltalk mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Beginner questions about Gemstone and Pharo

Gemstone/S mailing list


On Wed, Oct 4, 2017 at 6:03 AM, Cyril Ferlicot D. via GemStone-Smalltalk <[hidden email]> 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. 

 
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.
   

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. 
 

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



I think it will be a good beginning. When I will know the answers I will probably have more questions.



Welcome. Ask as much as you need!

 
Thank you in advance.



--
Cyril Ferlicot

2 rue Jacques Prévert 01,
59650 Villeneuve d'ascq France



_______________________________________________
GemStone-Smalltalk mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk




--

_______________________________________________
GemStone-Smalltalk mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Beginner questions about Gemstone and Pharo

Gemstone/S mailing list



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 <[hidden email]> 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


_______________________________________________
GemStone-Smalltalk mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk