Announcing Vieter 0.3.0
When this post is live, Vieter 0.3.0 will have been released! This release really does come with a lot of new features, including more reliable builds and a new cron implementation!
This release ended up taking me over two months, but I’m quite proud of it :) It not only adds a lot of useful features, but also paves the way for a lot more cool features down the road!
What is Vieter?
Vieter consists of two independents parts, namely an implementation of an Arch (Pacman) repository, & a build system to populate said repository. The goal is to remove the need for an AUR helper & move all builds to a remote server. Not only does this greatly reduce update times on lower-end systems, it also prevents AUR packages from being built multiple times on different systems.
The repository can also be used independently, providing a convenient server for publishing Arch packages from CI builds for example.
While I specifically mention Arch & the AUR, Vieter is compatible with any Pacman-based distro & can build PKGBUILDs provided from any Git source.
New cron daemon
Perhaps the most important feature in this release is the implementation of a cron daemon. While 0.2.0 still relied on crond to periodically start builds, 0.3.0 can schedule builds completely independently.
The daemon understands a subset of the cron expression syntax. The build schedule can be either configured globally or on a per-repo basis. This allows the user to fine-tune certain packages, e.g. if they want them to be updated more regularly than all the rest.
More robust builds
Often, a build would fail with exit code 8. This error indicates that makepkg
wasn’t able to install all dependencies, caused by the builder image not being
up to date enough. Due to this, each build now runs
pacman -Syu before
running the actual build.
Builds can now also use dependencies that are part of the target repository. This allows building packages with AUR dependencies, as long as all dependencies are also being built for said repository.
The main server now stores the logs of each build, including the exit code. This makes it a lot easier to debug why builds fail.
The Vieter documentation has had a pretty major re-write to get it up to date with this new release. Now there’s also HTTP API docs & man pages.
If you’re interested in Vieter, considering joining #vieter:rustybever.be on Matrix! The source code can be found on my personal Gitea.