Skip to content

Tracking Issue to Release 0.8.0 #417

Open

Description

@ariesdevil
  • Release manager: ariesdevil (resumed on 2026-11-09 after @tisonkun handoff).
  • Target version: 0.8.0
  • Previous release: 0.7.4 (v0.7.4)
  • Source cutoff: cf7ec96addde4645e2e2184cb388049470dfec5b; work not merged at this cutoff is deferred to a later release unless explicitly included in a replacement cutoff.
  • Release PR: chore: prepare 0.8.0 release #418 (merged).
  • Frozen release commit (RELEASE_COMMIT): 629e073dbb665749f9d89d3a54c2313d8d77c72b.
  • Current phase / next action: PPMC vote started 2026-11-09 07:36 UTC and closes 2026-11-12 07:36 UTC; cast the release manager vote and wait for at least three eligible +1 votes and more +1 than -1 before resolving.
  • Runbook: https://github.com/apache/asyncband/blob/cf7ec96addde4645e2e2184cb388049470dfec5b/.agents/skills/release/SKILL.md

Prepare and freeze

  • Audit the selected source with license-audit; source cutoff cf7ec96addde4645e2e2184cb388049470dfec5b passed with no source-licensing blocker; distribution review remains pending below.
  • Merge the version, lockfile, and undated changelog PR; chore: prepare 0.8.0 release #418 merged and RELEASE_COMMIT recorded above.
  • Complete the final license review, including the actual Cargo package and any audit corrections; frozen package passed with no material omission.

Check the frozen release commit

  • cargo x lint (passed at RELEASE_COMMIT).
  • cargo x check (passed at RELEASE_COMMIT).
  • cargo x test --no-capture (passed at RELEASE_COMMIT).
  • RUSTUP_TOOLCHAIN=1.86.0 cargo x test --no-capture (passed at RELEASE_COMMIT).
  • cargo x semver --release-version 0.8.0 --acknowledge-breaking-changes; the two removed mapped-write-guard downgrade methods and the documented broadcast receive API migration were reviewed as expected 0.8.0 breaks.
  • cargo publish --package asyncband --locked --dry-run from the clean checkout; 95-file package verified.

Audited Cargo package SHA-256: 5e53c31fb18f42e765610b2146531390e56966f601d8ffca530d292a34fe4218.

  • Required GitHub CI passes for RELEASE_COMMIT, including Miri and all six OS/toolchain test combinations.

Candidate

  • RC / signed tag: v0.8.0-rc.1, pointing to RELEASE_COMMIT; git verify-tag passed before push.
  • Compose run and attempt / package-check run: Compose, attempt 1 passed including environment-approved signing and ATR upload; package check passed and crates.io publication was skipped for the RC.
  • ATR candidate URL / revision: https://releases.apache.org/vote/asyncband/0.8.0 / 00001 (manifest).
  • Source SHA-512: c93cc34fd042103d3e9b899f0858efcb8d44b2064446ef337a9d808b52b701ba28194ca3530351d5ade13b4f2402b7ef2e039271a9fb3e8c7cc48ff13f41d49a (verified against ATR revision 00001, compose artifact, and an independent Ubuntu 24.04 rebuild).
  • Tag signer / source signer fingerprints and provenance: tag: 8A2E 59FD 15DE FCC7 C64D DB7F 1C46 66D4 D93A BF00 (Yijun Zhao); archive: 023A 42E7 299A 010F EE7A E021 393A FB9D 52BB 37B8 (project automated signing key). Both verified against ASF KEYS.

Checklist:

  • Push the signed RC tag at the frozen commit; both release workflows and ATR upload passed.
  • Download and verify the ATR revision: signatures, checksum, source contents against the RC commit, independent Ubuntu 24.04 archive rebuild, build, and packaging all passed for 00001.
  • Complete the license review of the actual source archive and Cargo distribution; no material omission or ATR finding remained for 00001.

Vote and publish

Checklist:

  • Start the PPMC vote in ATR; revision 00001, 72 hours, thread and closing time recorded.
  • After the required duration and votes, resolve PPMC as Passed in ATR; record its result and the automatically started IPMC vote, and ensure that thread includes the PPMC tally link and any carried IPMC votes.
  • After the required duration and binding votes, resolve IPMC as Passed in ATR; record its result.
  • Confirm ATR publishes the voted revision to ASF distribution; record the SVN revision and download URL.
  • Push the signed final tag at the approved commit and approve/verify crates.io publication.
  • Verify ASF downloads and signatures, crates.io, and docs.rs.
  • Update the website Downloads page to this release and confirm it is live.
  • Send the announcement through ATR and record its archive link.
  • Merge the publication-date changelog PR and confirm superseded-release archival as applicable.
  • Close this issue after the preceding required items are complete.

Activity

  1. ariesdevil commented on Nov 9, 2026

    @ariesdevil
    MemberAuthor

    Initial license-audit completed on 2026-11-09 for clean source cutoff cf7ec96addde4645e2e2184cb388049470dfec5b.

    • Enumerated the complete tracked inventory; no bundled third-party directories, generated binary artifacts, or unexpected file types were found. The crate's LICENSE, NOTICE, DISCLAIMER, and MIGRATE.md symlinks resolve to the root files.
    • hawkeye check passed: 258 files, 0 changes, 0 conflicts, 0 unsupported. All newly added source, test, benchmark, and documentation files carry ASF headers.
    • Reviewed LICENSE, NOTICE, DISCLAIMER, all Cargo manifests, and licenserc.toml; the package declares Apache-2.0, required legal texts are present, and normal dependencies are not vendored.
    • Cross-checked the pinned Tokio, oneshot, Pollster, futures-lite, parking, and Fastpool upstream revisions and license texts. Existing source provenance, modification notices, selected Apache-2.0 options, Tokio MIT terms, and applicable copyright notices remain intact. The futures-lite third-party notice was reviewed against the actual adapted future.rs block and the project's prior per-file licensing decision in fix: preserve third-party source licensing #279; no new applicability evidence was found.
    • No source-licensing release blocker was identified.

    Coverage limit: this was a checkout audit. The generated Cargo package, official source archive, signatures, and ATR results remain unverified until the frozen package and actual candidate are available.

  2. ariesdevil commented on Nov 9, 2026

    @ariesdevil
    MemberAuthor

    Release-infrastructure preflight:

    • GitHub reports push: true for ariesdevil on apache/asyncband; PR chore: prepare 0.8.0 release #418 is open at 1fe920d01943ea5585a44daa88ace0b059f0eedd.
    • Semver pre-review against 0.7.4 reported the expected removals of MappedRwLockWriteGuard::downgrade and OwnedMappedRwLockWriteGuard::downgrade. The changelog also documents the broadcast owning-receive to shared-Arc<T> API migration and removal of its T: Clone constructor bounds. These expected breaks will be acknowledged and rechecked on the frozen commit.
    • gpg --list-secret-keys --with-fingerprint found no local private keys. The current ASF KEYS contains keys for tison, orthur, iqwqi, and the project automated signer, but no key for ariesdevil. RC signing therefore needs a personal ASF OpenPGP key imported locally and its public key appended to KEYS, or a handoff to an existing release manager.
    • ariesdevil is not listed as a release environment reviewer in .asf.yaml; compose and final deployment approval will require one of the configured reviewers.

    No RC tag has been created and no vote or publication action has been attempted.

  3. ariesdevil commented on Nov 9, 2026

    @ariesdevil
    MemberAuthor

    Final frozen-checkout Cargo package license review completed on 2026-11-09 for 629e073dbb665749f9d89d3a54c2313d8d77c72b.

    • Inspected all 95 members of the actual asyncband-0.8.0.crate; the inventory contains the expected Cargo metadata, legal texts, README/MIGRATE documentation, and Rust sources, with no bundled binaries or third-party dependency source trees.
    • .cargo_vcs_info.json records the frozen commit, the normalized manifest declares version 0.8.0 and Apache-2.0, and Cargo.toml.orig matches the frozen manifest.
    • Packaged LICENSE, NOTICE, DISCLAIMER, MIGRATE.md, and README.md are byte-identical to the frozen checkout. The complete packaged src tree is also identical, including all ASF and third-party provenance headers.
    • No material licensing or attribution omission was found in the Cargo distribution.

    Audited package SHA-256: 5e53c31fb18f42e765610b2146531390e56966f601d8ffca530d292a34fe4218.

    The official ASF source archive is a separate distribution and remains unverified until an RC is composed and uploaded to ATR.

  4. ariesdevil commented on Nov 9, 2026

    @ariesdevil
    MemberAuthor

    @tisonkun You are now the release manager for 0.8.0, handed off from ariesdevil.

    Handoff state:

    • RELEASE_COMMIT: 629e073dbb665749f9d89d3a54c2313d8d77c72b, from merged release PR chore: prepare 0.8.0 release #418. Its tree exactly matches the reviewed PR head.
    • All pre-RC checks are complete: source and actual Cargo package license reviews, lint, feature matrix, stable and Rust 1.86.0 tests, reviewed semver acknowledgement, and cargo publish --package asyncband --locked --dry-run.
    • Required frozen-commit CI passed in https://github.com/apache/asyncband/actions/runs/42575592637, including Miri and all OS/toolchain combinations.
    • Audited Cargo package SHA-256: 5e53c31fb18f42e765610b2146531390e56966f601d8ffca530d292a34fe4218.
    • No v0.8.0 or v0.8.0-rc.* tag exists. No candidate, vote, or publication action has been attempted.

    Next action: use a clean detached checkout of RELEASE_COMMIT, sign and push v0.8.0-rc.1 with your personal ASF OpenPGP key, and follow the pinned runbook above. Your public key 8B37 4472 FAD3 28E1 7F47 9863 B379 691F C6E2 98DD is already present in ASF KEYS, and you are a configured release environment reviewer. Please record the tag, both workflow runs, ATR revision, and source SHA-512 here before candidate verification and voting.

  5. tisonkun commented on Nov 9, 2026

    @tisonkun
    Member

    @tisonkun You are now the release manager for 0.8.0, handed off from @ariesdevil.

    Nope. I think you can create your own OpenPGP KEYS and continue the release flow.

  6. ariesdevil commented on Nov 9, 2026

    @ariesdevil
    MemberAuthor

    ariesdevil has resumed as release manager and created a personal ASF OpenPGP key for this release.

    • Primary fingerprint: 8A2E 59FD 15DE FCC7 C64D DB7F 1C46 66D4 D93A BF00
    • UID: Yijun Zhao (CODE SIGNING KEY) <ariesdevil@apache.org>
    • RSA 4096, signing-capable, expires 2028-11-08.
    • The matching private key is present in the local keyring.
    • The public key is now committed in the authoritative ASF distribution SVN KEYS. The downloads.apache.org copy has not propagated yet; RC signing waits for that public copy to expose the same fingerprint.
  7. ariesdevil commented on Nov 9, 2026

    @ariesdevil
    MemberAuthor

    Signed tag v0.8.0-rc.1 has been pushed at 629e073dbb665749f9d89d3a54c2313d8d77c72b.

    git verify-tag reports a good signature from Yijun Zhao (CODE SIGNING KEY) <ariesdevil@apache.org> using primary fingerprint 8A2E59FD15DEFCC7C64DDB7F1C4666D4D93ABF00. The same public key is now visible in https://downloads.apache.org/incubator/asyncband/KEYS.

    Next: follow the Release package check and Compose source release workflows, then verify the actual ATR candidate before voting.

  8. ariesdevil commented on Nov 9, 2026

    @ariesdevil
    MemberAuthor

    @tisonkun Could you approve the release environment deployment for the 0.8.0 RC compose run?

    GitHub reports current_user_can_approve: false for this account. Your approval will allow the project automated key to sign and upload the source candidate to ATR.

  9. ariesdevil commented on Nov 9, 2026

    @ariesdevil
    MemberAuthor

    ATR revision 00001 verification and final distribution license review passed.

    • Downloaded all three files from ATR. SHA-512 is c93cc34fd042103d3e9b899f0858efcb8d44b2064446ef337a9d808b52b701ba28194ca3530351d5ade13b4f2402b7ef2e039271a9fb3e8c7cc48ff13f41d49a; all three ATR manifest SHA3-256 values match, and the archive is byte-identical to compose attempt 1.
    • Source signature is valid with the project automated key 023A42E7299A010FEE7AE021393AFB9D52BB37B8. The signed RC tag was separately verified with 8A2E59FD15DEFCC7C64DDB7F1C4666D4D93ABF00.
    • Archive inventory has 271 files, 91 directories, and 4 internal symlinks, with no unsafe paths. All 365 extracted entries match the frozen git archive in content, mode, and link target. ATR's inner-directory SWHID swh:1:dir:6fdcea42a889ad48d6e005eada52451eeecd46bf exactly matches the frozen commit tree.
    • An independent Ubuntu 24.04 rebuild using the compose recipe produced the identical SHA-512.
    • From the actual ATR extraction, cargo test --workspace --all-features --locked and cargo publish --package asyncband --locked --dry-run passed. The generated package has 94 rather than 95 files because .cargo_vcs_info.json is absent without a Git checkout, as expected.
    • Final license review of the actual archive and generated Cargo package found no material omission. Hawkeye passed 258 files with 0 changes/conflicts/unsupported; legal texts and complete source trees match the frozen source, and the Cargo manifest declares Apache-2.0.

    ATR remains in Compose and no vote has been started. Next: inspect/complete the ATR compose-to-vote transition and prepare the PPMC vote with this evidence.

  10. tisonkun commented on Nov 9, 2026

    @tisonkun
    Member

    Aha. We actually use a shared PMC signing key :D

  11. ariesdevil commented on Nov 9, 2026

    @ariesdevil
    MemberAuthor

    ATR checks completed for revision 00001: no blockers, one concern, and one suggestion.

    The concern is atr.tasks.checks.protection.check: ATR could not confirm a creation/update protection rule for refs/tags/v0.8.0-rc.1. Review found GitHub ruleset 21196536 active for refs/tags/v*.*.*, with deletion and non_fast_forward rules and current_user_can_bypass: never. These rules prevent tag deletion and non-fast-forward movement; the remote tag object also matches the locally verified signed tag and frozen commit. This is acceptable for this candidate, so the concern can be acknowledged with this evidence.

    The suggestion is sbom.check: no matching SBOM was found. An SBOM is not a required artifact for this release, and related draft work #379 was already outside the frozen scope. No candidate change is needed.

  12. ariesdevil commented on Nov 9, 2026

    @ariesdevil
    MemberAuthor

    PPMC vote delivery and phase are confirmed on ATR. The returned second_round_email_to: null is safe: ATR's resolution path falls back to general@incubator.apache.org when starting the IPMC round, so no correction is needed.

    For the release manager's own +1, this project uses email-vote mode. The API vote/cast endpoint only accepts Trusted Vote ballots, while email votes use the ATR web session's vote form or a reply to the mailing-list thread. PAT-based CLI authentication therefore cannot perform this step. The release manager can cast +1 through https://releases.apache.org/vote/asyncband/0.8.0 after ASF login, citing the completed verification.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions