Skip to content

chore(release): prepare RustFerry 0.1.0 - #16

Merged
ShiroKSH merged 5 commits into
masterfrom
release/0.1.0
Aug 13, 2026
Merged

chore(release): prepare RustFerry 0.1.0#16
ShiroKSH merged 5 commits into
masterfrom
release/0.1.0

Conversation

@ShiroKSH

@ShiroKSH ShiroKSH commented Aug 12, 2026

Copy link
Copy Markdown
Owner

Summary

  • Prepare RustFerry 0.1.0 as a public pre-release with registry-first installation, complete crates.io metadata, release documentation, package enforcement, and honest platform limits.
  • Rebase onto the current master, retaining its Calculator example, generalized Windows Android path handling, JNI library loading fix, and physical Android Calculator evidence. The superseded release-branch Android implementation was removed instead of duplicated.
  • Release job-store file locks after their final shared owner drops, fixing sporadic immediate-reacquisition failures on macOS without weakening long-operation lock ownership.
  • Replace loaded-runner-sensitive worker timing assertions with channel watchdogs that prove blocked output writers are not joined.
  • Bring the new Calculator example into the exact =0.1.0 release dependency contract and add the basic integration target required by the repository example matrix.
  • Scope the new Windows-only Android test fixtures so strict Clippy remains clean on Linux as well as Windows.

Base: 451eda6cc1587ac36a01d632828532b77c70e3d3. Head: 7177662224d6edabf85d25bd790dbce4b9d816f3.

The release branch was rebased after master advanced with five Calculator/Android commits. All affected local gates were repeated from the new base. The release diff contains no Android production-path changes; those generalized fixes come directly from master, with only test-module cfg scoping added here.

Changed files

  • Release enforcement: .github/workflows/ci.yml, .github/workflows/draft-release.yml.
  • Public/release documentation: README.md, CHANGELOG.md, docs/STATUS.md, docs/installation.md, docs/quickstart.md, docs/support-matrix.md, docs/release/crates.md, docs/release/packaging.md, docs/release/release-checklist.md, docs/release/github-release.md, and crates/cargo-ferry/embedded-docs/quickstart.md.
  • Package metadata: root Cargo.toml and all nine publishable crate manifests.
  • Job-store locking: crates/cargo-ferry/src/job_store.rs, crates/cargo-ferry/src/job_store/admin.rs.
  • Private worker tests: crates/rustferry-worker-macos/src/session_output.rs, crates/rustferry-worker-macos/src/snapshot_session.rs.
  • Calculator release coverage: examples/calculator/Cargo.toml, examples/calculator/tests/basic.rs.
  • Android cross-platform test cfg: crates/rustferry-android/src/cargo_build.rs, crates/rustferry-android/src/signing.rs.

Local verification

  • cargo fmt --all -- --check
  • cargo check --locked --workspace --all-targets --all-features
  • cargo test --locked --workspace --all-targets --all-features (passed in 121.8 seconds)
  • cargo clippy --locked --workspace --all-targets --all-features -- -D warnings
  • RUSTDOCFLAGS="-D warnings" cargo doc --locked --workspace --all-features --no-deps
  • cargo test --locked --workspace --all-features --doc
  • Rust 1.92 workspace all-target/all-feature check
  • strict rustferry-android Clippy for x86_64-unknown-linux-gnu, plus 42 Windows Android tests
  • release contract: version 0.1.0 and 30 exact internal dependency edges
  • license inventory: 330 Cargo dependencies, 500 npm development dependencies, 25/19 reviewed license expressions, four reviewed license files
  • 20 release-script tests, seven standalone example checks and basic tests, 20 cookbook pages, 248 local links, mdBook, and schema equality
  • VS Code npm ci and npm run check with the real CLI: 17 test files passed; 74 tests passed and 8 skipped; package smoke produced a 73,636-byte VSIX with SHA-256 0a78dc77fef748249d5c483a3c25ecae2930ebb98a884b6c3e1c1fa6fd03f921
  • Windows Extension Host smoke: ordinary Rust remained inactive; a Ferry workspace activated, discovered, validated, and refreshed successfully
  • VS Code performance probes: CLI handshake median 9.207 ms, validation median 10.338 ms, 10,000-event parse median 4.616 ms
  • fresh Windows source-checkout smoke: generated com.example.rustferryreleasesmoke; Doctor, Capabilities, Ferry Check, and Cargo Check passed; Android build completed in 63.7 seconds
  • independent APK inspection: 189,924,295 bytes; SHA-256 a311c7852ebee2f6bb429731bea4cb932740f64cf4a99b12ca6b9b2361d5da1d; API 26/36; FerryActivity; ZIP integrity; 16 KiB alignment; v2/v3 signatures; classes.dex; exactly one arm64-v8a ELF; no connected device required

Packaging

  • All nine archives were rebuilt from a clean release tree and contain 13-73 files each.
  • Compressed sizes range from 56,038 bytes (rustferry-ssh) to 570,004 bytes (cargo-ferry).
  • cargo package --workspace --exclude rustferry-worker-macos --locked passed with package verification enabled.
  • cargo publish --workspace --exclude rustferry-worker-macos --dry-run --locked passed; every simulated upload was aborted by dry-run.
  • scripts/check-release-archives.py --check-sources rebuilt the normalized dependency graph in a fresh target and passed all nine archives.
  • Normalized manifests retain exact =0.1.0 internal registry dependencies and the required README and dual licenses.
  • No target/Git metadata, environment files, logs, mobile or VSIX artifacts, signing material, API tokens, private repository coordinates, author email, or developer absolute paths were found in the archives.

Publish order: rustferry-core, rustferry, rustferry-codegen, rustferry-remote, rustferry-android, rustferry-apple, rustferry-github, rustferry-ssh, cargo-ferry. rustferry-worker-macos remains publish = false.

Direct crates.io API checks on 2026-08-13 return 404 for all nine names. No crates.io upload has been attempted.

Validation limits

The current base records one user-confirmed physical Android launch and Calculator interaction. The final release-source smoke above is artifact-only. Android emulator runtime, iOS Simulator runtime, physical-iPhone runtime, generalized physical-device install/run/log workflows, live SSH compilation, and a development-signed remote IPA remain unvalidated. This is a public pre-release, not a production-readiness claim.

@ShiroKSH
ShiroKSH requested a review from Anerson-Auf as a code owner August 12, 2026 23:20
@ShiroKSH
ShiroKSH enabled auto-merge (rebase) August 13, 2026 01:11
@ShiroKSH
ShiroKSH disabled auto-merge August 13, 2026 09:16
@ShiroKSH
ShiroKSH merged commit d15f9d0 into master Aug 13, 2026
21 checks passed
@ShiroKSH
ShiroKSH deleted the release/0.1.0 branch August 13, 2026 09:16
@ShiroKSH
ShiroKSH restored the release/0.1.0 branch August 13, 2026 09:17
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