Skip to content

Release process: semver tags and changelog for WASM#69

Open
okekefrancis112 wants to merge 12 commits intoStreampay-Org:mainfrom
okekefrancis112:release_process
Open

Release process: semver tags and changelog for WASM#69
okekefrancis112 wants to merge 12 commits intoStreampay-Org:mainfrom
okekefrancis112:release_process

Conversation

@okekefrancis112
Copy link
Copy Markdown
Contributor

@okekefrancis112 okekefrancis112 commented Mar 24, 2026

Summary

  • Add deterministic WASM build pipeline via Docker (pinned Rust 1.93.0, stellar-cli 25.2.0, wasm-opt)
  • Add GitHub Actions release workflow triggered on v* tag push with changelog generation via git-cliff
  • Add semver tagging conventions, release documentation, and rust-toolchain.toml for reproducible builds

Details

  • docker/Dockerfile.build — multi-stage deterministic WASM builder
  • .github/workflows/release.yml — validates tag/Cargo.toml match, runs tests, builds WASM, generates changelog, creates GitHub Release with artifacts
  • cliff.toml — git-cliff config for conventional commit parsing
  • rust-toolchain.toml — pins Rust version and WASM target
  • docs/RELEASE.md — canonical release guide with semver bump rules and troubleshooting
  • Updated CI workflow to use pinned toolchain
  • Split soroban-sdk testutils into dev-dependencies for clean release WASM

Closes #59

Spec for issue Streampay-Org#59 covering semver tagging, git-cliff changelog,
deterministic WASM builds via Docker, and CI release workflow.
- Fix CLI command: soroban → stellar contract build
- Reorder CI steps: tests before build/release creation
- Handle first-release edge case for git-cliff
- Document cross-platform WASM reproducibility (linux/amd64)
- Add ci.yml and Cargo.toml to modified files list
- Add testutils dependency check to pre-release checklist
8-task plan covering: Cargo.toml fix, toolchain pinning, git-cliff
config, Dockerfile for deterministic WASM, release workflow, RELEASE.md,
README updates, and final verification.
Prevents test scaffolding from being compiled into the release WASM.
Adds rust-toolchain.toml as single source of truth for compiler version.
Updates ci.yml to use pinned version instead of floating stable.
Adds wasm32-unknown-unknown target for WASM builds.
Maps conventional commit prefixes to changelog sections.
Skips release and chore commits.
Multi-stage Docker build with pinned Rust 1.93.0, stellar-cli, and
wasm-opt. Produces optimized .wasm and .checksum for verification.
Canonical builds target linux/amd64.
Triggered on v* tag push. Validates tag/Cargo.toml match, runs tests,
builds deterministic WASM via Docker, generates changelog with
git-cliff, and creates GitHub Release with artifacts.
Covers pre-release checklist, semver rules, step-by-step release
instructions, WASM verification, and troubleshooting.
Updates README with release info and project structure.
Generates initial CHANGELOG.md with git-cliff for v0.1.0.
@drips-wave
Copy link
Copy Markdown

drips-wave bot commented Mar 24, 2026

@okekefrancis112 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

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.

Release process: semver tags and changelog for WASM

1 participant