[squeak-dev] automated checking for new versions of a package in order to trigger a build cycle

tim Rowledge tim at rowledge.org
Thu Nov 5 17:56:06 UTC 2020


> On 2020-11-04, at 11:54 PM, Marcel Taeumel <marcel.taeumel at hpi.de> wrote:
> We do a cron job for squeak-app to create the updated bundles for files.squeak.org. Daily for Trunk, monthly for releases. In-image changes are not propagated to GitHub or TravisCI.
> You could avoid a cron setup by -- after any change in your selected packages -- writing stuff to some related repository which can then be tracked through GitHub/TravisCI.

Well that all seems rather heavyweight; a sizable external component etc. I'm hoping to avoid that if at all possible.

Right now the code does a braindead simple build-everything, wait X minutes, loop. There are two problems (at least) with that
 - it does a build whether or not any code has changed, wasting cpu etc
 - if the build happens to start at a time when someone is in the middle of saving several packages you have the potential for 'fun' clashes.

But I'd also like to have it work so that as soon as possible after saving a package there is a fresh build, an obvious clash with the second point above.

This is what made me think that some use of MCConfiguration might be good. I save some packages, press a Magic Button(™) to update the configuration in the repository, the build machine does its regular (every 10 minutes or so?) check on the configuration, detects that it has changed, and thus spawns a build.

So I see three uses of the config
a) developer updates it when a chunk of work affecting one or more packages is published
b) build machine simply checks it intermittently and needs only to find out if it changed in any manner. Simply comparing a recorded versions number against the latest?
c) the image being built loads the latest config

Make any sense?

tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
Strange OpCodes: PFM: Pray For Miracle

More information about the Squeak-dev mailing list