Skip to content

Add reproducible release tooling foundation - #12

Merged
LunaStev merged 1 commit into
wavefnd:masterfrom
LunaStev:feat/release-tooling
Aug 10, 2026
Merged

Add reproducible release tooling foundation#12
LunaStev merged 1 commit into
wavefnd:masterfrom
LunaStev:feat/release-tooling

Conversation

@LunaStev

Copy link
Copy Markdown
Member

Summary

  • add a Python 3.11+ x.py entry point for release checks, builds, packaging, cleanup, and target discovery
  • produce normalized tar.gz/zip archives with project documents, executable smoke checks, and portable SHA256SUMS
  • test release-tool behavior across the Linux, Windows, and macOS CI matrix and add a native Linux package job
  • document the release-tool contract while retaining the Makefile during migration

Why

Vex v0.0.1 needs one reproducible release path shared by maintainers and CI. The existing Makefile only covers Linux x86_64 and does not validate archive contents, versions, checksums, or official release preconditions.

Behavior

  • python3 x.py check runs formatting, release-tool tests, Rust tests, Clippy, and a locked build.
  • build and package default to the rustc host or accept explicit supported targets.
  • packages contain the executable, README, LICENSE, NOTICE, and COPYRIGHT with normalized metadata.
  • release requires a clean tree and the exact v<version> tag.
  • checksums include only archives generated and verified by the current invocation.
  • the Makefile remains for a later parity/removal PR.

Validation

  • python3 x.py check
  • python3 -m py_compile x.py tests/xpy/test_release_tool.py
  • python3 -m unittest discover -s tests/xpy -v (13 tests)
  • native Linux release build, package, executable smoke, and checksum verification
  • repeated packaging with fixed SOURCE_DATE_EPOCH produced the same SHA-256
  • workflow YAML parse and git diff --check

A local RISC-V attempt reached the selected cross linker but this host lacks the RISC-V glibc development sysroot. Existing Ubuntu RISC-V CI retains its cross-build and QEMU smoke coverage.

Signed-off-by: LunaStev <luna@lunastev.org>
@LunaStev
LunaStev marked this pull request as ready for review August 10, 2026 04:13
@LunaStev
LunaStev merged commit bcefa4c into wavefnd:master Aug 10, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant