chore(release): prepare 54 coordinated crate releases - #739
chore(release): prepare 54 coordinated crate releases#739Zac Walker (ZacWalk) wants to merge 3 commits into
Conversation
Release thread_aware 0.12.0 and rest_over_grpc 0.2.1 with reviewed dependency cascades. Use 27 breaking and 28 compatible increments. Synchronize workspace requirements, lockfile, generated READMEs and changelogs. Document the observed macro input restriction and ohno lint compatibility caveat. Validated workspace Clippy, formatting, 969 selected tests and dependency closure. Spelling remains pending CI because local cargo-spellcheck installation requires libclang.
There was a problem hiding this comment.
🟡 Changes recommended
A few release notes entries are internally inconsistent/misleading (notably thread_aware_core 0.1.1 marked breaking despite a patch bump, and unrelated PR #686 “split” notes in other crates’ changelogs), which should be corrected before publishing.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR prepares a coordinated multi-crate release train by updating crate versions, dependency version requirements, changelog entries, and regenerated crate READMEs (doc links/hashes), plus the workspace dependency version pins in the root Cargo.toml.
Changes:
- Bump crate versions and align workspace dependency version requirements for the release set.
- Add new release entries to per-crate
CHANGELOG.mdfiles. - Regenerate crate
README.mdfiles (doc2readme link/version updates).
File summaries
| File | Description |
|---|---|
| Cargo.toml | Update workspace dependency version pins for the coordinated releases. |
| crates/anyspawn/Cargo.toml | Bump crate version for release. |
| crates/anyspawn/CHANGELOG.md | Add release notes entry. |
| crates/anyspawn/README.md | Regenerate README doc links for new version. |
| crates/anyspawn_azure/Cargo.toml | Bump crate version for release. |
| crates/anyspawn_azure/CHANGELOG.md | Add release notes entry. |
| crates/anyspawn_azure/README.md | Regenerate README doc links for new version. |
| crates/arty/Cargo.toml | Bump crate version for release. |
| crates/arty/CHANGELOG.md | Add release notes entry. |
| crates/arty/README.md | Regenerate README metadata block. |
| crates/arty_executor/Cargo.toml | Bump crate version for release. |
| crates/arty_executor/CHANGELOG.md | Add release notes entry. |
| crates/bytesbuf/Cargo.toml | Bump crate version for release. |
| crates/bytesbuf/CHANGELOG.md | Add release notes entry. |
| crates/bytesbuf/README.md | Regenerate README doc links for new version. |
| crates/bytesbuf_io/Cargo.toml | Bump crate version for release. |
| crates/bytesbuf_io/CHANGELOG.md | Add release notes entry. |
| crates/bytesbuf_io/README.md | Regenerate README doc links for new version. |
| crates/cachet/Cargo.toml | Bump crate version for release. |
| crates/cachet/CHANGELOG.md | Add release notes entry. |
| crates/cachet/README.md | Regenerate README doc links for new version. |
| crates/cachet_memory/Cargo.toml | Bump crate version for release. |
| crates/cachet_memory/CHANGELOG.md | Add release notes entry. |
| crates/cachet_memory/README.md | Regenerate README doc links for new version. |
| crates/cachet_service/Cargo.toml | Bump crate version for release. |
| crates/cachet_service/CHANGELOG.md | Add release notes entry. |
| crates/cachet_service/README.md | Regenerate README doc links for new version. |
| crates/cachet_tier/Cargo.toml | Bump crate version for release. |
| crates/cachet_tier/CHANGELOG.md | Add release notes entry. |
| crates/cachet_tier/README.md | Regenerate README doc links for new version. |
| crates/data_privacy/Cargo.toml | Bump crate version for release. |
| crates/data_privacy/CHANGELOG.md | Add release notes entry. |
| crates/data_privacy/README.md | Regenerate README doc links for new version. |
| crates/data_privacy_core/Cargo.toml | Bump crate version for release. |
| crates/data_privacy_core/CHANGELOG.md | Add release notes entry. |
| crates/data_privacy_core/README.md | Regenerate README doc links for new version. |
| crates/data_privacy_macros/Cargo.toml | Bump crate version for release. |
| crates/data_privacy_macros/CHANGELOG.md | Add release notes entry. |
| crates/data_privacy_macros_impl/Cargo.toml | Bump crate version for release. |
| crates/data_privacy_macros_impl/CHANGELOG.md | Add release notes entry. |
| crates/fetch/Cargo.toml | Bump crate version for release. |
| crates/fetch/CHANGELOG.md | Add release notes entry. |
| crates/fetch/README.md | Regenerate README doc links for new version. |
| crates/fetch_azure/Cargo.toml | Bump crate version for release. |
| crates/fetch_azure/CHANGELOG.md | Add release notes entry. |
| crates/fetch_azure/README.md | Regenerate README doc links for new version. |
| crates/fetch_hyper/Cargo.toml | Bump crate version for release. |
| crates/fetch_hyper/CHANGELOG.md | Add release notes entry. |
| crates/fetch_hyper/README.md | Regenerate README doc links for new version. |
| crates/fetch_tls/Cargo.toml | Bump crate version for release. |
| crates/fetch_tls/CHANGELOG.md | Add release notes entry. |
| crates/fetch_tls/README.md | Regenerate README doc links for new version. |
| crates/fetch_winhttp/Cargo.toml | Bump crate version for release. |
| crates/fetch_winhttp/CHANGELOG.md | Add release notes entry. |
| crates/fetch_winhttp_impl/Cargo.toml | Bump crate version for release. |
| crates/fetch_winhttp_impl/CHANGELOG.md | Add release notes entry. |
| crates/fundle/Cargo.toml | Bump crate version for release. |
| crates/fundle/CHANGELOG.md | Add release notes entry. |
| crates/fundle_macros/Cargo.toml | Bump crate version for release. |
| crates/fundle_macros/CHANGELOG.md | Add release notes entry. |
| crates/fundle_macros_impl/Cargo.toml | Bump crate version for release. |
| crates/fundle_macros_impl/CHANGELOG.md | Add release notes entry. |
| crates/http_extensions/Cargo.toml | Bump crate version for release. |
| crates/http_extensions/CHANGELOG.md | Add release notes entry. |
| crates/http_extensions/README.md | Regenerate README doc links for new version. |
| crates/http_path_template/Cargo.toml | Bump crate version for release. |
| crates/http_path_template/CHANGELOG.md | Add release notes entry. |
| crates/http_path_template/README.md | Regenerate README doc links for new version. |
| crates/layered/Cargo.toml | Bump crate version for release. |
| crates/layered/CHANGELOG.md | Add release notes entry. |
| crates/layered/README.md | Regenerate README doc links for new version. |
| crates/multitude/Cargo.toml | Bump crate version for release. |
| crates/multitude/CHANGELOG.md | Add release notes entry. |
| crates/multitude_macros/Cargo.toml | Bump crate version for release. |
| crates/multitude_macros/CHANGELOG.md | Add new changelog file/entry for release. |
| crates/multitude_macros_impl/Cargo.toml | Bump crate version for release. |
| crates/multitude_macros_impl/CHANGELOG.md | Add new changelog file/entry for release. |
| crates/msvc_spectre_libs/Cargo.toml | Bump crate version for release. |
| crates/msvc_spectre_libs/CHANGELOG.md | Add new changelog file/entry for release. |
| crates/msvc_spectre_libs_build/Cargo.toml | Bump crate version for release. |
| crates/msvc_spectre_libs_build/CHANGELOG.md | Add new changelog file/entry for release. |
| crates/msvc_spectre_libs_build/README.md | Regenerate README doc links for new version. |
| crates/observed/Cargo.toml | Bump crate version for release. |
| crates/observed/CHANGELOG.md | Add release notes entry (and reorganize header placement). |
| crates/observed/README.md | Regenerate README doc links for new version. |
| crates/observed_macros/Cargo.toml | Bump crate version for release. |
| crates/observed_macros/CHANGELOG.md | Add release notes entry (macro compatibility note). |
| crates/observed_macros_impl/Cargo.toml | Bump crate version for release. |
| crates/observed_macros_impl/CHANGELOG.md | Add release notes entry (macro behavior change note). |
| crates/observed_utils/Cargo.toml | Bump crate version for release. |
| crates/observed_utils/CHANGELOG.md | Add release notes entry. |
| crates/observed_utils/README.md | Regenerate README doc links for new version. |
| crates/ohno/Cargo.toml | Bump crate version for release. |
| crates/ohno/CHANGELOG.md | Add release notes entry. |
| crates/ohno/README.md | Regenerate README doc links for new version. |
| crates/ohno_macros/Cargo.toml | Bump crate version for release. |
| crates/ohno_macros/CHANGELOG.md | Add release notes entry. |
| crates/ohno_macros_impl/Cargo.toml | Bump crate version for release. |
| crates/ohno_macros_impl/CHANGELOG.md | Add release notes entry. |
| crates/plurality/Cargo.toml | Bump crate version for release. |
| crates/plurality/CHANGELOG.md | Add release notes entry. |
| crates/plurality/README.md | Regenerate README doc links for new version. |
| crates/recoverable/Cargo.toml | Bump crate version for release. |
| crates/recoverable/CHANGELOG.md | Add release notes entry. |
| crates/recoverable/README.md | Regenerate README doc links for new version. |
| crates/rest_over_grpc/Cargo.toml | Bump crate version for release. |
| crates/rest_over_grpc/CHANGELOG.md | Add release notes entry (includes depth-limit fix note). |
| crates/rest_over_grpc/README.md | Regenerate README doc links for new version. |
| crates/routerama/Cargo.toml | Bump crate version for release. |
| crates/routerama/CHANGELOG.md | Add release notes entry. |
| crates/routerama/README.md | Regenerate README doc links for new version. |
| crates/routerama_build/Cargo.toml | Bump crate version for release. |
| crates/routerama_build/CHANGELOG.md | Add release notes entry. |
| crates/routerama_build/README.md | Regenerate README doc links for new version. |
| crates/routerama_macros/Cargo.toml | Bump crate version for release. |
| crates/routerama_macros/CHANGELOG.md | Add release notes entry. |
| crates/seatbelt/Cargo.toml | Bump crate version for release. |
| crates/seatbelt/CHANGELOG.md | Add release notes entry. |
| crates/seatbelt/README.md | Regenerate README doc links for new version. |
| crates/seatbelt_http/Cargo.toml | Bump crate version for release. |
| crates/seatbelt_http/CHANGELOG.md | Add release notes entry. |
| crates/seatbelt_http/README.md | Regenerate README doc links for new version. |
| crates/templated_uri/Cargo.toml | Bump crate version for release. |
| crates/templated_uri/CHANGELOG.md | Add release notes entry. |
| crates/templated_uri/README.md | Regenerate README doc links for new version. |
| crates/templated_uri_macros/Cargo.toml | Bump crate version for release. |
| crates/templated_uri_macros/CHANGELOG.md | Add release notes entry. |
| crates/templated_uri_macros_impl/Cargo.toml | Bump crate version for release. |
| crates/templated_uri_macros_impl/CHANGELOG.md | Add release notes entry. |
| crates/thread_aware/Cargo.toml | Bump crate version for release. |
| crates/thread_aware/CHANGELOG.md | Add release notes entry. |
| crates/thread_aware/README.md | Regenerate README doc links for new version. |
| crates/thread_aware_core/Cargo.toml | Bump crate version for release. |
| crates/thread_aware_core/CHANGELOG.md | Add release notes entry. |
| crates/thread_aware_core/README.md | Regenerate README doc links for new version. |
| crates/thread_aware_macros/Cargo.toml | Bump crate version for release. |
| crates/thread_aware_macros/CHANGELOG.md | Add release notes entry. |
| crates/thread_aware_macros_impl/Cargo.toml | Bump crate version for release. |
| crates/thread_aware_macros_impl/CHANGELOG.md | Add release notes entry. |
| crates/tick/Cargo.toml | Bump crate version for release. |
| crates/tick/CHANGELOG.md | Add release notes entry. |
| crates/tick/README.md | Regenerate README doc links for new version. |
| crates/uniflight/Cargo.toml | Bump crate version for release. |
| crates/uniflight/CHANGELOG.md | Add release notes entry. |
| crates/uniflight/README.md | Regenerate README doc links for new version. |
Review details
- Files reviewed: 146/147 changed files
- Comments generated: 3
- Review effort level: Lite
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
|
||
| - ♻️ Code Refactoring | ||
|
|
||
| - split the implementation into observed_macros_impl ([#686](https://github.com/microsoft/oxidizer/pull/686)) |
|
|
||
| - ♻️ Code Refactoring | ||
|
|
||
| - split the implementation into observed_macros_impl ([#686](https://github.com/microsoft/oxidizer/pull/686)) |
| ## [0.1.1] - 2026-09-07 | ||
|
|
||
| - ⚠️ Breaking | ||
|
|
||
| - adopt thread_aware_core across workspace ([#721](https://github.com/microsoft/oxidizer/pull/721)) |
There was a problem hiding this comment.
🤖 Fixed in b6cb206. Kept the compatible 0.1.1 version and replaced the inherited breaking commit title with crate-specific Added/Fixed notes: the static-string ThreadAware implementation, owner-identity wrap prevention, and clarified guarantees. The breaking adoption applies to thread_aware and affected consumers, not to the core crate itself.
|
| Crate | Baseline | Baseline commit | This PR | Minimum required | Status |
|---|---|---|---|---|---|
anyspawn |
0.8.0 | d170a41 |
0.9.0 | 0.8.1 | |
anyspawn_azure |
0.3.0 | d170a41 |
0.4.0 | 0.3.1 | |
arty |
0.2.0 | efd8178 |
0.3.0 | 0.2.1 | |
arty_executor |
0.1.1 | d170a41 |
0.1.2 | 0.1.2 | |
bytesbuf |
0.9.0 | d170a41 |
0.10.0 | 0.9.1 | |
bytesbuf_io |
0.9.0 | d170a41 |
0.10.0 | 0.9.1 | |
cachet |
0.13.0 | d170a41 |
0.14.0 | 0.13.1 | |
cachet_memory |
0.7.0 | d170a41 |
0.8.0 | 0.7.1 | |
cachet_service |
0.5.0 | d170a41 |
0.5.1 | 0.5.1 | ✅ ok |
cachet_tier |
0.5.0 | d170a41 |
0.5.1 | 0.5.1 | ✅ ok |
data_privacy |
0.12.4 | 94229b8 |
0.13.0 | 0.12.5 | |
data_privacy_macros |
0.10.3 | 542a32c |
0.13.0 | — | |
data_privacy_macros_impl |
0.10.3 | 542a32c |
0.13.0 | 0.10.4 | ✅ ok |
fetch |
0.16.1 | 356dc63 |
0.17.0 | 0.16.2 | |
fetch_azure |
0.6.1 | 356dc63 |
0.7.0 | 0.6.2 | |
fetch_hyper |
0.7.1 | 356dc63 |
0.8.0 | 0.7.2 | |
fetch_tls |
0.4.0 | d170a41 |
0.4.1 | 0.4.1 | ✅ ok |
fetch_winhttp |
0.1.1 | 5899abe |
0.2.0 | 0.1.2 | |
fetch_winhttp_impl |
0.1.1 | 5899abe |
0.2.0 | 0.1.2 | |
fundle |
0.3.5 | 94229b8 |
0.4.0 | 0.3.6 | |
fundle_macros |
0.3.5 | 94229b8 |
0.4.0 | — | |
fundle_macros_impl |
0.3.5 | 94229b8 |
0.4.0 | 0.3.6 | ✅ ok |
http_extensions |
0.10.0 | d170a41 |
0.11.0 | 0.10.1 | |
http_path_template |
0.2.0 | 1feffd7 |
0.2.1 | 0.2.1 | ✅ ok |
layered |
0.3.6 | 94229b8 |
0.3.7 | 0.3.7 | ✅ ok |
msvc_spectre_libs |
0.2.0 | 400e97e |
0.2.1 | 0.2.1 | ✅ ok |
msvc_spectre_libs_build |
0.1.0 | 400e97e |
0.1.1 | 0.1.1 | ✅ ok |
multitude |
0.9.0 | d170a41 |
0.10.0 | 0.9.1 | |
multitude_macros |
0.1.1 | 7c185b4 |
0.1.2 | — | |
multitude_macros_impl |
0.1.1 | 7c185b4 |
0.1.2 | 0.1.2 | ✅ ok |
observed |
0.25.0 | d170a41 |
0.26.0 | 0.25.1 | |
observed_macros |
0.24.0 | 7918922 |
0.26.0 | — | |
observed_macros_impl |
0.24.0 | 6ac5bdc |
0.26.0 | 0.24.1 | ✅ ok |
observed_utils |
0.2.0 | d170a41 |
0.3.0 | 0.2.1 | |
ohno |
0.5.0 | d170a41 |
0.5.1 | 0.5.1 | ✅ ok |
ohno_macros |
0.5.0 | d170a41 |
0.5.1 | — | |
ohno_macros_impl |
0.5.1 | d170a41 |
0.5.2 | 0.5.2 | ✅ ok |
plurality |
0.2.2 | f79f1e8 |
0.2.3 | 0.2.3 | ✅ ok |
recoverable |
0.2.0 | 7c185b4 |
0.2.1 | 0.2.1 | ✅ ok |
rest_over_grpc |
0.2.0 | b650922 |
0.2.1 | 0.2.1 | ✅ ok |
routerama |
0.1.0 | 1feffd7 |
0.1.1 | 0.1.1 | ✅ ok |
routerama_build |
0.1.0 | 1feffd7 |
0.1.1 | 0.1.1 | ✅ ok |
routerama_macros |
0.1.0 | 1feffd7 |
0.1.1 | — | |
seatbelt |
0.8.0 | d170a41 |
0.9.0 | 0.8.1 | |
seatbelt_http |
0.8.0 | d170a41 |
0.9.0 | 0.8.1 | |
templated_uri |
0.5.0 | d170a41 |
0.6.0 | 0.5.1 | |
templated_uri_macros |
0.5.0 | d170a41 |
0.5.1 | — | |
templated_uri_macros_impl |
0.5.0 | d170a41 |
0.5.1 | 0.5.1 | ✅ ok |
thread_aware |
0.11.0 | d170a41 |
0.12.0 | 0.11.1 | |
thread_aware_core |
0.1.0 | 7fc5cd5 |
0.1.1 | 0.1.1 | ✅ ok |
thread_aware_macros |
0.11.0 | d170a41 |
0.12.0 | — | |
thread_aware_macros_impl |
0.11.0 | d170a41 |
0.12.0 | 0.11.1 | ✅ ok |
tick |
0.6.0 | d170a41 |
0.7.0 | 0.6.1 | |
uniflight |
0.5.0 | d170a41 |
0.6.0 | 0.5.1 |
⚠️ anyspawn — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `thread_aware` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ anyspawn_azure — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `anyspawn, tick` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ arty — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `tick` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ arty_executor — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `tick` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ bytesbuf — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `thread_aware` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ bytesbuf_io — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `bytesbuf` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ cachet — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `anyspawn, bytesbuf, cachet_memory, tick, uniflight` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ cachet_memory — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `thread_aware` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ data_privacy — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `data_privacy_macros` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ data_privacy_macros — manual proc-macro review detail
`data_privacy_macros` is a proc-macro-only crate. cargo-semver-checks intentionally skips proc-macro targets because they have no supported library API surface. Review exported macro names, accepted input syntax, diagnostics, and generated output manually; build and test results do not establish public API SemVer compatibility.
⚠️ fetch — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `anyspawn, bytesbuf, data_privacy, fetch_hyper, fundle, http_extensions, seatbelt, seatbelt_http, templated_uri, thread_aware, tick` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ fetch_azure — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `bytesbuf, fetch` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ fetch_hyper — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `anyspawn, bytesbuf, http_extensions, seatbelt, templated_uri, tick` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ fetch_winhttp — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `fetch_winhttp_impl` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ fetch_winhttp_impl — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `bytesbuf, bytesbuf_io, fetch, http_extensions, observed, thread_aware, tick` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ fundle — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `fundle_macros` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ fundle_macros — manual proc-macro review detail
`fundle_macros` is a proc-macro-only crate. cargo-semver-checks intentionally skips proc-macro targets because they have no supported library API surface. Review exported macro names, accepted input syntax, diagnostics, and generated output manually; build and test results do not establish public API SemVer compatibility.
⚠️ http_extensions — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `bytesbuf, templated_uri, thread_aware, tick` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ multitude — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `bytesbuf` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ multitude_macros — manual proc-macro review detail
`multitude_macros` is a proc-macro-only crate. cargo-semver-checks intentionally skips proc-macro targets because they have no supported library API surface. Review exported macro names, accepted input syntax, diagnostics, and generated output manually; build and test results do not establish public API SemVer compatibility.
⚠️ observed — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `data_privacy, observed_macros, thread_aware, tick` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ observed_macros — manual proc-macro review detail
`observed_macros` is a proc-macro-only crate. cargo-semver-checks intentionally skips proc-macro targets because they have no supported library API surface. Review exported macro names, accepted input syntax, diagnostics, and generated output manually; build and test results do not establish public API SemVer compatibility.
⚠️ observed_utils — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `data_privacy, observed` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ ohno_macros — manual proc-macro review detail
`ohno_macros` is a proc-macro-only crate. cargo-semver-checks intentionally skips proc-macro targets because they have no supported library API surface. Review exported macro names, accepted input syntax, diagnostics, and generated output manually; build and test results do not establish public API SemVer compatibility.
⚠️ routerama_macros — manual proc-macro review detail
`routerama_macros` is a proc-macro-only crate. cargo-semver-checks intentionally skips proc-macro targets because they have no supported library API surface. Review exported macro names, accepted input syntax, diagnostics, and generated output manually; build and test results do not establish public API SemVer compatibility.
⚠️ seatbelt — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `thread_aware, tick` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ seatbelt_http — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `http_extensions, seatbelt, templated_uri, tick` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ templated_uri — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `data_privacy` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ templated_uri_macros — manual proc-macro review detail
`templated_uri_macros` is a proc-macro-only crate. cargo-semver-checks intentionally skips proc-macro targets because they have no supported library API surface. Review exported macro names, accepted input syntax, diagnostics, and generated output manually; build and test results do not establish public API SemVer compatibility.
⚠️ thread_aware — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `thread_aware_macros` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ thread_aware_macros — manual proc-macro review detail
`thread_aware_macros` is a proc-macro-only crate. cargo-semver-checks intentionally skips proc-macro targets because they have no supported library API surface. Review exported macro names, accepted input syntax, diagnostics, and generated output manually; build and test results do not establish public API SemVer compatibility.
⚠️ tick — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `thread_aware` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
⚠️ uniflight — manual proc-macro propagation review detail
Manual review is also required because direct dependency release(s) `thread_aware` were manually reviewed as breaking in the proc-macro compatibility chain. cargo-semver-checks still ran for this ordinary library when possible, but cannot prove whether the procedural macro contract is re-exported or otherwise exposed. If this crate's release is breaking, review continues to its direct published consumers; otherwise propagation stops here.
Proc-macro API compatibility must be reviewed manually; successful builds and tests do not establish SemVer compatibility. This check is informational and does not block the merge.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #739 +/- ##
=======================================
Coverage 100.0% 100.0%
=======================================
Files 583 583
Lines 62930 62930
=======================================
Hits 62930 62930
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Address PR #739 review feedback: describe shared macro test-helper adoption accurately, document public Syn type upgrades, and classify thread_aware_core 0.1.1 as compatible.
There was a problem hiding this comment.
🔵 Needs a closer look
Some release notes appear misleading (e.g., patch releases described as “initial release” / section structure issues), which should be corrected before publishing.
Review details
Suppressed comments (4)
Previously missed (4) — in code that hasn't changed since the last review.
crates/http_path_template/CHANGELOG.md:10
- This 0.2.1 entry describes the “Initial release” of
http_path_templateand introduces its core API surface, but this PR is bumping the crate from 0.2.0 → 0.2.1. That wording makes the 0.2.1 release notes misleading; consider restoring/moving the initial-release bullets under a 0.2.0 section and leaving 0.2.1 to cover only the delta since 0.2.0.
crates/observed_macros/CHANGELOG.md:15 - The “### Added” section claims this is the “Initial release” of
observed_macros, but this PR is bumping the crate from 0.24.0 → 0.25.0. Rewording this bullet to describe the crate’s role (and the impl split) avoids implying first publication in 0.25.0.
crates/observed_macros_impl/CHANGELOG.md:10 - This entry says “Initial release of
observed_macros_impl”, but the crate version is being bumped from 0.24.0 → 0.25.0 in this PR. Rewording avoids implying first publication in 0.25.0 while still explaining the shim/impl split.
crates/thread_aware_core/CHANGELOG.md:18 - The “🔄 Continuous Integration” entry is currently still inside the “### Fixed” section (because it’s a list item, not a heading), which misclassifies this change under “Fixed”. Make CI its own heading to keep the changelog’s section structure accurate.
- Files reviewed: 146/147 changed files
- Comments generated: 0 new
- Review effort level: Lite
Address maintainer feedback on PR #739: align observed to 0.26, fundle to 0.4, and data-privacy to 0.13. Keep data_privacy_core at 0.1.2 and propagate exposed data-privacy types to templated_uri 0.6.0. Remove CI-only release entries and correct initial-release notes. Validate the 54-package graph, workspace Clippy, formatting, README generation, and 936 selected tests.
|
🤖 Updated in 160aa2a: all eight maintainer comments are addressed. The additional bot findings are also corrected: http_path_template initial API notes are under 0.2.0, observed macro notes describe their role/split without claiming first publication, and the misplaced thread_aware_core CI entry was removed. Local validation passed: 936 selected tests, workspace Clippy/check, formatting, README generation, and the 54-package version/dependency audit. Coverage follow-up: Windows Anvil coverage passed at 1492764 (job 101821357543), then rallocator fell to 99.9% after b6cb206 changed only three changelogs. The new push reruns CI; no allocator code or coverage threshold was changed. Exact missed lines remain undiagnosed, so a repeated failure still needs investigation before merge. |
There was a problem hiding this comment.
🟡 Changes recommended
Several changelog entries introduce formatting/information issues (empty entries and inconsistent section structure) that should be corrected before publishing.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
Suppressed comments (1)
crates/multitude_macros_impl/CHANGELOG.md:4
- This changelog entry is currently just a version header with no notes. If this release is intentionally a no-op/version-alignment bump, it’s still helpful to record that (e.g., a short “technical release” maintenance note) so consumers aren’t left guessing what changed.
- Files reviewed: 143/144 changed files
- Comments generated: 3
- Review effort level: Lite
| backtrace fallback. The parser API and behavior are unchanged. | ||
|
|
||
| ## [0.2.0] | ||
|
|
| ## [0.2.1] - 2026-09-07 | ||
|
|
||
| ## [0.2.0] - 2026-08-09 |
There was a problem hiding this comment.
🤖 Adding the cause: recoverable 0.2.1 is empty because the crate has no releasable change. The only commit touching it since recoverable-v0.2.0 is #728, and it modified only crates/recoverable/README.md (the generated doc2readme blob) - one of the CI-only PRs deliberately stripped from these release notes.
crates/plurality/CHANGELOG.md:3 and crates/multitude_macros_impl/CHANGELOG.md:3 are the same case. Rather than filling the entry, the option consistent with the data_privacy_core decision is to drop these three crates from the release.
| ### Breaking | ||
|
|
||
| - Public APIs now use `Sensitive` from `data_privacy 0.13.0`, matching the | ||
| coordinated data-privacy release line. | ||
|
|
||
| - 🔧 Maintenance | ||
|
|
||
| - Now requires `0.13.0` of `data_privacy` | ||
| - Now requires `0.5.1` of `ohno` | ||
| - Now requires `0.5.1` of `templated_uri_macros` |
There was a problem hiding this comment.
🤖 This is systemic rather than specific to templated_uri. The generated emoji category blocks are appended inside the preceding hand-written ### section in other entries too:
crates/rest_over_grpc/CHANGELOG.md:10-26-- 🔧 Maintenance,- 🐛 Bug Fixesand- ✔️ Tasksall sit under### Fixed. It also duplicates a change: the nesting-depth fix is described in prose at lines 7-8 and again asbound query field path nesting depth (#729)at line 19.crates/observed_macros_impl/CHANGELOG.md:11-20-- 🐛 Bug Fixessits under### Breaking, so fix(observed_macros): reject mutable-reference event fields #730 is documented once as a breaking change and again as a bug fix.
Only observed and rest_over_grpc mixed both styles before this PR, so most of this is newly introduced.
| through `&self` when the event is visited, so only shared references work. | ||
| - reject mutable-reference event fields ([#730](https://github.com/microsoft/oxidizer/pull/730)) | ||
|
|
||
| All notable changes to this project are documented here. |
There was a problem hiding this comment.
🤖 The Keep a Changelog preamble is no longer at the top of the file. The new release section was inserted between # Changelog and the preamble, so the boilerplate now renders as trailing content of the 0.26.0 release notes.
Six changelogs in this release are affected (line of the displaced preamble at HEAD):
crates/observed/CHANGELOG.md:40crates/observed_macros/CHANGELOG.md:17crates/observed_macros_impl/CHANGELOG.md:22crates/observed_utils/CHANGELOG.md:10crates/plurality/CHANGELOG.md:5crates/rest_over_grpc/CHANGELOG.md:28
On efd8178f all six had the preamble at lines 3-6, above the first ## [ heading, so this is a regression introduced here and it ships inside the published crates.
The trigger is in the release tooling, scripts/lib/release-flow.ps1:1402:
$headerPattern = '^# Changelog\s*\r?\n(\r?\n)*'
...
$insertPosition = $headerMatch.Index + $headerMatch.LengthThe insertion point is anchored immediately after # Changelog plus blank lines, which is before any preamble text. http_path_template escaped only because its entry was written by hand.
Please restore the preamble above the first version heading in these six files. Anchoring the insertion before the first ## heading would stop this recurring.
|
|
||
| - 🐛 Bug Fixes | ||
|
|
||
| - exclude non-source artifacts from published crates via include allowlist ([#526](https://github.com/microsoft/oxidizer/pull/526)) |
There was a problem hiding this comment.
🤖 #526 is re-listed under 0.13.0, but it already shipped and is documented in the released ## [0.10.3] - 2026-06-26 entry of this same file (line 33). The same duplication exists in crates/data_privacy_macros_impl/CHANGELOG.md (0.13.0 at line 16, 0.10.3 at line 42). Both 0.13.0 lines were added by this PR.
A scan of all 54 released crates found these two as the only cases where a PR number appears under both the new version and an older released version.
The likely trigger is the changelog range being computed from the last git tag rather than the last released version. The highest tags are data_privacy_macros-v0.10.2 and data_privacy_macros_impl-v0.10.2, while both manifests were already at 0.10.3 on main, so commits in the 0.10.2 to 0.10.3 window get swept in a second time.
Please drop the #526 bullet from both 0.13.0 entries.
| @@ -1,5 +1,7 @@ | |||
| # Changelog | |||
|
|
|||
| ## [0.2.3] - 2026-09-07 | |||
There was a problem hiding this comment.
🤖 plurality 0.2.3 has no releasable change. The only commit touching this crate since plurality-v0.2.2 is #728, and it modified only crates/plurality/README.md (the generated __cargo_doc2readme_dependencies_info blob and docs.rs links). No source, manifest, or dependency change. The empty release entry is the symptom.
crates/multitude_macros_impl/CHANGELOG.md:3 is the same case. Its only commit since multitude_macros_impl-v0.1.1 is #706, which added [package.metadata.anvil.miri] exclude = true to the manifest and nothing else. Its changelog is a new file containing just the heading.
In both cases the sole change came from the CI-only PRs that were deliberately stripped from the release notes, so nothing remains to document. This matches data_privacy_core, which was dropped from the release for having no crate-relevant change.
Suggest dropping plurality and multitude_macros_impl from the release set. multitude_macros 0.1.2 then falls away as well: it has zero commits since multitude_macros-v0.1.1 and is released only as a cascade of multitude_macros_impl.
|
|
||
| - ✨ Features | ||
|
|
||
| - add REST transcoding for gRPC services ([#600](https://github.com/microsoft/oxidizer/pull/600)) |
There was a problem hiding this comment.
🤖 Pato''s Pull Request Agent: The ✨ Features → add REST transcoding for gRPC services ([#600]) bullet misattributes a rest_over_grpc feature to crates that never received it. Paginated file list of #600 shows it touched only the generated README.md (doc2readme blob) of these crates — no source or manifest:
crates/data_privacy_macros/CHANGELOG.md(0.13.0)crates/data_privacy_macros_impl/CHANGELOG.md(0.13.0, this line)crates/routerama/CHANGELOG.md(0.1.1)crates/routerama_build/CHANGELOG.md(0.1.1)crates/routerama_macros/CHANGELOG.md(0.1.1)
A data-privacy macro crate did not "add REST transcoding for gRPC services". This is the same tag-range-sweep root cause diagnosed for the #526 duplication, but a different symptom: a substantive-looking feature bullet generated from a #600 change that was purely a generated-README refresh — exactly the CI-only/generated-noise class already stripped elsewhere (#706/#728, plurality, recoverable, data_privacy_core). Please drop the #600 feature bullet from these five entries (and re-audit the other swept-in bullets, e.g. #531/#534/#527, against each crate''s real diff).
| - ✨ Features | ||
|
|
||
| - add REST transcoding for gRPC services ([#600](https://github.com/microsoft/oxidizer/pull/600)) | ||
| - support type erasure of pooled handles to unsized types ([#585](https://github.com/microsoft/oxidizer/pull/585)) |
There was a problem hiding this comment.
🤖 Pato's Pull Request Agent: This ✨ Features → support type erasure of pooled handles to unsized types ([#585]) bullet is misattributed. #585 is a multitude/pooled-handle feature; its only touch to this crate was a cosmetic reflow of data_privacy_macros_impl/Cargo.toml — the allowed_external_types array was collapsed from multi-line to a single line (no source, no dependency, no behavior change). A data-privacy macro-impl crate did not "support type erasure of pooled handles to unsized types".
This is the same tag-range-sweep root cause as the #600 misattribution and #526 duplication already flagged, but it is the most misleading symptom because #585 reads as a substantive feature and ships inside the published crate. It is a distinct bullet from the #600 set — please drop the #585 feature bullet from this 0.13.0 entry as well.
Summary
Prepare 54 coordinated crate releases: 32 breaking-version transitions and 22 compatible increments. Some transitions intentionally align crate-family release lines at the maintainer's request, rather than representing additional implementation breaks. Update manifests, Cargo.lock, changelogs, and generated READMEs; no Rust implementation changes.
thread_aware 0.12.0and affected consumers forthread_aware_coreadoption; keepthread_aware_core 0.1.1as a compatible addition.rest_over_grpc 0.2.1, including the query-field nesting-depth fix from fix(rest_over_grpc): bound query field path nesting depth #729.observed,observed_macros, andobserved_macros_implat0.26.0.fundle,fundle_macros, andfundle_macros_implat0.4.0.data_privacy,data_privacy_macros, anddata_privacy_macros_implat0.13.0. Excludedata_privacy_corefrom this release and retain0.1.2.templated_uri 0.6.0because its public API exposesdata_privacy::Sensitivefrom the new compatibility line.Version Review
The initial review compared 46 ordinary libraries against previous version-bump commits with
cargo semver-checks --all-features --release-type patch. Separately reviewed public dependency type identity and procedural macro behavior:ThreadAwaremigrations require breaking versions even when rustdoc comparison reports compatibility.data_privacy_macros_implandfundle_macros_implexpose Syn types and moved from Syn 2 to Syn 3.dead_codewarning is an error only when denied; this family remains patch-versioned with the warning-policy caveat documented.After applying the maintainer's alignment requests, audited all 54 targets, latest changelog headings and dependency notes, locked workspace requirements, and published dependent closure. No missing published dependents or stale references were found.
data_privacy_corehas no diff against main.Validation
cargo check --all-featuresandjust clippywith all features and targets.just readme, whitespace validation, and editor diagnostics.libclang.rallocatorat 99.9% against 100%. The same Windows job passed at1492764b; the interveningb6cb206cchanged only three changelogs. This supports a rerun, but the exact uncovered lines have not been diagnosed. No coverage threshold or allocator code was changed.Publication
This PR prepares the release only. Do not merge until required checks and release review are complete. No crates have been published or yanked as part of this work.