Split the packages, publish releases from Gitea Actions, release 0.1.0
release / release (push) Successful in 7m7s

make deb now builds two packages: jarl-cli (the CLI, its completion and
the ACME hooks, no scripts) and jarl (the server), which depends on
jarl-cli of the same version.

Pushing a v* tag runs .gitea/workflows/release.yml: it tests, builds the
tarballs, the CLI for Linux, macOS and Windows (make cli-dist) and the
.debs for amd64 and arm64, then scripts/gitea-release.sh creates the
Gitea release and uploads the .debs to the Debian package registry, so
servers install and upgrade with apt. The stats package's inode lookup
is split by OS so the CLI builds for Windows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
abrown38andClaude Opus 5.5 committed 2026-10-09 08:40:56 +00:00
1 parent 293e6ddd33
commit 4d00be53c3
16 files changed
+450 -84

No files matched your search

+20 -7
View File
@@ -6,7 +6,9 @@ All notable changes to Jarl are documented here. The format follows
## [Unreleased]
The first version, to be released as 0.1.0.
## [0.1.0] - 2026-10-09
The first version.
### Added
@@ -68,12 +70,23 @@ The first version, to be released as 0.1.0.
`socket`. The systemd unit creates `/run/jarl` (0750).
- Jarl is released under the MIT License (`LICENSE`), which is installed
with the docs and is the Debian package's `copyright` file.
- A Debian package: `make deb` builds `dist/jarl_<version>_<arch>.deb` with
only `dpkg-deb` (no root), for the host or any other architecture
(`DEB_ARCH=arm64`). Installing it creates the `jarl` user and directories
and an example `/etc/jarl/jarl.yaml`; upgrades restart a running jarld and
never touch `/etc/jarl/jarl.yaml`; removing it stops jarld, and even a
purge keeps Jarl's database and the files named uses.
- Debian packages: `make deb` builds, with only `dpkg-deb` (no root) and
for the host or any other architecture (`DEB_ARCH=arm64`), `jarl` (the
server: jarld, its units and docs) and `jarl-cli` (the `jarl` CLI, its
completion and the ACME hooks), which `jarl` depends on. `jarl-cli` has no
scripts, so it can go on any machine you manage Jarl from. Installing
`jarl` creates the `jarl` user and directories and an example
`/etc/jarl/jarl.yaml`; upgrades restart a running jarld and never touch
`/etc/jarl/jarl.yaml`; removing it stops jarld, and even a purge keeps
Jarl's database and the files named uses.
- Releases from Gitea Actions: pushing a `v<version>` tag runs
`.gitea/workflows/release.yml`, which tests, builds and publishes a Gitea
release (the CHANGELOG section as notes; the tarballs, the CLI for Linux,
macOS and Windows, the `.deb`s and `SHA256SUMS`), and uploads the `.deb`s
for amd64 and arm64 to the Gitea Debian registry, so servers install and
upgrade Jarl with apt. `make cli-dist` builds the standalone CLI files;
`scripts/gitea-release.sh` publishes. docs/development.md has the setup
(a runner and a `RELEASE_TOKEN` secret), docs/install.md the apt source.
- Bash completion for `jarl` and `jarld`, installed by `make install` and
the Debian package. Besides commands and flags, it completes server and
group names from the CLI configuration, zone, view, ACL, TSIG key and