Let me sum up what the Community Packaging Team (CPT) did during 2023:
- We did five releases of Copr and upgraded Copr servers to Fedora 39.
- We wrote two “4 cool new projects to try in Copr” articles for Fedora Magazine
- We fixed several degradations of Copr performance where users noticed a disruption in our service.
- Long builds can be run on high-performance builders now.
- Pavel moved s390x from Tokyo to the newly available Washington DC datacenter.
This is cheaper for our sponsor - IBM. And it is closer to other Copr servers.
- We ran out of storage in Copr and we had to add 16 TB storage. The storage holding your repositories is now 44 TB big. And it brings us new challenges to maintain it.
- Copr helped to discover that RPM Sequoia (F38+) doesn’t accept prolonged Copr GPG signatures. Pavel coordinated the effort to fix it.
- We spent lots of time with the Pulp team and identified issues that need to be addressed in Pulp before Copr uses Pulp as a backend. Most of the issues are resolved now and we are looking forward to working on enabling Pulp as a backend next year. The biggest benefits should be:
- Use of S3 as storage - we will get unlimited storage and the maintenance of storage devices will be much easier.
- Delegate performance tunning with createrepo and pruning old data to Pulp project.
- openEuler (Huawei) deployed their own instance of Copr and contributed back with several fixes and features. E.g., “group” support for OIDC.
- Jirka implemented the repo prioritization feature (DNF will prefer the installation of packages from the Copr project over the distro-default packages)
- We moved SRPM introspection from the backend to builders - this enabled us to correctly evaluate various macros and conditions.
- Pyp2spec is now the default PyPI spec generator in Copr. Thanks Karolina Surma for her contribution.
- Thanks to Jakub, Copr now honors ExclusiveArch and does not report excluded arch as failed.
- Jakub created a usage treemap that allowed us to better understand our users.
- We made several improvements to the Copr front page to decrease loading time.
- Jakub documented Copr-specific RPM macros.
- Pavel created the Copr plugin for DNF5.
- We documented Pagure integration.
- Due to performance issues, we had to disable the generation of appstream metadata by default.
- We tested and documented a Copr-backend disaster recovery. We discovered several issues and addressed them.
- Jakub implemented ‘copr download-build –review’ that downloads only fedora-review results.
- Jiri implemented `copr get PROJECT` that prints information about a specific project.
- We stopped producing SQLite repo databases.
- Pavel got promoted to a ‘sysadmin-main’ role within Fedora Infra.
- Pavel participates in the Fedora Change proposal Build Fedora with DNF 5.
- Miroslav participated in Fedora Change proposal SPDX Licenses Phase 1 and Phase 2. This included 23 emails with detailed statistics of progress.
- Jakub bug fixed modulemd-tools in F39+.
- Miroslav cleaned up Fedora’s AWS account and looked for forgotten resources. This required lots of emails and making sure the resources were really leftovers and not used by anything live.
- Jakub recorded a video: How to add a package to the official Fedora repositories.
- Jakub enhanced FedoraReview to generate machine-readable JSON file.
- Jakub started and later enhanced Fedora Review Service.
- Jakub kicked off a discussion about autoassing sponsors to newcomers in Fedora.
- Jiří added the follow_fedora_branching attribute to project handling to both copr-cli and API.
- Due to the constant problems with Pagure, we migrated our git repository to GitHub.
- Jakub exposed useful ENV variables to a custom method.
- We did a dist-git release.
- Pavel did 13 releases of Mock and mock-core-configs.
- Mock now uses container images for bootstrap chroot by default.
- Together with the DNF team Pavel worked on DNF5 and checked the compatibility and reported all issues to the DNF team. As a result, you will likely not notice a change when Mock starts to use DNF5 for builds.
- Pavel spent a lot of time making sure Mock runs flawlessly in rootles Podman containers.
- Mock now pre-creates users in chroot using shadow-utils from a host. Using this, Mock can newly pre-create a configured set of in-chroot user accounts. This made the Pesign support in Mock “supported” and stable.
- Nils Philippsen contributed rpmautospec plugin that pre-processes spec files that use rpmautospec features.
- Miroslav sent 23 emails with detailed statistics of progress.
- During this year Fedora contributors migrated 11 347 license tags. Thank you.
- Miroslav talked about SPDX licenses at OpenAlt (in Czech).
- Miroslav generated BNF grammar from fedora-license-data. This allowed comfortable checks using license-validate without constant rebases.
- Miroslav had a talk The case of SPDX vs. Fedora at Flock.
- Miroslav had a talk Software Bill of Materials (SBoM) for dummies at DevConf.CZ.
- Miroslav did 5 releases of license-validate.
- Miroslav did 26 releases of fedora-license-data.
- Miroslav submitted 45 pull-requests with new licenses to upstream of SPDX.org.
- Miroslav submitted about 120 pull-requests with new licenses to fedora-license-data.
- We started working on the AI project Log Detective which will help package maintainers. This has not been announced yet. Stay tuned. Coming soon. Very soon.
- Jakub did 5 releases of Tracer.
- Pavel did 3 releases of Resalloc
- Pavel blogged how to re-partition an almost live system using mdadm and LVM.
- Jakub nicely video blogged about how to prepare a patch-set for (CentOS Stream) packages.
- Miroslav participated in a workshop Writing blog posts to boost community awareness at DevConf.CZ.
- Pavel did a release of argparse-manpage.
- Miroslav gave a lightning talk about SPDX ad MiniDevConf.cz. Pavel at the same conference gave a lightning talk about vcs-diff-lint.
- Jakub is working on a feature that will allow you to SSH to the Copr builder hosing the build process (e.g. to debug your failing build). Stay tuned!
- We are in the process of moving our API to self-documented using flask-restx.
Ideas we have for 2024
- Finish issues from our triaged backlog.
- Finish SPDX migration (target is October 2024)
- Work on Log Detective.
- Start using Pulp as a repository backend for Copr.
- In Mock, use container images for chroots too. (Right now we use them for bootstrap chroots).
- Start Cavil instance - this will allow package license audit after each commit.
The Community Packaging Team consists of Pavel Raiskup, Jakub Kadlčík, Jiří Kyjovský, and me.