Hi Pavel & Esteban, Thanks very much for your replies. What I wanted to do was to replace the line: ./vm/pharo Pharo.image eval --save "Metacello new baseline: 'IDE';repository: 'filetree://../src'; load" with one that would keep the repository associated in Iceberg. Of course, since this is the line that loads Iceberg, that's a bit difficult at the moment (I guess it would be possible to tell Iceberg that the loaded source matches the repository, and just associate it without loading, but I'd have to spend quite a bit more time on figuring that out). I want to focus on getting my patch that fixes #isSymlink and other file attributes finished and submitted, so I'll look at this again after that's done. Thanks again, Alistair On Sun, Jun 25, 2017 at 10:47:23AM +0200, Esteban Lorenzano wrote:
On 25 Jun 2017, at 10:41, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
Thank you for the update, the original script was done for older Iceberg versions.
indeed :)
Esteban
Cheers, -- Pavel
2017-06-25 10:38 GMT+02:00 Esteban Lorenzano <estebanlm@gmail.com>:
Hi!
On 25 Jun 2017, at 10:14, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
You can clone a repository with Iceberg with a script like this:
target := 'pharo-core' asFileReference ensureCreateDirectory. repository := IceRepositoryCreator new remote: (IceRemote url: 'git@github.com:pharo-project/pharo.git'); location: target; subdirectory:'src'; createRepository. repository backend checkoutBranch: 'development'. repository register.
this is a bit too verbose for my taste :) you can do the same with this (which is more or less the same, btw? just more compact)
repository := IceRepositoryCreator new remote: (IceRemote url: 'git@github.com:pharo-project/pharo.git'); subdirectory:'src'; createRepository. repository checkoutBranch: 'development'. repository register.
- no need to violate demeters law by accessing directly to backend - no need to specify a target location because it will put it in default place.
:)
Esteban
Setting of the system version is already fixed in Pharo 7. For Pharo 6 you want to do something like this:
./pharo Pharo.image eval --save "| updateString | updateString := 'tag.txt' asFileReference readStream contents allButFirst. SystemVersion classPool at: #Current put: (SystemVersion new type: 'Pharo'; major: updateString first asString asInteger; minor: updateString second asString asInteger; highestUpdate: updateString asInteger; suffix: ''; yourself)"
Where tag.txt can by obtained from git by: git describe --tags > tag.txt
Cheers, -- Pavel
2017-06-24 22:06 GMT+02:00 Alistair Grant <akgrant0710@gmail.com>:
Hi Pavel,
On Fri, Jun 23, 2017 at 10:08:29PM +0200, Pavel Krivanek wrote: > clone the master branch of git@github.com:pharo-project/p haro.git and inside > this clone do: > > export PHARO_VERSION=60 > export BOOTSTRAP_ARCH=32 > > wget -O - get.pharo.org/${PHARO_VERSION}+vm | bash > > ./pharo Pharo.image --no-default-preferences ./bootstrap/ scripts/ > prepare_image.st --save --quit > ./pharo Pharo.image --no-default-preferences ./bootstrap/ scripts/bootstrap.st > --ARCH=${BOOTSTRAP_ARCH} --quit > bash ./bootstrap/scripts/build.sh
Thanks very much for providing these instructions.
It would be great to have a version of the script that used Iceberg to load the code and kept the repository (pharo-project/pharo in the example above, but normally this would be a fork of the repository). This would greatly facilitate creating pull requests with bug fixes.
I'll try and figure out how to modify your script to do this, but if you're able to provide a quick answer, or even a hint, it would be much appreciated.
Also, the version information doesn't appear to be set here, i.e.:
$ pharo Pharo.image printVersion [version] nil.nil #0
I'll try and figure this out, but if you know, what do I need to do to get this set?
Thanks again, Alistair