Hi, I want to build a Pharo6 image from scratch for Dr. Geo. How to do it? Thanks Hilaire -- Dr. Geo http://drgeo.eu
clone the master branch of git@github.com:pharo-project/pharo.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 2017-06-23 21:12 GMT+02:00 Hilaire <hilaire@drgeo.eu>:
Hi,
I want to build a Pharo6 image from scratch for Dr. Geo. How to do it?
Thanks
Hilaire -- Dr. Geo http://drgeo.eu
Thanks, Can you key in the exact sequence to clone the git repo, I am not used to GIT yet. Hilaire Le 23/06/2017 à 22:08, Pavel Krivanek a écrit :
clone the master branch of git@github.com:pharo-project/pharo.git and inside this clone do:
-- Dr. Geo http://drgeo.eu
Just to be sure, it is to build an image from a mini-image, right? So to get a fairly small Dr. Geo image. Le 24/06/2017 à 09:00, Hilaire a écrit :
Thanks,
Can you key in the exact sequence to clone the git repo, I am not used to GIT yet.
Hilaire
-- Dr. Geo http://drgeo.eu
The question is what is your goal because the bootstrapped image will have in the end (almost) the same content as the default non-bootstrapped image. You probably want to change the content of the produced image wich requires to modify the related baselines and do not load them all. For Dr Geo you will probably want to start with the BaselineOfMorphic however you will probably need a lot of custom modifications. -- Pavel 2017-06-24 9:07 GMT+02:00 Hilaire <hilaire@drgeo.eu>:
Just to be sure, it is to build an image from a mini-image, right? So to get a fairly small Dr. Geo image.
Le 24/06/2017 à 09:00, Hilaire a écrit :
Thanks,
Can you key in the exact sequence to clone the git repo, I am not used to GIT yet.
Hilaire
-- Dr. Geo http://drgeo.eu
Hi Pavel, Le 24/06/2017 à 09:35, Pavel Krivanek a écrit :
The question is what is your goal because the bootstrapped image will
I want to build an image for DrGeo which is not 60MB. (the size I have now on my P6 dev image for Dr. Geo) Until now, DrGeo was installed then unecessary packages removed. With the first Pharo release, DrGeo image was around 10MB, in the latest DrGeo release (based on P3), its image is more than 20MB. For P6, if possible, I would like to use the bootstrap process
have in the end (almost) the same content as the default non-bootstrapped image. You probably want to change the content of the produced image wich requires to modify the related baselines and do not load them all. For Dr Geo you will probably want to start with the BaselineOfMorphic however you will probably need a lot of custom modifications.
I don't know... May be we can take Dr. Geo as an excuse to see step by step how to do it. If we succeed I could document it so it may be useful to other. -- Dr. Geo http://drgeo.eu
Hi Hilaire, I tried to play a little bit with that. As the first step please check that Dr. Geo can be loaded properly into the standard Pharo 6 image with the package Deprecated60 unloaded. The Dr. Geo uses some deprecated calls and this package is not present in the smaller images. Cheers, -- Pavel 2017-06-24 10:29 GMT+02:00 Hilaire <hilaire@drgeo.eu>:
Hi Pavel,
Le 24/06/2017 à 09:35, Pavel Krivanek a écrit :
The question is what is your goal because the bootstrapped image will
I want to build an image for DrGeo which is not 60MB. (the size I have now on my P6 dev image for Dr. Geo)
Until now, DrGeo was installed then unecessary packages removed. With the first Pharo release, DrGeo image was around 10MB, in the latest DrGeo release (based on P3), its image is more than 20MB.
For P6, if possible, I would like to use the bootstrap process
have in the end (almost) the same content as the default non-bootstrapped image. You probably want to change the content of the produced image wich requires to modify the related baselines and do not load them all. For Dr Geo you will probably want to start with the BaselineOfMorphic however you will probably need a lot of custom modifications.
I don't know... May be we can take Dr. Geo as an excuse to see step by step how to do it. If we succeed I could document it so it may be useful to other.
-- Dr. Geo http://drgeo.eu
Hi Pavel, I removed deprecated method uses, then I updated accordingly the 'development' configuration of Dr. Geo. Hope it helps. Thanks Hilaire Le 25/06/2017 à 10:03, Pavel Krivanek a écrit :
I tried to play a little bit with that. As the first step please check that Dr. Geo can be loaded properly into the standard Pharo 6 image with the package Deprecated60 unloaded. The Dr. Geo uses some deprecated calls and this package is not present in the smaller images.
-- Dr. Geo http://drgeo.eu
Hi, if you will do own bootstrap, you can use BaselineOfUI instead of BaselineOfIDE. But you can use prebuilt image from here: https://ci.inria.fr/pharo/view/6.0-SysConf/job/Pharo-6.0-Step-10-01-Configur... Into such image load Dr. Geo with the attached script: ./pharo-ui Pharo-6.0-ConfigurationOfUI.image --no-default-preferences st load.st --save --quit and run it with: ./pharo-ui Pharo-6.0-ConfigurationOfUI.image --no-default-preferences This image hase some problems with settings processing so the --no-default-preferences is needed. We need to fix it. The resultant image is under 18MB. Of course we can do better :-) -- Pavel 2017-06-25 17:16 GMT+02:00 Hilaire <hilaire@drgeo.eu>:
Hi Pavel,
I removed deprecated method uses, then I updated accordingly the 'development' configuration of Dr. Geo. Hope it helps.
Thanks
Hilaire
Le 25/06/2017 à 10:03, Pavel Krivanek a écrit :
I tried to play a little bit with that. As the first step please check that Dr. Geo can be loaded properly into the standard Pharo 6 image with the package Deprecated60 unloaded. The Dr. Geo uses some deprecated calls and this package is not present in the smaller images.
-- Dr. Geo http://drgeo.eu
thanks Pavel this is great to see that happening :) On Sun, Jun 25, 2017 at 6:47 PM, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
Hi,
if you will do own bootstrap, you can use BaselineOfUI instead of BaselineOfIDE. But you can use prebuilt image from here:
https://ci.inria.fr/pharo/view/6.0-SysConf/job/Pharo-6.0-Step-10-01-Configur...
Into such image load Dr. Geo with the attached script: ./pharo-ui Pharo-6.0-ConfigurationOfUI.image --no-default-preferences st load.st --save --quit
and run it with: ./pharo-ui Pharo-6.0-ConfigurationOfUI.image --no-default-preferences
This image hase some problems with settings processing so the --no-default-preferences is needed. We need to fix it.
The resultant image is under 18MB. Of course we can do better :-)
-- Pavel
2017-06-25 17:16 GMT+02:00 Hilaire <hilaire@drgeo.eu>:
Hi Pavel,
I removed deprecated method uses, then I updated accordingly the 'development' configuration of Dr. Geo. Hope it helps.
Thanks
Hilaire
Le 25/06/2017 à 10:03, Pavel Krivanek a écrit :
I tried to play a little bit with that. As the first step please check that Dr. Geo can be loaded properly into the standard Pharo 6 image with the package Deprecated60 unloaded. The Dr. Geo uses some deprecated calls and this package is not present in the smaller images.
-- Dr. Geo http://drgeo.eu
Hi Pavel, Are your suggesting I should be using a pre-built image with minimal requirement? : One for UI only : BaselineOfUi ? One for IDE tools: BaselineOfIDE. ? In Dr. Geo to write script, one need at least access to a playground and a class browser. Which of this image should be used then? For the later I really want to have an easier browser, something to build on GLamour, if I understand correctly. But it will be another topic, later. Thanks Hilaire -- Dr. Geo http://drgeo.eu
2017-06-26 15:35 GMT+02:00 Hilaire <hilaire@drgeo.eu>:
Hi Pavel,
Are your suggesting I should be using a pre-built image with minimal requirement? :
One for UI only : BaselineOfUi ?
One for IDE tools: BaselineOfIDE. ?
In Dr. Geo to write script, one need at least access to a playground and a class browser. Which of this image should be used then?
We have the BaselineOfBasicTools that is something in the middle. It already contains Workspace and Nautilus (but not GTPlayground). BaselineOfIDE corresponds to the standard Pharo distribution so you will not save space. You should probalby create own baseline and select what you need.
For the later I really want to have an easier browser, something to build on GLamour, if I understand correctly. But it will be another topic, later.
Glamour is part of BaselineOfIDE so you will need it or create own baseline. Cheers, -- Pavel
So in pratical term, how do you create a baseline? Hilaire Le 26/06/2017 à 15:43, Pavel Krivanek a écrit :
We have the BaselineOfBasicTools that is something in the middle. It already contains Workspace and Nautilus (but not GTPlayground). BaselineOfIDE corresponds to the standard Pharo distribution so you will not save space. You should probalby create own baseline and select what you need.
For the later I really want to have an easier browser, something to build on GLamour, if I understand correctly. But it will be another topic, later.
Glamour is part of BaselineOfIDE so you will need it or create own baseline.
-- Dr. Geo http://drgeo.eu
You need to do it manually. You should probably start with own copy of BaselineOfIDE and then try to remove packages you don't need. You should do it slowly and check if you are still able to generate a working image. -- Pavel 2017-06-26 16:09 GMT+02:00 Hilaire <hilaire@drgeo.eu>:
So in pratical term, how do you create a baseline?
Hilaire
Le 26/06/2017 à 15:43, Pavel Krivanek a écrit :
We have the BaselineOfBasicTools that is something in the middle. It already contains Workspace and Nautilus (but not GTPlayground). BaselineOfIDE corresponds to the standard Pharo distribution so you will not save space. You should probalby create own baseline and select what you need.
For the later I really want to have an easier browser, something to build on GLamour, if I understand correctly. But it will be another topic, later.
Glamour is part of BaselineOfIDE so you will need it or create own baseline.
-- Dr. Geo http://drgeo.eu
This is very interesting⦠what would you need in that image to use the remote debugging demoâd at Pharo Days 2017 - as Iâm assuming for a server environment with a web-app, you could have a lean core image and then remotely attach to it to understand what was going on? With enough infrastructure to inspect objects etc, but locally you could look up things with GT tools? Or have I got the wrong end of the stick on this? Tim
On 26 Jun 2017, at 15:29, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
You need to do it manually. You should probably start with own copy of BaselineOfIDE and then try to remove packages you don't need. You should do it slowly and check if you are still able to generate a working image.
-- Pavel
2017-06-26 16:09 GMT+02:00 Hilaire <hilaire@drgeo.eu <mailto:hilaire@drgeo.eu>>: So in pratical term, how do you create a baseline?
Hilaire
Le 26/06/2017 à 15:43, Pavel Krivanek a écrit :
We have the BaselineOfBasicTools that is something in the middle. It already contains Workspace and Nautilus (but not GTPlayground). BaselineOfIDE corresponds to the standard Pharo distribution so you will not save space. You should probalby create own baseline and select what you need.
For the later I really want to have an easier browser, something to build on GLamour, if I understand correctly. But it will be another topic, later.
Glamour is part of BaselineOfIDE so you will need it or create own baseline.
-- Dr. Geo http://drgeo.eu <http://drgeo.eu/>
2017-06-26 18:19 GMT+02:00 Tim Mackinnon <tim@testit.works>:
This is very interesting⦠what would you need in that image to use the remote debugging demoâd at Pharo Days 2017 - as Iâm assuming for a server environment with a web-app, you could have a lean core image and then remotely attach to it to understand what was going on? With enough infrastructure to inspect objects etc, but locally you could look up things with GT tools?
Or have I got the wrong end of the stick on this?
With Denis we are trying to clean all dependencies so the remote IDE will be able to work on a small headless images. Cheers, -- Pavel
Tim
On 26 Jun 2017, at 15:29, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
You need to do it manually. You should probably start with own copy of BaselineOfIDE and then try to remove packages you don't need. You should do it slowly and check if you are still able to generate a working image.
-- Pavel
2017-06-26 16:09 GMT+02:00 Hilaire <hilaire@drgeo.eu>:
So in pratical term, how do you create a baseline?
Hilaire
Le 26/06/2017 à 15:43, Pavel Krivanek a écrit :
We have the BaselineOfBasicTools that is something in the middle. It already contains Workspace and Nautilus (but not GTPlayground). BaselineOfIDE corresponds to the standard Pharo distribution so you will not save space. You should probalby create own baseline and select what you need.
For the later I really want to have an easier browser, something to build on GLamour, if I understand correctly. But it will be another topic, later.
Glamour is part of BaselineOfIDE so you will need it or create own baseline.
-- Dr. Geo http://drgeo.eu
This is great work - I think ultimately we can show the strengths of Smalltalk on images running in unusual places. Tim Sent from my iPhone
On 27 Jun 2017, at 12:05, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
2017-06-26 18:19 GMT+02:00 Tim Mackinnon <tim@testit.works>:
This is very interesting⦠what would you need in that image to use the remote debugging demoâd at Pharo Days 2017 - as Iâm assuming for a server environment with a web-app, you could have a lean core image and then remotely attach to it to understand what was going on? With enough infrastructure to inspect objects etc, but locally you could look up things with GT tools?
Or have I got the wrong end of the stick on this?
With Denis we are trying to clean all dependencies so the remote IDE will be able to work on a small headless images.
Cheers, -- Pavel
Tim
On 26 Jun 2017, at 15:29, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
You need to do it manually. You should probably start with own copy of BaselineOfIDE and then try to remove packages you don't need. You should do it slowly and check if you are still able to generate a working image.
-- Pavel
2017-06-26 16:09 GMT+02:00 Hilaire <hilaire@drgeo.eu>:
So in pratical term, how do you create a baseline?
Hilaire
Le 26/06/2017 à 15:43, Pavel Krivanek a écrit :
We have the BaselineOfBasicTools that is something in the middle. It already contains Workspace and Nautilus (but not GTPlayground). BaselineOfIDE corresponds to the standard Pharo distribution so you will not save space. You should probalby create own baseline and select what you need.
For the later I really want to have an easier browser, something to build on GLamour, if I understand correctly. But it will be another topic, later.
Glamour is part of BaselineOfIDE so you will need it or create own baseline.
-- Dr. Geo http://drgeo.eu
Do you have a page explaining the process so people can try out? Hilaire Le 26/06/2017 à 16:29, Pavel Krivanek a écrit :
You need to do it manually. You should probably start with own copy of BaselineOfIDE and then try to remove packages you don't need. You should do it slowly and check if you are still able to generate a working image.
-- Pavel
-- Dr. Geo http://drgeo.eu
Right now we do not have such source. -- Pavel 2017-06-26 18:42 GMT+02:00 Hilaire <hilaire@drgeo.eu>:
Do you have a page explaining the process so people can try out?
Hilaire
Le 26/06/2017 à 16:29, Pavel Krivanek a écrit :
You need to do it manually. You should probably start with own copy of BaselineOfIDE and then try to remove packages you don't need. You should do it slowly and check if you are still able to generate a working image.
-- Pavel
-- Dr. Geo http://drgeo.eu
It will be helpfull, because from here I don't understand not much how I should get started. But I guess it is too early in the process as things may still be moving. Le 27/06/2017 à 13:02, Pavel Krivanek a écrit :
Right now we do not have such source.
-- Pavel
-- Dr. Geo http://drgeo.eu
https://www.peteruhnak.com/blog/2016/07/25/how-to-use-git-and-github-with-ph... But you should look on the blog of dale henrichs I did not check but he probably explained how to define baseline. On Tue, Jun 27, 2017 at 1:02 PM, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
Right now we do not have such source.
-- Pavel
2017-06-26 18:42 GMT+02:00 Hilaire <hilaire@drgeo.eu>:
Do you have a page explaining the process so people can try out?
Hilaire
Le 26/06/2017 à 16:29, Pavel Krivanek a écrit :
You need to do it manually. You should probably start with own copy of BaselineOfIDE and then try to remove packages you don't need. You should do it slowly and check if you are still able to generate a working image.
-- Pavel
-- Dr. Geo http://drgeo.eu
I'm also interested in this topic. I've built some small tools but a bit troubled with the installation size. I'd like to reduce it, but still be able to go in and debug when there's problem and to restore a set of packages/classes to add back a removed feature if I later found I need it. I recently started to look at Dr.Geo to learn how to develop and deploy a Pharo based application. So, I'm thankful to Hilaire for bringing this topic up and I'm looking forward to learn from Dr. Geo and from the outcome of this topic. On Sat, Jul 1, 2017 at 6:29 AM, Stephane Ducasse <stepharo.self@gmail.com> wrote:
https://www.peteruhnak.com/blog/2016/07/25/how-to-use- git-and-github-with-pharo/
But you should look on the blog of dale henrichs I did not check but he probably explained how to define baseline.
On Tue, Jun 27, 2017 at 1:02 PM, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
Right now we do not have such source.
-- Pavel
2017-06-26 18:42 GMT+02:00 Hilaire <hilaire@drgeo.eu>:
Do you have a page explaining the process so people can try out?
Hilaire
Le 26/06/2017 à 16:29, Pavel Krivanek a écrit :
You need to do it manually. You should probably start with own copy of BaselineOfIDE and then try to remove packages you don't need. You
should
do it slowly and check if you are still able to generate a working image.
-- Pavel
-- Dr. Geo http://drgeo.eu
Hilaire I like your goal because this is what we want to achieve. what you should know is that the Pharo packages that we load to create Pharo are not all modular because they were not. We started to get Pharo modular and we will continue. On two fronts: - getting the core smaller - getting pharo more modular So if you see - packages where a dependency can be easily removed (for example by producing two packages instead of one). - packages that can just be loaded separately (we could just create a new package out an larger one). - packages that can just be thrown away. let us know. Stef On Sat, Jun 24, 2017 at 10:29 AM, Hilaire <hilaire@drgeo.eu> wrote:
Hi Pavel,
Le 24/06/2017 à 09:35, Pavel Krivanek a écrit :
The question is what is your goal because the bootstrapped image will
I want to build an image for DrGeo which is not 60MB. (the size I have now on my P6 dev image for Dr. Geo)
Until now, DrGeo was installed then unecessary packages removed. With the first Pharo release, DrGeo image was around 10MB, in the latest DrGeo release (based on P3), its image is more than 20MB.
For P6, if possible, I would like to use the bootstrap process
have in the end (almost) the same content as the default non-bootstrapped image. You probably want to change the content of the produced image wich requires to modify the related baselines and do not load them all. For Dr Geo you will probably want to start with the BaselineOfMorphic however you will probably need a lot of custom modifications.
I don't know... May be we can take Dr. Geo as an excuse to see step by step how to do it. If we succeed I could document it so it may be useful to other.
-- Dr. Geo http://drgeo.eu
git clone git@github.com:pharo-project/pharo.git 2017-06-24 9:00 GMT+02:00 Hilaire <hilaire@drgeo.eu>:
Thanks,
Can you key in the exact sequence to clone the git repo, I am not used to GIT yet.
Hilaire
Le 23/06/2017 à 22:08, Pavel Krivanek a écrit :
clone the master branch of git@github.com:pharo-project/pharo.git and inside this clone do:
-- Dr. Geo http://drgeo.eu
Looks like one should use the bellow command for anonymous clone: git clone https://github.com/pharo-project/pharo.git The command you provided required uploading public rsa key Le 24/06/2017 à 09:29, Pavel Krivanek a écrit :
git clone git@github.com:pharo-project/pharo.git
-- Dr. Geo http://drgeo.eu
Ok, I executed these statements. It seems to do its jobs just fine, I request for a 64bits architecture. What's next? Thanks Hilaire Le 23/06/2017 à 22:08, Pavel Krivanek a écrit :
./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/prepare_image.st <http://prepare_image.st> --save --quit ./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/bootstrap.st <http://bootstrap.st> --ARCH=${BOOTSTRAP_ARCH} --quit bash ./bootstrap/scripts/build.sh
-- Dr. Geo http://drgeo.eu
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/pharo.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
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. 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/pharo.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
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 <mailto: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/pharo.git and inside this clone do:
export PHARO_VERSION=60 export BOOTSTRAP_ARCH=32
wget -O - get.pharo.org/${PHARO_VERSION}+vm <http://get.pharo.org/$%7BPHARO_VERSION%7D+vm> | bash
./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/ prepare_image.st <http://prepare_image.st/> --save --quit ./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/bootstrap.st <http://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
On 25 Jun 2017, at 10:38, Esteban Lorenzano <estebanlm@gmail.com> wrote:
Hi!
On 25 Jun 2017, at 10:14, Pavel Krivanek <pavel.krivanek@gmail.com <mailto: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 <mailto: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 <mailto:git@github.com>:pharo-project/pharo.git'); subdirectory:'src'; createRepository. repository checkoutBranch: 'development'. repository register.
Ah, and not that I think, you can also doit like this: repository := IceRepositoryCreator new url: 'git@github.com <mailto: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 <mailto: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 <mailto:git@github.com>:pharo-project/pharo.git and inside this clone do:
export PHARO_VERSION=60 export BOOTSTRAP_ARCH=32
wget -O - get.pharo.org/${PHARO_VERSION}+vm <http://get.pharo.org/$%7BPHARO_VERSION%7D+vm> | bash
./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/ prepare_image.st <http://prepare_image.st/> --save --quit ./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/bootstrap.st <http://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
Thank you for the update, the original script was done for older Iceberg versions. 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/pharo.git and inside this clone do:
export PHARO_VERSION=60 export BOOTSTRAP_ARCH=32
wget -O - get.pharo.org/${PHARO_VERSION}+vm <http://get.pharo.org/$%7BPHARO_VERSION%7D+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
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 <mailto:estebanlm@gmail.com>>: Hi!
On 25 Jun 2017, at 10:14, Pavel Krivanek <pavel.krivanek@gmail.com <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto:git@github.com>:pharo-project/pharo.git and inside this clone do:
export PHARO_VERSION=60 export BOOTSTRAP_ARCH=32
wget -O - get.pharo.org/${PHARO_VERSION}+vm <http://get.pharo.org/$%7BPHARO_VERSION%7D+vm> | bash
./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/ prepare_image.st <http://prepare_image.st/> --save --quit ./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/bootstrap.st <http://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
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
Hilaire, Pay attention, we (pharo) bootstrap the minicore image based on git You do not need to bootstrap pharo you can simply apply the buildscript on the minicore image. then we use a buildscript to load pharo packages. In the future we expect that people will be able to - take the miniimage and build with specific script (mainlu metacello configuration) their own specialized image I would focus on this part if I would be you. Stef On Fri, Jun 23, 2017 at 9:12 PM, Hilaire <hilaire@drgeo.eu> wrote:
Hi,
I want to build a Pharo6 image from scratch for Dr. Geo. How to do it?
Thanks
Hilaire -- Dr. Geo http://drgeo.eu
participants (7)
-
Alistair Grant -
Andreas Sunardi -
Esteban Lorenzano -
Hilaire -
Pavel Krivanek -
Stephane Ducasse -
Tim Mackinnon