Announcing Vieter 0.4.0

Right at the start of October, I managed to release another version of Vieter!

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.

What’s changed?

Renaming repos to targets

Before 0.4.0, “repos” was the term used to describe the list of Git repositories that periodically get built on your Vieter instance. This term however was rather confusing, as the Vieter server itself also hosts Pacman repositories, making it difficult to correctly talk about the features. That’s why I’ve made the decision to rename this to “targets”. All CLI commands previously found under vieter repos can now be used via vieter targets instead. API routes have also been renamed.

Along with this, a new kind of target can now be added which specifies the link to a PKGBUILD file, instead of a Git repository. This can for example be used to link a PKGBUILD that’s contained inside some other Git repository that’s not specifically used for that PKGBUILD.

Refactored web framework

The underlying web framework has seen a proper refactor to better accomodate the rest of the codebase. All API routes can now be found under a versioned /api/v1 prefix.

The repository endpoints now support DELETE requests to remove packages, arch-repos & repos. All routes serving files (e.g. the repository routes) now support HTTP byte range requests, which not only allows Pacman to resume downloads after failure, but also allows tools such as axel to work properly using a Vieter server.

Endpoints creating new entries on the server now return the ID of the newly created object (e.g. a target or a build log).

CLI UX

The CLI has seen some useful changes. There’s now a -r flag that makes Vieter’s output better for scripting. Besides that, a small tool has been added to interact with the AUR and add AUR packages directly to your list of targets!

vieter targets add and vieter logs add now return the ID of the newly created entry.

Interested?

If you’re interested in Vieter, considering joining #vieter:rustybever.be on Matrix! The source code can be found on my personal Gitea.