How to make a "point" release with opensmalltalk-vm?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

How to make a "point" release with opensmalltalk-vm?

Holger Freyther
 
Hey,

I am looking into changing my deployment from pharo-vm.git to OpensmalltalkVM and as my CI is now crashing and has the notorious FreeType2 backtrace (seems the display is set to 0x0 and then ...) I might have a look but that brings me to the point of how can I take a VM, make a bugfix and ship it/use it.

With pharo-vm I was able to take the commit of the release, load the mc/ directory, make fixes, generate code[1], compile it and ship it but I struggle to do the same with Opensmalltalk VM.

Given a version statement like:

  Pharo VM version: 5.0-201803161038  Fri Mar 16 10:46:55 UTC 2018 gcc 4.8 [Production Spur VM]
  Built from: CoInterpreter VMMaker.oscog-eem.2359 uuid: b3273e3e-dd9d-4819-a928-7034e1cf412c Mar 16 2018
  With: StackToRegisterMappingCogit VMMaker.oscog-eem.2359 uuid: b3273e3e-dd9d-4819-a928-7034e1cf412c Mar 16 2018
  Revision: VM: 201803161038 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $ Date: Fri Mar 16 11:38:09 2018 +0100 $
  Plugins: 201803161038 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $
  Build host: Linux travis-job-29216682-8f27-4f97-a3e7-e3bc246f0137 4.4.0-101-generic #124~14.04.1-Ubuntu SMP Fri Nov 10 19:05:36 UTC 2017 i686 i686 i686 GNU/Linux
  plugin path: /mnt/build/vm/lib/pharo/5.0-201803161038 [default: /mnt/build/vm/lib/pharo/5.0-201803161038/]


How do I find the git commit this was built from?

How do I load an image with the matching sources?


I am sorry if I missed this from the documentation.

holger



[1] Yeah with Slang signed can go to unsigned or vice versa and funny things will happen
Reply | Threaded
Open this post in threaded view
|

Re: How to make a "point" release with opensmalltalk-vm?

alistairgrant
 
Hi Holger,

On 19 March 2018 at 14:26, Holger Freyther <[hidden email]> wrote:

>
> Hey,
>
> I am looking into changing my deployment from pharo-vm.git to OpensmalltalkVM and as my CI is now crashing and has the notorious FreeType2 backtrace (seems the display is set to 0x0 and then ...) I might have a look but that brings me to the point of how can I take a VM, make a bugfix and ship it/use it.
>
> With pharo-vm I was able to take the commit of the release, load the mc/ directory, make fixes, generate code[1], compile it and ship it but I struggle to do the same with Opensmalltalk VM.
>
> Given a version statement like:
>
>   Pharo VM version: 5.0-201803161038  Fri Mar 16 10:46:55 UTC 2018 gcc 4.8 [Production Spur VM]
>   Built from: CoInterpreter VMMaker.oscog-eem.2359 uuid: b3273e3e-dd9d-4819-a928-7034e1cf412c Mar 16 2018
>   With: StackToRegisterMappingCogit VMMaker.oscog-eem.2359 uuid: b3273e3e-dd9d-4819-a928-7034e1cf412c Mar 16 2018
>   Revision: VM: 201803161038 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $ Date: Fri Mar 16 11:38:09 2018 +0100 $
>   Plugins: 201803161038 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $
>   Build host: Linux travis-job-29216682-8f27-4f97-a3e7-e3bc246f0137 4.4.0-101-generic #124~14.04.1-Ubuntu SMP Fri Nov 10 19:05:36 UTC 2017 i686 i686 i686 GNU/Linux
>   plugin path: /mnt/build/vm/lib/pharo/5.0-201803161038 [default: /mnt/build/vm/lib/pharo/5.0-201803161038/]
>
> How do I find the git commit this was built from?


Copying the appropriate text from the version info above:

$ Date: Fri Mar 16 11:38:09 2018 +0100 $


$ git log | grep -B 3 "Fri Mar 16 11:38:09 2018 +0100"

commit 2a67895d1c4b51cbfba77469c0c696b8b16cf104
Author: clementbera <[hidden email]>
Date:   Fri Mar 16 11:38:09 2018 +0100


See also: scripts/checkoutVMbyDate




>
> How do I load an image with the matching sources?

I'm not sure I understand the question.  But I think the answer you
are looking for is that you need to load the matching version of
VMMaker in to squeak.

image/buildspurtrunkvmmakerimage.sh

will generate the latest image.


Cheers,
Alistair


> I am sorry if I missed this from the documentation.
>
> holger
>
>
>
> [1] Yeah with Slang signed can go to unsigned or vice versa and funny things will happen
Reply | Threaded
Open this post in threaded view
|

Re: How to make a "point" release with opensmalltalk-vm?

Clément Béra
 


On Mon, Mar 19, 2018 at 2:49 PM, Alistair Grant <[hidden email]> wrote:

Hi Holger,

On 19 March 2018 at 14:26, Holger Freyther <[hidden email]> wrote:
>
> Hey,
>
> I am looking into changing my deployment from pharo-vm.git to OpensmalltalkVM and as my CI is now crashing and has the notorious FreeType2 backtrace (seems the display is set to 0x0 and then ...) I might have a look but that brings me to the point of how can I take a VM, make a bugfix and ship it/use it.
>
> With pharo-vm I was able to take the commit of the release, load the mc/ directory, make fixes, generate code[1], compile it and ship it but I struggle to do the same with Opensmalltalk VM.
>
> Given a version statement like:
>
>   Pharo VM version: 5.0-201803161038  Fri Mar 16 10:46:55 UTC 2018 gcc 4.8 [Production Spur VM]
>   Built from: CoInterpreter VMMaker.oscog-eem.2359 uuid: b3273e3e-dd9d-4819-a928-7034e1cf412c Mar 16 2018
>   With: StackToRegisterMappingCogit VMMaker.oscog-eem.2359 uuid: b3273e3e-dd9d-4819-a928-7034e1cf412c Mar 16 2018
>   Revision: VM: 201803161038 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $ Date: Fri Mar 16 11:38:09 2018 +0100 $
>   Plugins: 201803161038 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $
>   Build host: Linux travis-job-29216682-8f27-4f97-a3e7-e3bc246f0137 4.4.0-101-generic #124~14.04.1-Ubuntu SMP Fri Nov 10 19:05:36 UTC 2017 i686 i686 i686 GNU/Linux
>   plugin path: /mnt/build/vm/lib/pharo/5.0-201803161038 [default: /mnt/build/vm/lib/pharo/5.0-201803161038/]
>
> How do I find the git commit this was built from?


Copying the appropriate text from the version info above:

$ Date: Fri Mar 16 11:38:09 2018 +0100 $


$ git log | grep -B 3 "Fri Mar 16 11:38:09 2018 +0100"

commit 2a67895d1c4b51cbfba77469c0c696b8b16cf104
Author: clementbera <[hidden email]>
Date:   Fri Mar 16 11:38:09 2018 +0100


See also: scripts/checkoutVMbyDate




>
> How do I load an image with the matching sources?

I'm not sure I understand the question.  But I think the answer you
are looking for is that you need to load the matching version of
VMMaker in to squeak.
image/buildspurtrunkvmmakerimage.sh

Yes, the script image/buildspurtrunkvmmakerimage.sh gets you a working VM+image with VMMaker installed and then in Monticello you can load back 

CoInterpreter VMMaker.oscog-eem.2359 

which is the version you have a problem with. This is the easiest way.


will generate the latest image.


Cheers,
Alistair


> I am sorry if I missed this from the documentation.
>
> holger
>
>
>
> [1] Yeah with Slang signed can go to unsigned or vice versa and funny things will happen



--
Reply | Threaded
Open this post in threaded view
|

Re: How to make a "point" release with opensmalltalk-vm?

Holger Freyther
 


> On 19. Mar 2018, at 14:39, Clément Bera <[hidden email]> wrote:
>


> Copying the appropriate text from the version info above:
>
> $ Date: Fri Mar 16 11:38:09 2018 +0100 $
>
>
> $ git log | grep -B 3 "Fri Mar 16 11:38:09 2018 +0100"

This is one way but it can break once cherry-pick'ing is used (e.g. to maintain a branch). What was the reason not to use a commit number in the binary? This would uniquely identify it (as the sha1 depends on all parents).


> I'm not sure I understand the question.  But I think the answer you
> are looking for is that you need to load the matching version of
> VMMaker in to squeak.
> image/buildspurtrunkvmmakerimage.sh
>
> Yes, the script image/buildspurtrunkvmmakerimage.sh gets you a working VM+image with VMMaker installed and then in Monticello you can load back
>
> CoInterpreter VMMaker.oscog-eem.2359
>
> which is the version you have a problem with. This is the easiest way.

Right. But then one has to do it for every plugin as well? In the case of pharo-vm the mc/ directory has 35 plugins in it. To me this doesn't sound like a very pleasant thing to do? What alternatives are there? Could the .mcz be copied somewhere (not necessarily to git)? Have links from UUID to URL of the package?


holger