[Nut-upsdev] Happy Sysadmins day!

Jim Klimov jimklimov+nut at gmail.com
Mon Aug 2 08:17:04 BST 2021

Hello fellow NUT users and contributors!

A lot has happened during the past months, culminating with last Friday of
July (Sysadmins' Day) as a reasonable moment to mark a milestone. Sorry,
not yet NUT 2.7.5, but with CI make-over to help it happen.

As some may know, we were using the public Travis CI offering, and just as
that multi-platform setup was nearing perfection (ha-ha) with dozens of
regular build setups across varied OSes, CPU architectures, compiler
versions and language revisions - all to make sure each iteration of NUT
builds easily everywhere we can test it, so it remains portable from
embedded to datacenter, on bleeding edge and legacy platforms - just about
then their new owner announced that the free Travis tier for FOSS CI will
be phased out. Thankfully, they listened to public outcry so the phase-out
took not a few weeks but half a year, giving teams like ours a chance to
explore alternatives, but since June 15th NUT did not have an active CI.

I explored various options, and most of the service cloud offerings are
geared towards Lin/Win/Mac, often with one distro du-jour. A close
runner-up to what NUT needs for portability testing seems to be Github
Actions to use their orchestrator and our workers. Which needs to get some
diverse workers online, available on-demand or even persistently, and
preferably not as a maintenance burden to individuals helping NUT every now
and then. And then not helping eagerly, life is life...

So it culminated in getting help from Fosshost, who courteously provided
some virtual machines and endured several rounds of aiding with setup of
OSes outside their supported list, including OpenIndiana, OmniOS, FreeBSD
and Debian Linux so far, and deploying a dedicated Jenkins with a new
dynaMatrix setup written for the purpose over half a years' worth of
weekends, which just now finally went online as a usable MVP (chiseling
needed, but many things work and bring value).

The farm is now replaying some historical commits from the master branch,
starting with v2.7.4 tag, to save some code-quality analysis history so we
can gauge its evolution with the "fightwarn" branch effort and beyond. Many
of these builds are expected to be "flaky" as their state of codebase was
evolving the tooling and warnings for CI. Hopefully current master will
fare better ;)

The dynaMatrix Jenkins Shared Library is this way a new open-source project
in our fold: https://github.com/networkupstools/jenkins-dynamatrix/ and it
allows the CI pipeline to define a number of build combinations
(permutations of variables minus filters of what we do not expect to work).
Unlike the original Jenkins matrix, this one is driven by available build
agents and their capabilities ("I have this and that compiler", "I can
build all docs up to PDF", etc.), and also seems less prone to certain JVM
limits that I did hit with original matrix and our range of tested
variations. This solution allows Jenkins Swarm agents from willing
contributors to dial in and add their platform to the matrix in real time,
in the future. I took reasonable effort to design it in a project-agnostic
manner, so not only NUT can be built this way to ensure cross-platformness,
and not only on that CI farm (in fact, most of the time it evolved on my
laptop with several VMs).

Last but not least, I arranged for NUT community related IRC channels on
the new Libera.Chat servers (like with Travis, the venerable Freenode
network had new management and that did not end well). So welcome to #nut
at irc.libera.chat (port 6697, SSL, SASL auth).

Lots of kudos to give where credit is due ;)
* Thanks to Travis CI - it was a fun and useful ride, even if it is over.
* Great thanks to Fosshost for giving us a new home and hope for the CI
* Thanks to Jenkins project and community for being at all, and answering
hard questions in particular.
* Thanks to Libera.Chat people for helping figure out the community
registration process, all during their turbulent week of relocating
hundreds of projects from a sinking ship :)
* Surely, thanks to people who use, comment and improve NUT: without you
and your stream of questions, contributions (and non-regression testing
involved), there would be little benefit in setting this all up.
* And finally, thanks to my family for their patience, understanding and
sometimes sacrifice for too many weekends and late evenings this year. That
was a looong Groundhog Day for me...

Hopefully, we will soon be able to again focus more on what we build and
less urgently on the how, to get the many proposed improvements reviewed,
tested and integrated.

On behalf of NUT core team,
Jim Klimov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/nut-upsdev/attachments/20210802/da7e9ce3/attachment.htm>

More information about the Nut-upsdev mailing list