• v0.0.17
    Gates / frontend (push) Successful in 2m23s
    Gates / test (push) Successful in 3m15s
    Gates / test-aarch64 (push) Successful in 8m38s
    Gates / package (push) Successful in 5m0s
    Gates / container (push) Successful in 19s
    CI / gates (push) Successful in 17m17s
    Release / guard (push) Successful in 37s
    Gates / frontend (push) Successful in 2m15s
    Gates / test (push) Successful in 2m34s
    Gates / test-aarch64 (push) Successful in 7m33s
    Gates / package (push) Successful in 51s
    Gates / container (push) Successful in 10s
    Release / gates (push) Successful in 11m14s
    Release / publish (push) Successful in 8m35s
    Stable

    mokhtar released this 2026-09-08 22:35:07 +00:00 | 12 commits to master since this release

    Added

    • A Nix flake with tag-pinned hashes. flake.nix at the repository root builds nxdns for aarch64-linux and x86_64-linux from the release tarballs, and carries their hashes in a generated block. A consumer pins the flake to a release tag and gets the exact bytes that tag published; docs/how-to/install-with-nix.md covers the input, the nixpkgs follows line, and Renovate.

    Changed

    • The release archive is written by the project's own tool. zig build dist no longer shells out to the runner's tar and gzip; it writes the tar stream and the gzip container itself, with sorted entries, fixed modes, and zero timestamps. The tarball bytes now depend on the source tree, the compiler, and the admin bundle, and on nothing the host supplies — which is what lets a hash be pinned before CI rebuilds it.
    • The cut pins the release hashes before it commits. zig build cut asserts the local Node, npm, and Zig match the versions CI pins, builds the release from the bumped manifest in a normalized environment, writes the resulting hashes into flake.nix, and commits that file alongside build.zig.zon as one commit. CI reverifies the pins on the bump commit and again on the tag, before anything is uploaded.
    • nxdns version no longer reports a git commit. The commit is gone from the command's output, from GET /api/version, and from the admin footer, which now shows nxdns v<version>. A release identifies itself by version, and the bytes are reproducible from the tag, so a commit embedded in the binary told a reader nothing the tag did not.

    Artifacts

    8ee0b1f30b1ee43bcb0a0c8e789469fac794523e31468b54c199d0b571c8ab6b  nxdns-0.0.17-x86_64-linux-musl.tar.gz
    b439ca554968b31e8d2b9a8ba9400fbc89dc27e0bb259d5d3526bc4221333c77  nxdns-0.0.17-aarch64-linux-musl.tar.gz
    35ac38080eaf72f39fa6a97bd18bcfa3cc62df44b3228e52d35dc49682a24c52  IMAGE-DIGEST.txt
    
    git.mial.net/mokhtar/nxdns:0.0.17@sha256:dde9833df05ce227a13618f3469cccd1be2ad0fcaf03f526c076a89bf7ce5c55
    

    Compare v0.0.16...v0.0.17

    Commits since v0.0.16
    f168247 cut: build the release with the official zig tarball, skip hidden bundle files; re-pin 0.0.17
    d596fd7 build: bump version to 0.0.17
    f067742 cut: the pin stage compiles, and `zig build test` builds the cut binary
    a4eb749 changelog: 0.0.17
    22abcd9 release: nix flake with tag-pinned hashes, reproducible tarballs (milestone 40)
    3e57f43 cut: rerun a flaky release run once, resume after the tag
    299d7af upstream: overlap attribution test builds its schedule with gates
    
    Downloads