v0.4.2
Welcome to the first actual GitHub release of Serene! This release is mainly focussed on finally having a proper versioning strategy and proper documentation. It includes a couple QOL and preformance improvements too. So let's get into it.
This release is not backwards compatible, so consider making a backup before updating.
Note that at the time of release, the AUR is suffering from DDOS attacks, so it is sometimes unreachable. In these cases, builds in Serene may fail fatally because the build sequence cannot be resolved. As a temporary solution, you might consider disabling that feature with the
RESOLVE_BUILD_SEQUENCEconfig variable if you can live with that. Note that adding packages during those times won't work for obvious reasons either way.
Highlights
Versioning Strategy
Beginning with this release, Serene will have a proper versioning strategy. Instead of just using the latest build from the main branch, you should now use tagged releases, or preferrably the :latest docker image which points to the latest release. When using a release docker image,
- the server will use a runner image which is compatible with it's version.
- the CLI that is built by the server will also always be of the same version as the server.
For more information about this, see the documentation.
Documentation Site
Serene finally has proper hand written documentation! I have taken the time to split up and largely rewrite the previous half-baked docs, and have written some additional guides about Serene's inner workings and created some example docker compose deployments to go off of. This means the docs are more accessible and not just three massive README.md files.
Thanks to @WhySoBad, the documentation is now also hosted on a dedicated GitHub page, which is a lot more beautiful and convenient than having them just stored in the repository. Check it out below:
Performance Improvements
The only major technical change in this release is that build logs are now stored outside of the database. This reduces the database filesize significantly (in my case 600mb down to 3mb), which makes it a lot faster especially on servers with slow storage. This significantly reduces the likelihood of running into the dreaded database locked fatal error when the server is under heavy load.
When updating to this release, the server will automatically start to migrate its logs on startup. Be warned that this can take quite a while, based on your disk speed. On my server with a very slow disk, it took about 35 minutes to migrate about 9100 builds.
Onboarding Procedure
As a last major change, the CLI of this version also includes a new onboarding procedure that shows up when serene is run for the first time on a new machine. It will now directly check connectivity to the server and help you set up the pacman repository including package signature verification.
Changelog
Here's a overview over the changes in this version. Full Changelog: v0.4.1...v0.4.2
Additions
- add
privatepackage property to hide prepare commands of certain packages - proper and extensive documentation including website
- new log storage outside of database on filesystem
- build the CLI consistently with the server version
- overhauled CLI onboarding procedure
serene host signaturessubcommand to import package signing key into pacman
Fixes
- check for cli updates after server start
- clear pacman cache in build containers
- create empty pacman repository on first startup
- update alpine version in docker container
- various minor fixes