From 3bdba7e78f3b093b4bba02d36cad7ae40d1d275d Mon Sep 17 00:00:00 2001 From: tison Date: Tue, 1 Sep 2026 02:00:49 +0800 Subject: [PATCH 1/2] chore: prepare 0.7.0 release --- CHANGELOG.md | 6 +++++- Cargo.lock | 2 +- asyncband/Cargo.toml | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 680eb7f6..0f31d206 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file. ## Unreleased +## v0.7.0 (2026-09-01) + ### Breaking changes * Gate all exported primitives behind opt-in Cargo features and enable no features by default; downstream dependencies must explicitly enable the APIs they use. @@ -36,5 +38,7 @@ All notable changes to this project will be documented in this file. ### Improvements -* Remove the `slab` dependency in favor of a focused internal waiter arena. +* Reduce MPSC receiver registration and wake latency by storing receiver wakers inline instead of allocating them on the heap. +* Reduce semaphore and mutex hot-path overhead by avoiding wake-buffer allocation when no tasks are queued and batching queued wakes on the stack. +* Allocate `OnceMap` and `singleflight::Group` registries lazily to reduce construction overhead. * Describe disconnected channel states consistently in channel error messages. diff --git a/Cargo.lock b/Cargo.lock index d2933879..43615ed3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -78,7 +78,7 @@ dependencies = [ [[package]] name = "asyncband" -version = "0.6.7" +version = "0.7.0" dependencies = [ "hashbrown", "tokio", diff --git a/asyncband/Cargo.toml b/asyncband/Cargo.toml index d76cad33..c05d411b 100644 --- a/asyncband/Cargo.toml +++ b/asyncband/Cargo.toml @@ -17,7 +17,7 @@ [package] name = "asyncband" -version = "0.6.7" +version = "0.7.0" categories = ["asynchronous", "concurrency"] description = "Composable, runtime-agnostic concurrency building blocks for async Rust." From 4bb061328b9bdcef6be1323c94bdf87b46dc3d34 Mon Sep 17 00:00:00 2001 From: tison Date: Tue, 1 Sep 2026 02:05:04 +0800 Subject: [PATCH 2/2] docs: defer changelog date until release --- CHANGELOG.md | 2 +- RELEASE.md | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f31d206..d469a841 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file. ## Unreleased -## v0.7.0 (2026-09-01) +## v0.7.0 ### Breaking changes diff --git a/RELEASE.md b/RELEASE.md index 61773d0c..aea1fbb2 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -56,7 +56,7 @@ The `release` environment in `.asf.yaml` limits deployments to version tags and Start from current `main` and choose `VERSION` from the changes since the latest crates.io release. 1. Change `version` in `asyncband/Cargo.toml` and refresh `Cargo.lock` with Cargo. -2. Move the entries under `Unreleased` in `CHANGELOG.md` into a dated `VERSION` section, then restore an empty `Unreleased` section. Keep user-impacting sections ordered as breaking changes, new features, bug fixes, and improvements. +2. Move the entries under `Unreleased` in `CHANGELOG.md` into an undated `v${VERSION}` section immediately below it, then restore an empty `Unreleased` section. Keep user-impacting sections ordered as breaking changes, new features, bug fixes, and improvements; add the actual release date only after publication. 3. Verify `LICENSE`, `NOTICE`, `DISCLAIMER`, source headers, and bundled dependencies. 4. Run the release checks: @@ -85,7 +85,9 @@ Fetch `RELEASE_COMMIT`, inspect the detached worktree, and create a signed annot RC_TAG="v${VERSION}-rc.${RC}" git fetch https://github.com/apache/asyncband.git main git switch --detach "${RELEASE_COMMIT}" -git status --short +git grep -F "version = \"${VERSION}\"" -- asyncband/Cargo.toml Cargo.lock +git grep -Fx "## v${VERSION}" -- CHANGELOG.md +test -z "$(git status --porcelain)" git tag --sign "${RC_TAG}" \ --message "Apache Asyncband ${VERSION} release candidate ${RC}" \ "${RELEASE_COMMIT}" @@ -201,8 +203,9 @@ After publication: 1. Verify the version and metadata on crates.io and docs.rs. 2. After ASF distribution syncs, verify the source archive, checksum, and signature under `https://downloads.apache.org/incubator/asyncband/${VERSION}/` and the project `KEYS` file at `https://downloads.apache.org/incubator/asyncband/KEYS`. -3. Announce the release on `dev@asyncband.apache.org` and other appropriate channels as Apache Asyncband (Incubating). -4. Remove superseded releases from `dist/release`; ASF retains them in the archive. +3. Submit a post-release pull request that adds the actual publication date to the `v${VERSION}` changelog heading. +4. Announce the release on `dev@asyncband.apache.org` and other appropriate channels as Apache Asyncband (Incubating). +5. Remove superseded releases from `dist/release`; ASF retains them in the archive. ## Recover from failures