[squeak-dev] Re: [Release] The role of Bob, Installer & Co.

Keith Hodges keith_hodges at yahoo.co.uk
Sun Jul 5 04:16:29 UTC 2009


****Randal accused me of not delivering anything in a year. 3 years ago
can you remember how hard it was to cleanUp an image? Now it is easy,
and it works for all LPF users. "SmalltalkImage current cleanUpAll."
There have been many tangible benefits like this that the community has
been able to take advantage of.

So what if you havent seen a new image release in a while. Just think on
this, Pharo users are still using FileDirectory, you dont have to use
FileDirectory any more, you can load Rio, surely that is worth
something!!!!  (btw. Rio was developed for Bob)

======

I have had enough of trying to fight my corner, it is exhausting and I
have lots of other things to do. I will make an attempt to compare and
contrast the two ideas, and you can simply make your choice.

Option 1
======
The facts remain, Bob is an image builder, whose job is to integrate the
latest working and tested externally maintained packages, fixes that are
supplied to Mantis, and to tidy up a bit****

Having performed his integration the output Bob provides is a repository
with all the changed packages in it. The packages (trunk if you like)
are an expected and complete **output**

The 3.11 plan involved reorganising the image so that more parts of it
could be treated as external packages **in the future**, and sensibly
handed over to maintainers. But that was to happen a bit at a time. i.e.
after some work had been done on improving modularity. Example: When all
collections fixes have been integrated, then perhaps collections could
be spun out to tender.

If someone does want to do coding, for example to rewrite collections
then that is a separate project that has nothing to do with the release
team or bob. This project which would be done offline and incorporated
into a release plan for  integration into a subsequent releaase e.g.
3.12.  The patches needed to integrate the newly coded Collections
package into the image, would be uploaded to mantis, with the tag along
these lines "this fix to be be applied to "3.11 + NewCollections".

The release 3.12 would be 3.11 + NewCollectionsPatchesFor3.11 +
NewCollections + deprecate OldCollections compatibility methods +
(optionally loadable OldCollections?!)
The release 3.13 would be 3.12 - deprecated methods.

Option 2
======
Andreas' proposal is to throw every package within the kernel and the
image as a whole out to be treated as an "external package" to be hacked
on by any approved person who fancies a go.

The result can be viewed and used by anyone by publishing to MC and
subscribing via an updates mechanism.

The image will probably be a bit unstable for a bit, but we cant go to
the extent of breaking it ever, because we are not distibuting a new
image, just updates, everything must continue to work seamlessly. So we
cant make radical changes like to replace morphic, or to change the
object layout, or to replace the changes/source file mechanism etc.
Everything has to be done in small evolutionary steps as required by an
updates mechanism. There is no mechanism for removing things from the
image, or for changing the image structure. You will have to clear out
stale package references, repository references from your image
yourself. (In other words go and use pharo because this is exactly what
they are doing)

Then it is supposedly up to Bob to take these packages as an **input**
putting the image into an unpredictable state.
Then Bob is expected to apply some fixes from mantis which were perhaps
submited a year ago and were definitely not targeted at the image in
which bob has to get them to work. Bob then uploads the resulting
packages up to the trunk repo,
Bob is now an automated contributor to the single trunk repository.

Bob also helps out by running tests in the hope that at some point in 2
years time, we get to a point where all the enthusiastic contributors to
trunk have calmed down and have arrived at a reasonably stable working
image. At which point a release will be asssembled manually by someone,
probably Andreas, who will manually update the versions number, and
manually ftp the new image up to ftp.squeak.org or publish an mcm for
people to use.

Is that about right?

Keith









More information about the Squeak-dev mailing list