I want to sum up what happened in Copr during 2019. At the end of this post, you can see our TODO list and cast your vote on what we should focus on in 2020.
In the last year, we:
- Added native AARCH64 builders
- Added emulated ARMhfp builders
- Released eight new versions of Mock including features as Jinja templates in configs, Dynamic BuildRequires, subscription-manager support, which enables us to build on top of RHEL, Fedora Toolbox support, and container image support which allows building using incompatible RPM. To give credit, some of these Mock’s features were contributed by community members. Thank you!
- Removed outdated chroots, which allowed us to reclaim terabytes of disk space. At the same time, we give you the option to keep those old repos if you want them.
- Provided an RSS feed
- Added project discussions by integration with https://discussion.fedoraproject.org
- Added the ability to mark your project as temporary, and we delete it automatically after a specified amount of days. This is great for CI projects.
- Migrated from fedmsg to fedora-messaging
- Provided anonymized DB dump so that you can play with our data
- Added the ability to pin your favorite projects
- Used more builders thanks to Amazon providing AWS builders for free
- Contributed to speed up createrepo_c, because that one is our biggest bottleneck. For projects like Cran or python rebuilds, the createrepo task runs longer than the build of packages and cannot be parallelized
- Added per-package config option to blacklist the package from building against particular chroots
- Added support for multilib projects
- Refined modularity support, module dependency, module_hotfixes flags, …
- Added the ability to set Copr permissions via API and CLI
- Started removing old builds automatically, per option that only keeps a maximum number of builds per given package
In addition to the work we did, the community has done great work using Copr:
- Iucan rebuilds all R packages from CRAN for Fedora
- Many interesting projects appeared in Copr and we wrote about them
What are our plans for 2020? We have some mandatory tasks:
- Migrate to new datacenter together with the whole Fedora infrastructure
- Install and use new and bigger storage
Yet we have quite a long list of RFEs and tasks to do. You are our customers, so I would like to hear your opinion on what is crucial for you. Please cast your vote for these options:
- Allow more parallel builds – everyone wants faster builds. I am afraid we cannot speed up the build itself, but we can focus on allowing us to run more builds in parallel to handle peaks
- Mock development – we spend a lot of time on Mock development. We utilize those new features in Copr, but they are useful even for your local workflow with Mock. Should we spend more time on longstanding RFEs?
- Build Flatpak application from your project – we have a viable idea how to build Flatpak app from your project with just a few clicks, and we can upload the result to some registry. For example, to Quay
- New commands for our API and copr-cli
- Run lints like rpmlint or rpm-inspect after each build and give you hints on how to improve your spec files
- Automatically rebuild PyPI and Rubygems – we already did this in the past, but we did not rebuild it for new Fedoras
- Allow you to vote for quality of the project with thumbs up/down and high quality repos automatically promote and will enable them as one big repo of “editors pick”
- Focus on rpm spec generators – See the user documentation for what we support right now
- Add emulated architecture s390x – while we would like to add native architecture, it will likely not happen next year, but we can do builds using QEMU
- Add RHEL as a target – right now you can build on top of CentOS, but we can allow you to build on top of RHEL
- Better automatic builds triggered by GitHub, Gitlab, aka mimic the Copr CI we have for Pagure – git server sends request – copr replies back with build status
- Runtime dependency config between copr projects, so
dnf copr enable <user/foo>enables other projects transitively
- Something else – is something blocking you from using Copr? Please share it with us.