Pointer? 

Sent from the road

> On Oct 22, 2016, at 11:39, stepharo <[email protected]> wrote:
> 
> This is what christophe is doing in cargo. 
> 
> Stef
> 
> 
> 
>> Le 22/10/16 à 17:29, [email protected] a écrit :
>> Looks like we are on the same wavelength but...
>> 
>> Look how this is done in PHP with Composer:
>> 
>> - simple Json file
>> - declares repositories
>> - requires and requiresdev
>> - uses semver versions
>> 
>> so, 'composer install' will fetch and install deps.
>> 
>> composer update will update deps.
>> 
>> composer.json
>> {
>>     "name": "zendframework/skeleton-application",
>>     "description": "Skeleton Application for ZF2",
>>     "license": "BSD-3-Clause",
>>     "keywords": [
>>         "framework",
>>         "zf2"
>>     ],
>>     "homepage": "http://framework.zend.com/";,
>>     "repositories": [{
>>         "type": "vcs",
>>         "url": "https://github.com/RobLoach/firephp-core";
>>         }],
>>     "require": {
>>         "php": ">=5.5",
>>         "zendframework/zendframework": "~2.5",
>>         "zendframework/zftool": "dev-master",
>>         "firephp/firephp-core": "dev-master",
>>         "videlalvaro/php-amqplib": "^2.5"
>>     },
>>     "require-dev": {
>>         "snapshotpl/zf-snap-event-debugger": "1.*",
>>         "zendframework/zend-developer-tools": "dev-master",
>>         "phpunit/phpunit": "4.8.*"
>>     }
>> }
>> 
>> In the JS Ecosystem, eg. bower.json
>> 
>> {
>>   "name": "adsdaq",
>>   "homepage": "https://github.com/anais-it/adsdaq";,
>>   "authors": [
>>     "Philippe Back <[email protected]>"
>>   ],
>>   "description": "adsdaq-frontend",
>>   "main": "",
>>   "moduleType": [],
>>   "license": "Adlogix",
>>   "private": true,
>>   "ignore": [
>>     "**/.*",
>>     "node_modules",
>>     "bower_components",
>>     "vendor/bower_components",
>>     "test",
>>     "tests"
>>   ],
>>   "dependencies": {
>>     "angular": "~1.4.7",
>>     "restangular": "~1.5.1",
>>     "lodash": "~3.10.1",
>>     "angular-route": "~1.4.7",
>>     "angular-spinner": "~0.8.0",
>>     "angular-bootstrap": "~0.14.3",
>>     "typeahead.js": "~0.11.1"
>>   }
>> }
>> 
>> 
>> So, basic module names in deps and semver.
>> 
>> The st code you show is more cryptic.
>> 
>> Is there a sweet spot ?
>> 
>> Ston is a great format and is Json compatible if we are careful (meaning I 
>> can actually use vim and json syntax checkers plugins)
>> 
>> St code is indeed more powerful but it leaves a lot of people in the dust 
>> with configurations.
>> 
>> What do you think?
>> 
>> Phil
>> 
>> 
>> 
>> 
>>> On Sat, Oct 22, 2016 at 3:17 PM, Dale Henrichs 
>>> <[email protected]> wrote:
>>> 
>>> 
>>> On 10/22/16 12:04 AM, [email protected] wrote:
>>>> We need some easy to use gem-style installer on the command line.
>>> Phil,
>>> 
>>> Since I am not really familiar with ruby, I'm not sure what you mean by 
>>> "gem-style installer on the command line"?
>>> 
>>> Depending upon what you mean, I think I agree:)
>>> 
>>> For GsDevKit_home[1], I have arranged for bash scripts that can be used for 
>>> building both stones and clients for GemStone. Here are the example scripts 
>>> for Tugrik[2]:
>>> 
>>>   # Create Tugrik stone
>>>   createStone -u http://gsdevkit.github.io/GsDevKit_home/Tugrik.ston -i 
>>> Tugrik -l Tugrik Tugrik 3.3.0
>>> 
>>>   # Create Tugrik Pharo5.0 client
>>>   createClient -t pharo tugrik -l -v Pharo5.0 -z 
>>> $GS_HOME/shared/repos/Tugrik/.smalltalk.ston
>>> The Tugrik.ston file is a tODE object looks like the following[1] when 
>>> materialized (basically a Metacello load script with additional info):   ^ 
>>> TDProjectSpecEntryDefinition new     baseline: 'Tugrik'       repository: 
>>> 'github://dalehenrich/Tugrik:master/repository'       loads: #('default');  
>>>    installScript: '       project install --local 
>>> --url=http://gsdevkit.github.io/GsDevKit_home/MongoTalk.ston       project 
>>> clone --https --local Tugrik';     postLoadScript: 'mount 
>>> @/sys/stone/dirs/Tugrik/gsdevkit/tode /home tugrik';     status: 
>>> #(#'inactive');     locked: false;     yourself Their are fields for 
>>> comments and a project url as well ... obviously other fields are possible 
>>> ... the cool thing about this is that is a specification for a load rather 
>>> than a Smalltalk load expression ... which means the repository can easily 
>>> be re-targetted or the loads list changed, etc. Since Pharo doesn't have 
>>> tODE:), I leverage the SmalltalkCI[4] configuration file for Tugrik[5], 
>>> which looks like this:   SmalltalkCISpec {   #loading : [     
>>> SCIMetacelloLoadSpec {       #baseline : 'Tugrik',       #load : [ 'CI' ],  
>>>      #onWarningLog : true,       #directory : 'repository',       
>>> #platforms : [ #gemstone, #pharo ]     }   ],   #configuring : [     
>>> SCIGemStoneServerConfigSpec {      #defaultSessionName : 'Tugrik',      
>>> #platforms : [ #gemstoneClient ]     }   ]  } Very similar information, but 
>>> has the advantage of being usable in GemStone, Squeak and Pharo ... I have 
>>> an option for creating stones using a SmalltalkCI configuration file as 
>>> well ... I've been thinking that I could add a 
>>> MetacelloProjectLoadSpecification class to Metacello that is meant to be 
>>> passed around as an object in STON format that combines the good bits of 
>>> the TDProjectSpecEntryDefinition with the good bits of the 
>>> SCIMetacelloLoadSpec and be available in GemStone, Pharo and Squeak ... 
>>> then you'd just send #load to the object to trigger the install ... Is 
>>> there anything in the "gem-style installer on the command line"that I'm 
>>> missing? Am I completely off-base? Dale [1] 
>>> https://github.com/GsDevKit/GsDevKit_home#open-source-development-kit-for-gemstones-64-bit-
>>>  [2] https://github.com/dalehenrich/Tugrik#create-tugrik-stone-and-client 
>>> [3] https://github.com/GsDevKit/GsDevKit_home/blob/gh-pages/Tugrik.ston [4] 
>>> https://github.com/hpi-swa/smalltalkCI#smalltalkci--- [5] 
>>> https://github.com/dalehenrich/Tugrik/blob/master/.smalltalk.ston

Reply via email to