Esteban, This is why I'm bringing up the idea of MetacelloProjectLoadSpec now ... my current thoughts are that MetacelloProjectLoadSpec would look like a cross between the CatalogProject, TDProjectEntry, and SCIMetacelloLoadSpec. Here are some initial examples for a ConfigurationOf and and a BaselineOf project: MetacelloProjectLoadSpec { #name : 'A4BP', #metacello : { #configuration : 'A4BP', #repository : 'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo50/main', #version : #stable, #loads : [ 'Core' ], #locked : false }, #projectUrl : 'http://a4bp.com/', #description : 'A4BP (Assessment for Business Process).\rSee more here: http://a4bp.com/', #keywords : [ 'development', 'bpmn' ], #platforms : [ #pharo ] } MetacelloProjectLoadSpec { #name : 'Tugrik', #metacello : { #baseline : 'Tugrik', #repository : 'gitfiletree://github.com/dalehenrich/Tugrik:master/repository', #onWarningLog : true, #loads : [ 'default' ], #locked : true }, #projectUrl : 'https://github.com/dalehenrich/Tugrik#tugrik', #description : 'Voyage client for GemStone', #keywords : [ 'persistence', 'voyage' ], #properties : { #tode_InstallSscript : 'project clone --https --local Tugrik', #tode_PostInstallScript : 'mount @/sys/stone/dirs/Tugrik/gsdevkit/tode /home tugrik' }, #platforms : [ #pharo, #gemstone ] } If we assume that the .ston files will be hosted directly in the github project then something like the following would be possible: 'https://raw.githubusercontent.com/GsDevKit/GsDevKit_home/gh-pages/Tugrik.sto...' asMetacelloProjectLoadSpec load or: 'https://raw.githubusercontent.com/GsDevKit/GsDevKit_home/gh-pages/Tugrik.sto...' metacelloLoad for sharing customized local project load specs : (FileLocator projectDirectory / 'A4BP.ston') asMetacelloProjectLoadSpec load or: (FileLocator projectDirectory / 'Tugrik.ston') metacelloLoad The above assumes that you may only want to load a project ... but if you've customized your load spec (i.e., have a local git clone that you always want used) you may just want to lock the project in your image without loading. Then you'd do something like the following: (FileLocator projectDirectory / 'A4BP.ston') asMetacelloProjectLoadSpec lock Of course a tool similar to the CatalogBrowser for local projects could be written to manage the contents of the `FileLocator projectDirectory` ... this is what the tODE project list does: project list Presumably the catalog browser could be easily converted to use MetacelloProjectLoadSpecs ... the issue of how to register a project load spec for a baseline still remains, but Pharo could accept pull requests for a github project where the user simply submits a .ston file for their project - a cross between https://github.com/GsDevKit/GsDevKit_home/tree/gh-pages and https://github.com/dalehenrich/nosql-database.org... ... just some thoughts .... Dale On 10/22/16 9:41 AM, Esteban Lorenzano wrote:
Catalog is a âtemporary solutionâ for a problem that is already 2 years around⦠is not what I would like, and certainly is far from perfect. One of this days I will come with a solution that can allow baselines, for exampleâ¦
Esteban
On 22 Oct 2016, at 18:37, Dale Henrichs <dale.henrichs@gemtalksystems.com <mailto:dale.henrichs@gemtalksystems.com>> wrote:
I'm wrong ... I hadn't followed the whole chain. Although as I've mentioned in another post, the Catalog is wired to ConfigurationOf and is Pharo-specific ... A common "project load spec" could be plugged into the CatalogBrowser framework and provide ConfigurationOf and BaselineOf support ...
Dale
On 10/22/16 8:31 AM, phil@highoctane.be wrote:
CatalogProvider projectNamed: 'QuickAccess'
is doing that already.
Or I am mistaken? Phil
On Sat, Oct 22, 2016 at 3:50 PM, Dale Henrichs <dale.henrichs@gemtalksystems.com <mailto:dale.henrichs@gemtalksystems.com>> wrote:
On 10/22/16 3:09 AM, Esteban Lorenzano wrote:
On 22 Oct 2016, at 10:56, Dimitris Chloupis <kilon.alios@gmail.com <mailto:kilon.alios@gmail.com>> wrote:
We need some easy to use gem-style installer on the command line.
we have it:
./pharo Pharo.image get Seaside3
will load seaside into your Pharo.image
this is catalog based, of course (there is no magic there, if you want an easy way to install things, you need a centralised repository).
Esteban
ps: there are a lot of perks like that people ignores⦠what we actually need is a better documentation system :)
Esteban,
I really think that the catalog could benefit by a first class objects like the TDProjectEntry and MetacelloProjectLoadSpec ... these would be objects directly created and maintained by the project developers themselves. The objects would be used for custom build scripts, smalltalkCI builds, catalog loads, etc. ... oh and if it was a Metacello class, it would be usable cross platform (Squeak, Pharo, GemStone, etc.)
As a coincidence, I have been planning on talking on this subject at the upcoming Smalltalks conference ... The working title for the talk is "Dangerous Liaisons: Smalltalk, Files and Git" ...
Dale