This repository publishes two crates from the same sources:
libz-sys, fromCargo.tomllibz-ng-sys, fromCargo-zng.toml
The supported release entrypoint is the maintenance tool in maint/.
-
Update both crate versions so that
Cargo.tomlandCargo-zng.tomlhave the exact samepackage.version. -
Make sure the release commit is checked out with submodules initialized.
-
Run the release verification in dry-run mode:
cargo run -p maint -- publish
This verifies all release packaging and build combinations with
cargo publish --dry-run, checks that both manifests have the same version, and rejects missing bundled source files or missing packaged source files. -
Perform the actual publish only after the dry-run passes:
cargo run -p maint -- publish --execute
The tool verifies first, then publishes
libz-sysandlibz-ng-sys. -
Create and push the Git tag after both publishes succeed.
maintprovides instructions.
maint publishdefaults to dry-run mode. Real publishing requires--execute.- The tool never relies on a bare
cargo publish. Verification always usescargo publish --dry-run, and the upload step usescargo publish --no-verifyonly after all dry-run checks succeed. - The release path does not use
--allow-dirty; Cargo should reject a dirty worktree. - Missing submodule checkouts are caught before publishing by requiring bundled zlib and zlib-ng source files to exist in the worktree and in the packaged crate contents.
Use the maint tool to run Cargo as if the repository were checked out as the
libz-ng-sys crate:
cargo run -p maint -- zng testThe compatibility wrapper still works:
./cargo-zng testIf you invoke publish through the zng command, the tool forces
--dry-run. Real publishing is only supported through maint publish --execute.