Repository navigation
Mwc dnix - #14
Merged
Merged
Mwc dnix#14
Conversation
added 9 commits
October 21, 2026 23:55
…Nix otherwise The build hook is dnix's. By default it downloads the library of the release dnix.lock names and verifies its hash; in source mode it builds the same library with Nix and verifies the same hash; in dev mode it builds with Nix for work on the Rust code. dnix.json names the library, the asset, the Rust workspace and crate, the Rust and Xcode versions, the deployment floors, and the ten targets the prebuilts covered; dnix.lock records what the source builds to and names release native-fa0d223adae4. The flake hands dnix the configuration. The build's extras are declared there too: protoc for prost-build in the libp2p crates, the lmdb mutex flags on macOS, and a static libc++ on Android. OpenSSL is vendored only where native-tls links it, Linux and Android; Apple and Windows use their own TLS. The prebuilt producer, manifest, smoke tests and their tests go; two-line tools update the lock and verify one platform against the release.
…lock dnix's reusable workflow builds the library on Linux x86_64, Linux aarch64, macOS with Xcode 27.0, and Linux inside WSL2 on Windows, rebuilds each sandboxed target, compares every host with every other and with the committed lock, and on main publishes the release the lock names if it does not exist yet. Runs on main are never cancelled, since one may be publishing. The test workflow runs the Flutter tests on every OS, against the prebuilt library once its release exists and from source before that. The tag-driven prebuilt workflow and the prebuilt tooling checks went with the pipeline they served.
How the hook obtains the library and the three modes, how a change to the Rust code becomes a lock entry and a release, and how anyone rebuilds a platform and compares.
dnix 7b9ef2d adds the Windows GNU and arm64 targets and stops zig adding its debug-mode sanitizer to C compiled without an optimisation level. Neither changes what this package builds to: every library hashes as before, so dnix.lock and the release it names stay as they are.
The arm64 Linux test job could never start: subosito/flutter-action finds no arm64 Flutter release for Linux and exits, and this package ships no Linux arm64 library in any case. Actions are pinned by commit, as they were on main. The test and args dev dependencies served the prebuilt tools that are gone, and .gitattributes now gives the reason its LF rules still matter. The README gives the arm64 simulator's minimum, iOS 14, and the CHANGELOG records the move to dnix.
The CHANGELOG implied nothing was lost on Linux arm64 because no prebuilt library existed before. The old hook could build it from source; dnix's hook refuses any target dnix.json does not list, in every build mode.
slopbot9k/dnix 57efe93, the stable-sort branch, not yet on cypherstack: build-time dependencies are resolved alike on every build host, rustc sorts the same everywhere, bindgen gets fixed headers, and a target keeps only its dynamic library. Every library changes with the first of these; the new lock matches what Linux x64, Linux arm64, and macOS each build.
The target was left out because main shipped no prebuilt for it, not because anything stops the build: the library compiles like the others, and the lock now records it. The ten entries already in the lock are unchanged; only the release name moves with the lock.
sneurlax
approved these changes
Oct 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.