[Oberon] Re (2): Distribution practice; was http://cas.inf.ethz.ch/projects/a2 .

Michael Schierl schierlm at gmx.de
Sun Nov 6 14:16:07 CET 2022

Am 06.11.2022 um 05:06 schrieb peter at easthope.ca:
> From:	Michael Schierl <schierlm at gmx.de>
> Date:	Sat, 5 Nov 2022 15:23:01 +0100
>> ... CI workflow ...
> Continuous Integration workflow?
> How many people edit A2 sources?  Does a module require more than one
> editor?  The benefit of multiple editors of the compiler will outweigh
> integration requirements?

On cas.inf.ethz.ch there has already been a continuous integration workflow.

And it makes sense as the Oberon Fox compiler is sometimes a bit picky -
if your Oberon code compiles on 64-bit ARM Linux, it might not compile
on 32-bit x86 native, for example.

Also, maybe some contributors sometimes do not recompile all the modules
after fixing a "trivial bug" in the compiler (yet alone compile it for
all architectures). Making the next person who tries so unhappy.

The CI will take every commit and compile it for all architectures and
send the commiter an email if it does not compile on at least one of
them. So the binaries are already there and "just" need to be packaged
for consumption by others.

>> ... zip these up for each architecture and make a "nightly link"
>> available ...
> Nightly?  Why so frequent?

I probably should not have used the term "nightly link" here on this
mailing list.

I don't know where the moniker "nightly link" comes from. Probably from
projects where compilation takes multiple hours so that the latest
binary is only available overnight. Usually CI will only recompile it
when there are changes, so if there are no changes for several days, it
will not get recompiled. OTOH, when there are changes twice per day (far
enough apart that the CI job finished for the first change before the
second change), it will get recompiled twice on that day. In other
words, it neither means that it is only running when the sun is below
the horizon, nor gives any information about the frequency of the
"nightly builds". It only means that it is a fresh build and not
necessarily vetted by anybody, so it might not work well.

As compilation of the full A2 source takes in the order of a few
minutes, multiplied by perhaps a dozen architectures, a CI build will
probably finish in way less than an hour even if you only allocate one
processor/core to it. And when it fails, the committer can often quickly
identify the issue and commit again (triggering another CI build).



More information about the Oberon mailing list