> On 23 Oct 2014, at 23:11, Esteban A. Maringolo <emaring...@gmail.com> wrote:
> 
> 2014-10-23 17:04 GMT-03:00 Sven Van Caekenberghe <s...@stfx.eu>:
> 
>>> Why do you use the pharo shell script instead of pharo-vm with
>>> --no-display? Is there any benefit other than having the pwd set to
>>> the image location? And hence, the argument script should be relative
>>> to the image.
>> 
>> No particular reason, mostly because I hate adding the --no-display
>> But yes, I usually bypass the script and use the executable directly.
> 
> I don't know how Pharo resolves the file names by default.
> 
> Pharo's FileLocator seems to provide something similar to the
> Dolphin's FileLocator I'm used to work with  (see attached image) to
> avoid the "resolution guessing" of relative paths when defined in the
> context of a script or app code (e.g. to specify template files).
> I should use it more. :)

Here are some things you can try:

$ ./pharo Pharo.image eval "'' asFileReference pathString"
'/'

$ ./pharo Pharo.image eval "'foo.txt' asFileReference pathString"
'/Users/sven/Tmp/pharo4/foo.txt'

It seems to be image relative, unless its empty, then it becomes root, which is 
weird. Using absolute, resolved paths is one way to take all doubt away.

There are quite a number of known locations:

$ ./pharo Pharo.image eval '(FileLocator supportedOrigins collect: [ :each | 
each -> (FileLocator perform: each) pathString ]) asDictionary'
a Dictionary(#cache->'/Users/sven/Library/Caches' 
#changes->'/Users/sven/Tmp/pharo4/Pharo.changes' 
#desktop->'/Users/sven/Desktop' #documents->'/Users/sven/Documents' 
#home->'/Users/sven' #image->'/Users/sven/Tmp/pharo4/Pharo.image' 
#imageDirectory->'/Users/sven/Tmp/pharo4' 
#preferences->'/Users/sven/Library/Preferences' 
#systemApplicationSupport->'/Library/Application Support' 
#systemLibrary->'/Library' #temp->'/tmp' 
#userApplicationSupport->'/Users/sven/Library/Application Support' 
#userLibrary->'/Users/sven/Library' 
#vmBinary->'/Users/sven/tmp/pharo4/pharo-vm/Pharo.app/Contents/MacOS/Pharo' 
#vmDirectory->'/Users/sven/tmp/pharo4/pharo-vm' 
#workingDirectory->'/Users/sven/Tmp/pharo4' )

>> All this sharing, talking & discussing, even over small issues and style is 
>> important, we can all learn a lot from each other and save time and money.
> 
> Absolutely.
> 
> I'd like to know the development process of others, from SCM to
> building, deploying and server provisioning.

I would say the standard approach is:

- use Monticello with any repo type
- split your code in some big modules, some private, some from public source
- have a single overarching Metacello configuration
- use zeroconf to build images
- optionally use a CI 

Note that zeroconf handlers allow you to build images incrementally (the image 
is saved after each build), which is way faster than always starting from 
scratch.

> After a year o Pharo development I think I'm ready to embrace a CI
> server (I already use scripts to build images), but I think I will
> move all my repositories to git before.

These are orthogonal decisions, most CI jobs on the Pharo contribution server 
run against StHub.

> However, my remote server provisioning is still manual, and too
> rudimentary even for my own taste. If I could speed up this, I would
> deliver features faster to my customers. Now everything runs inside a
> two week sprint window.

I am not into provisioning myself, but more automation is always good, though 
sometimes setting up and maintaining all these things takes a lot of time as 
well.

> Regards,
> 
> Esteban A. Maringolo
> <filelocator.png>


Reply via email to