Skip to content

Week of 2024-02-25

Open source

I released ansible 9.3.0 this week. I used the new release automation developed by Anwesha Das, as well as the new release announcement automation I implemented in antsibull.

I cut a new release of Fedora’s Golang RPM Macros. It addresses some longstanding issues, including the ability to pass our compiler flags to upstream Makefiles and other build scripts and removing clashes between C LDFLAGS and Go LDFLAGS. The release also include a patch from Zbigniew JÄ™drzejewski-Szmek to enable build reproducibility for Go packages. Package build IDs were randomly generated previously and are now generated in a reproducible way.

I attended the bi-monthly Fedora Go Special Interest Group meeting. We discussed migrating our repositories from Pagure to Gitlab to allow us to take advantage of Gitlab CI and Packit. The CI situation with Pagure is not great, and the upstream project’s maintenance is in question. Fedora has its own namespace on gitlab.com, and it integrates with the Fedora Account System so we can give everyone in the Go SIG group access without having to manage permissions in multiple places. Gitlab’s interface is a bit… busy, but it works well enough. I guess its ‘open core’ model is better than Github’s completely closed source model.

I started a new go-vendor-tools project to enable creating vendored Go packages in Fedora while following the bundling and licensing guidelines. That project will be moved to the new fedora/sigs/go Gitlab namespace once Infra creates it for us. The tool definitely needs more work, but so far, it can:

  • Create Go vendor tarballs in a reproducible way
  • Crawl the vendor directory for license files using askalono-cli and generate a cumulative SPDX license identifier for the project
  • Implement a TOML configuration file to mark license files that askalono is unable to detect
  • Implement RPM macros to install all the detected license files into the package’s %{_licensedir} and verify that the package’s SPDX identifier matches the package’s RPM License: tag

The package uses a—dare I say—innovative Packit setup to run integration tests for the code and RPM macro side, in particular. If it ends up working out well, I may adopt a similar setup for the main Go macros and Ansible macros projects that I maintain. That probably warrants a separate bog post. In any case, I am a big proponent of automated testing, especially for RPM macros where one small mistake has the propensity to break all 23 thousand source packages in the Fedora package collection. I have explored various approaches for RPM macro testing, including pure pytest setups, a YAML file containing test cases, and the aforementioned Packit-based integration testing.

Musical of the week

The musical of the week is Little Shop of Horrors. The musical combines humor with deeper themes: morality; death; and the consequences of fame. I saw the show Presidents Day weekend off Broadway with Darren Criss (of “Glee” fame) playing the lead, Seymour Krelborn.


Until next time,

Stay sane and stay sure

Maxwell

Reply on the Fediverse