Allow pruning when building all containers
Move CI overrides inside the ci just task.
Adjust order of parameters in distribute functions
A wardley mapping tool for linux: Write some text, get a diagram.
This project uses the following:
rust, the language the project is written in. Required. >= 1.92.meson, the build system used to compile everything. Required. >= 1.0.0gettext, the tooling to compile translations. Required. >= 1.0.0just to run tasks. Recommended if you plan on doing anything more complex
than compiling.appstream-util, work with and validate appstream. Required.desktop-file-utils, work with and validate desktop file. Required.glib-2.0 >= 2.84.0,
gio-2.0 >= 2.84.0, gtk4 >= 4.18.0, libadwaita-1 >= 1.7.0,
gtksourceview-5 >= 5.16.0.podman, if you plan on building appimage, rpm, deb, or arch packages.For default settings useful for development, just build
For a quick local install without packaging:
just install - installs using meson's install command. Might require sudo.just uninstall - removes installed filesTo install to a different prefix use the meson tooling directly.
Run just test
just formatjust lintmeson.build is the source of truth for the version. To sync versions to
Cargo.toml, rpm spec, etc. use just sync-versions
The convention in this project is to use directories starting with _ for
generated ones to distinguish them from the source more easily. They are all
configurable via the justfile. The defaults are:
_build: The meson build directory._dist: The location where built distributable packages are placed._vendor: The default location in which to output vendored cargo files._repo: The flatpak repo_flatpak: The flatpak build directoryAvailable package formats: deb, rpm, arch pkg.tar.gz, flatpak, and AppImage.
just package - creates all package types for the current architecture (no upload)just distribute - signs and uploads existing packagesjust release - full workflow (package + distribute)For more control, use individual package or distribute targets:
just package-deb-all - create .deb packagesjust package-rpm-all - create .rpm packagesjust package-arch - create .pkg.tar.gz packagejust package-appimage - create .AppImage archivejust package-flatpak - create .flatpak bundleFor .deb targets we build for trixie, forky, and sid while for .rpm
targets we build for fedora43, fedora44, and fedora-rawhide. You can build
individual packages by running just package-deb DISTRO or
just package-rpm DISTRO
just distribute-deb - sign and upload .debjust distribute-rpm - sign and upload .rpmjust distribute-arch - sign and upload .pkg.tar.gz packagejust distribute-appimage - sign and upload .AppImagejust distribute-flatpak - sign and upload .flatpakSince flatpak expects offline building, we use flatpak-cargo-generator to
generate the sources. This will be done every time you run just package-flatpak.
The project assumes flatpak-cargo-generator.py lives in
~/projects/vendor/flatpak-builder-tools/cargo, but you can override this with
the variable flatpak_cargo_generator (eg.
just flatpak_cargo_generator=~/your/path/to/flatpak_cargo_generator package-flatpak
). It expects this directory to have the poetry configuration, as it enables the
virtualenv using poetry.
The URL and path of the upload are controlled using two environment variables:
$DISTRIBUTION_HOST and $DISTRIBUTION_PATH. To use them, you can use the
env.dist included, copy it to .env
This project uses gettext for translations. You can update the template files with:
just extract_strings
This updates the available POTFILES by checking for the presence of the tr!
macro or gettext, and extracts the strings to the template file.
You can then edit the strings using a tool like Poedit.
Learn more about the language at map.tranquil.systems.