I am most curious about what will happen to 3.10 when 3.11 is released.
Thanks, TimJ
Here is the theory!
In an LPF image:
Installer install: 'Tasks'.
The main workflow is summarized in the following releases generated by the following classes/tasks which need to be fleshed out.
Squeak 3.11 Personal Test Candidate - ReleaseAfterSqueak310Kph-#taskTESTCANDIDATE. Squeak 3.11 Unstable T.C. - ReleaseAfterSqueak310Unstable-#taskTESTCANDIDATE. Squeak 3.11 Stable T.C. - ReleaseAfterSqueak310-#taskTESTCANDIDATE. Squeak 3.11-basic Release Candidate - ReleaseSqueak311-#taskRELEASECANDIDATE. Squeak 3.11-basic Golden - ReleaseSqueak311-#taskGoGolden.
Derived images
Squeak-3.x-dev - Packages current load: 'Squeak-dev image'. (czar: damien, should already work in 3.9+) Squeak-3.x-web - Packages current load: 'Squeak-web image'. (ditto) Squeak-3.x-devbeta - Packages beta load: 'Squeak-dev image'. (ditto) Squeak-3.x-webbeta - Packages beta load: 'Squeak-web image'. (ditto) Squeak-3.x-fullbeta - Packages beta load: 'Squeak-full image'. (czar wanted) Squeak-3.x-full - Packages current load: 'Squeak-full image'. Squeak-3.x-max - Packages current load: 'Squeak-max image'. (czar wanted) Squeak-3.x-fun - tba (czar wanted) Squeak-3.x(-*whatever*)-test - Packages current load: 'AllTests'. (loads tests into any image Squeak-3.x-seaside - Packages current load: 'Squeak-seaside image'.
Squeak 3.x-(*whatever*)-oneclick - ReleaseX-taskGenerateOneClick. Squeak 3.11-minimal - Release311-#taskMINIMAL Squeak 3.11-kernel - Release311-#taskKERNEL Squeak 3.11.1-basic - Release311-#taskUPDATE1 Squeak 3.11.2-basic - Release311-#taskUPDATE2
So by extension, those who only want a minor update of the most essentially essential fixes to 3.10 there is a set of tasks managed by class ReleaseSqueak31-#taskUPDATE3 This would be applied via:
Installer install: 'Tasks'. ReleaseSqueak310 taskUPDATE3103 run. Packages current unload: 'Sake'. (to remove all vestiges of the Sake/Tasks/Packages).
cheers
Keith
I was asked for a clearer explanation... :-) so here goes...
========= SakeTasks - The shortest summary I could come up with.
A package inspired by Make and ruby's Rake.
It runs tasks. Tasks consist of actions (blocks or tasks), in an order as defined by dependencies (blocks or tasks), if the "ifs" (blocks returning true/false, or tasks which succeed or fail), indicate that the task is necessary.
Images can be updated, and new releases generated via TasksRelease-c-#task* methods in which bug fixes held on mantis are called up as dependencies..
============== Here is an example:
ReleaseAfterSqueak310-#taskLoadSomething
^ self define: [ :task |
task dependsOn: {
self fixOneDay: '0000 Some bug not included, placeholder only'.
self fixUnstable: '1111 Some bug to be included in the Unstable Build of the next Release'.
self fix: '2222 Some bug fix to be included in Next Release'.
self fixEssential: '3333 Some bug to be included in any future Updates'.
}.
task action: { Packages current load: 'Something' } ]
============
In the example, a package is to be loaded:
"Packages" contains every Package in Universes, every Package in SqueakMap, and it can automatically attempt to find the latest code for packages that are defined in Universes.
Packages also contains sets of packages like Damien's dev image, as maintained by Damien himself. So derived images (e.g. -fun -full -max -test -seaside -dev and -web) can all be generated from package lists maintained by (insert your name here) in Universes &/ Sake/Packages. e.g.
Packages current load: 'Squeak-dev image',
To use the feature that hunts down the very latest code available for all the packages in Damiens image use #beta instead of #current.
Packages beta load: 'Squeak-dev image', (similarly for -funbeta -fullbeta -maxbeta -testbeta -seasidebeta -devbeta and -webbeta) ============
In our example, this action has a list of tasks that it depends upon, and these call up fixes from mantis. This fix tasks will apply themselves if they feel that they are contributing to the desired image.
self fixOneDay: '0000 Some bug not included, placeholder only'.
In this dummy example bug fix 0000 will never be loaded.
self fixUnstable: '1111 Some bug to be included in the Unstable Build of the next Release'.
Here 1111 will be loaded in tasks on "Unstable" classes e.g. ReleaseAfterSqueak310Unstable-c-taskTESTCANDIDATE
self fix: '2222 Some bug fix to be included in Next Release'.
Here 2222 will be loaded in tasks on "Unstable" classes e.g. ReleaseAfterSqueak310-c-taskTESTCANDIDATE
self fixEssential: '3333 Some bug to be included in any future Updates'.
Here 3333 will be loaded in tasks "Release" classes e.g. ReleaseSqueak310-c-taskUPDATE3 or ReleaseSqueak310-c-taskUPDATE1
==== dare I ask any questions?
Keith
release@lists.squeakfoundation.org