How do we build a new Squeak trunk image?

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

How do we build a new Squeak trunk image?

fniephaus
Hi all,

I'm trying to understand how we build a new Squeak trunk image.
AFAIK, a Jenkins projects [1] runs squeak-ci [2] to build a new image, but I'm not sure I have
figured everything out that happens during the build process.
I guess squeak-ci opens an older Squeak image, updates it using the MCMcmUpdater and then
saves the new version. Or is there anything else that I am missing?

Best,
Fabio




Reply | Threaded
Open this post in threaded view
|

Re: How do we build a new Squeak trunk image?

marcel.taeumel
Hi Fabio,

after may latest refactorings to the ReleaseBuilder, let me point you to ReleaseBuilder >> #prepareNextVersionAlpha.

Basically, you are right. You just have to update the previous trunk. If you made more changes, you might want to restore preferences and reset caches.

Best,
Marcel
bpi
Reply | Threaded
Open this post in threaded view
|

Re: How do we build a new Squeak trunk image?

bpi
In reply to this post by fniephaus
Hi Fabio,

Here is how Eliot does it:

[[[MCMcmUpdater
                        defaultUpdateURL: 'http://source.squeak.org/trunk';
                        updateFromServer] valueSupplyingAnswer: true]
                on: Deprecation
                do: [:ex| ex resume: nil]]
        on: Warning
        do: [:ex| | text |
                text := ex messageText.
                ((text beginsWith: 'This package depends on the following classes')
                 or: [text beginsWith: 'About to serialize an empty diffy version.']) ifFalse:
                        [ex pass].
                ex resume].

Smalltalk snapshot: true andQuit: true

See:
http://www.squeakvm.org/svn/squeak/branches/Cog/image/UpdateSqueakTrunkImage.st
http://www.mirandabanda.org/cogblog/build-image/

Cheers,
Bernhard

> Am 17.05.2016 um 10:03 schrieb Fabio Niephaus <[hidden email]>:
>
> Hi all,
>
> I'm trying to understand how we build a new Squeak trunk image.
> AFAIK, a Jenkins projects [1] runs squeak-ci [2] to build a new image, but I'm not sure I have
> figured everything out that happens during the build process.
> I guess squeak-ci opens an older Squeak image, updates it using the MCMcmUpdater and then
> saves the new version. Or is there anything else that I am missing?
>
> Best,
> Fabio
>
> [1] http://build.squeak.org/job/Trunk/
> [2] https://github.com/squeak-smalltalk/squeak-ci


Reply | Threaded
Open this post in threaded view
|

Re: How do we build a new Squeak trunk image?

Frank Shearar-3
In reply to this post by fniephaus
On 17 May 2016 at 01:03, Fabio Niephaus <[hidden email]> wrote:
Hi all,

I'm trying to understand how we build a new Squeak trunk image.
AFAIK, a Jenkins projects [1] runs squeak-ci [2] to build a new image, but I'm not sure I have
figured everything out that happens during the build process.
I guess squeak-ci opens an older Squeak image, updates it using the MCMcmUpdater and then
saves the new version. Or is there anything else that I am missing?

That is the essential part of the process. The devil's in the details. If you look at https://github.com/squeak-smalltalk/squeak-ci/blob/master/update-image.st you'll see the script squeak-ci uses to update the image. Most of that file is nonsense like doing sensible things when you're offline, or handling the vagaries of changed protocols in MCMcmUpdater and various other things. And dumping out enormous amounts of debugging information.

frank
 






Reply | Threaded
Open this post in threaded view
|

Re: How do we build a new Squeak trunk image?

Frank Shearar-3
On 18 May 2016 at 13:46, Frank Shearar <[hidden email]> wrote:
On 17 May 2016 at 01:03, Fabio Niephaus <[hidden email]> wrote:
Hi all,

I'm trying to understand how we build a new Squeak trunk image.
AFAIK, a Jenkins projects [1] runs squeak-ci [2] to build a new image, but I'm not sure I have
figured everything out that happens during the build process.
I guess squeak-ci opens an older Squeak image, updates it using the MCMcmUpdater and then
saves the new version. Or is there anything else that I am missing?

That is the essential part of the process. The devil's in the details. If you look at https://github.com/squeak-smalltalk/squeak-ci/blob/master/update-image.st you'll see the script squeak-ci uses to update the image. Most of that file is nonsense like doing sensible things when you're offline, or handling the vagaries of changed protocols in MCMcmUpdater and various other things. And dumping out enormous amounts of debugging information.

I should add that you _should_ need to just run "rake update_base_image" to have the process generate a fresh image. If that doesn't work, and you have followed the instructions on the README, please feel free to yell at the maintainers through a bug report.

frank
 



Reply | Threaded
Open this post in threaded view
|

Re: How do we build a new Squeak trunk image?

fniephaus
On Wed, May 18, 2016 at 10:49 PM Frank Shearar <[hidden email]> wrote:
On 18 May 2016 at 13:46, Frank Shearar <[hidden email]> wrote:
On 17 May 2016 at 01:03, Fabio Niephaus <[hidden email]> wrote:
Hi all,

I'm trying to understand how we build a new Squeak trunk image.
AFAIK, a Jenkins projects [1] runs squeak-ci [2] to build a new image, but I'm not sure I have
figured everything out that happens during the build process.
I guess squeak-ci opens an older Squeak image, updates it using the MCMcmUpdater and then
saves the new version. Or is there anything else that I am missing?

That is the essential part of the process. The devil's in the details. If you look at https://github.com/squeak-smalltalk/squeak-ci/blob/master/update-image.st you'll see the script squeak-ci uses to update the image. Most of that file is nonsense like doing sensible things when you're offline, or handling the vagaries of changed protocols in MCMcmUpdater and various other things. And dumping out enormous amounts of debugging information.

I should add that you _should_ need to just run "rake update_base_image" to have the process generate a fresh image. If that doesn't work, and you have followed the instructions on the README, please feel free to yell at the maintainers through a bug report.

frank

Thanks for the pointers. I think I understand the process now!

Fabio