[RFC] incremental rebase

Achim Gratz Stromeko@nexgo.de
Wed Nov 26 21:01:00 GMT 2014

Ken Brown writes:
>> +    if (file.size() == file.rfind('/'))
>       ^^^^^^^^^^^^^^^
> Shouldn't this be file.size() - 1?

Yes, but it's anyway not the best code to check for a trailing '/'.

> Is this last test necessary?  The Script constructor guarantees that
> the stratum is allowable.

You've convinced me that this safety check is no longer necessary (it
was with the initial version of the constructor, though).

> 1. You should do something to make sure that incremental rebase (or
> whatever version of autorebase gets chosen) is run first among the
> perpetual postinstall scripts in stratum 0.  One possibility would be
> to also allow stratum 1, and require that no packages other than
> incremental rebase use stratum 0.  Alternatively, give the incremental
> rebase script a name that guarantees that it comes first in whatever
> order the perpetual scripts are run in.

The perpetual scripts are different in that dependency order can't be
generated for them.  The order in which they are run is the sort order
of the file find/visitor that picks them up from the postinstall
directory.  That order may be locale dependent, so I think we'd somehow
need to force something sane here (POSIX).

> 2. You've used the underscore for two unrelated purposes: On the one
> hand, it separates the prefix from the rest of the script name.  On
> the other hand, it denotes the default stratum.  This makes it
> impossible to create a perpetual postinstall script in the default
> stratum if someone would ever want to do this.  Maybe use a hyphen
> instead of underscore for the separator?

The hyphen is for seperating the trigger label.  The default stratum
really is meant to be outside of the scope of stratification (i.e. all
existing scripts).  The code you have in hand would actually allow to
make a _p_<whatever> script, but I'm now checking for that and rejecting

+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptation for Waldorf microQ V2.22R2:

More information about the Cygwin-apps mailing list