Skip to content

chore(release): prepare 54 coordinated crate releases - #739

Open
Zac Walker (ZacWalk) wants to merge 3 commits into
mainfrom
release/thread-aware-core-adoption
Open

chore(release): prepare 54 coordinated crate releases#739
Zac Walker (ZacWalk) wants to merge 3 commits into
mainfrom
release/thread-aware-core-adoption

Conversation

@ZacWalk

@ZacWalk Zac Walker (ZacWalk) commented Sep 7, 2026

Copy link
Copy Markdown
Member

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.

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:

  • Public ThreadAware migrations require breaking versions even when rustdoc comparison reports compatibility.
  • data_privacy_macros_impl and fundle_macros_impl expose Syn types and moved from Syn 2 to Syn 3.
  • An identical mutable-reference event input compiled with the old observed macro and was rejected by the new macro. Retain and document this breaking input restriction.
  • Ohno's paired consumer probes preserved constructors, formatting, and trait signatures. The new dead_code warning 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_core has no diff against main.

Validation

  • Passed after alignment: workspace cargo check --all-features and just clippy with all features and targets.
  • Passed after alignment: 936 selected unit/integration tests for data-privacy, fundle, observed, templated-uri, and REST-over-gRPC families and consumers.
  • Passed before alignment: 969 selected tests including thread-aware and ohno runtime/macro packages.
  • Passed: pinned formatting checks across all 72 workspace packages, just readme, whitespace validation, and editor diagnostics.
  • Spelling passed in CI on the preceding commit; the updated commit must pass it again. Local pinned Hunspell installation remains blocked by missing libclang.
  • Fresh CI is required. The preceding Windows Anvil coverage run reported rallocator at 99.9% against 100%. The same Windows job passed at 1492764b; the intervening b6cb206c changed only three changelogs. This supports a rerun, but the exact uncovered lines have not been diagnosed. No coverage threshold or allocator code was changed.
  • Review the informational SemVer report and documented manual macro decisions explicitly before merge.

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.

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.
Copilot AI lite review requested due to automatic review settings September 7, 2026 17:17

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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.md files.
  • Regenerate crate README.md files (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))

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Fixed in b6cb206. PR #686 replaces prettyplease with testing_aids in this crate; the release note now describes shared macro test-helper adoption. Also documented the actual breaking change: public helper results expose Syn 3 rather than Syn 2 error types.

Comment thread crates/fundle_macros_impl/CHANGELOG.md Outdated

- ♻️ Code Refactoring

- split the implementation into observed_macros_impl ([#686](https://github.com/microsoft/oxidizer/pull/686))

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Fixed in b6cb206. Verified the crate-specific diff in #686 and changed the note to shared macro test-helper adoption through testing_aids. Also documented the public Syn 2-to-3 error-type transition that justifies this breaking release.

Comment thread crates/thread_aware_core/CHANGELOG.md Outdated
Comment on lines +2 to +6
## [0.1.1] - 2026-09-07

- ⚠️ Breaking

- adopt thread_aware_core across workspace ([#721](https://github.com/microsoft/oxidizer/pull/721))

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 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.

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

⚠️ Manual proc-macro SemVer review required

cargo semver-checks intentionally does not analyse proc-macro-only targets. 33 of 54 publishing crate(s) require manual review either for their own procedural macro contract or because they directly consume a manually reviewed breaking release. Ordinary libraries retain their automated result, and review advances to the next dependency edge only when the current release is breaking.

Crate Baseline Baseline commit This PR Minimum required Status
anyspawn 0.8.0 d170a41 0.9.0 0.8.1 ⚠️ automated check ok; manual proc-macro chain review required
anyspawn_azure 0.3.0 d170a41 0.4.0 0.3.1 ⚠️ automated check ok; manual proc-macro chain review required
arty 0.2.0 efd8178 0.3.0 0.2.1 ⚠️ automated check ok; manual proc-macro chain review required
arty_executor 0.1.1 d170a41 0.1.2 0.1.2 ⚠️ automated check ok; manual proc-macro chain review required
bytesbuf 0.9.0 d170a41 0.10.0 0.9.1 ⚠️ automated check ok; manual proc-macro chain review required
bytesbuf_io 0.9.0 d170a41 0.10.0 0.9.1 ⚠️ automated check ok; manual proc-macro chain review required
cachet 0.13.0 d170a41 0.14.0 0.13.1 ⚠️ automated check ok; manual proc-macro chain review required
cachet_memory 0.7.0 d170a41 0.8.0 0.7.1 ⚠️ automated check ok; manual proc-macro chain review required
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 ⚠️ automated check ok; manual proc-macro chain review required
data_privacy_macros 0.10.3 542a32c 0.13.0 ⚠️ manual proc-macro review required
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 ⚠️ automated check ok; manual proc-macro chain review required
fetch_azure 0.6.1 356dc63 0.7.0 0.6.2 ⚠️ automated check ok; manual proc-macro chain review required
fetch_hyper 0.7.1 356dc63 0.8.0 0.7.2 ⚠️ automated check ok; manual proc-macro chain review required
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 ⚠️ automated check ok; manual proc-macro chain review required
fetch_winhttp_impl 0.1.1 5899abe 0.2.0 0.1.2 ⚠️ automated check ok; manual proc-macro chain review required
fundle 0.3.5 94229b8 0.4.0 0.3.6 ⚠️ automated check ok; manual proc-macro chain review required
fundle_macros 0.3.5 94229b8 0.4.0 ⚠️ manual proc-macro review required
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 ⚠️ automated check ok; manual proc-macro chain review required
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 ⚠️ automated check ok; manual proc-macro chain review required
multitude_macros 0.1.1 7c185b4 0.1.2 ⚠️ manual proc-macro review required
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 ⚠️ automated check ok; manual proc-macro chain review required
observed_macros 0.24.0 7918922 0.26.0 ⚠️ manual proc-macro review required
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 ⚠️ automated check ok; manual proc-macro chain review required
ohno 0.5.0 d170a41 0.5.1 0.5.1 ✅ ok
ohno_macros 0.5.0 d170a41 0.5.1 ⚠️ manual proc-macro review required
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 ⚠️ manual proc-macro review required
seatbelt 0.8.0 d170a41 0.9.0 0.8.1 ⚠️ automated check ok; manual proc-macro chain review required
seatbelt_http 0.8.0 d170a41 0.9.0 0.8.1 ⚠️ automated check ok; manual proc-macro chain review required
templated_uri 0.5.0 d170a41 0.6.0 0.5.1 ⚠️ automated check ok; manual proc-macro chain review required
templated_uri_macros 0.5.0 d170a41 0.5.1 ⚠️ manual proc-macro review required
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 ⚠️ automated check ok; manual proc-macro chain review required
thread_aware_core 0.1.0 7fc5cd5 0.1.1 0.1.1 ✅ ok
thread_aware_macros 0.11.0 d170a41 0.12.0 ⚠️ manual proc-macro review required
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 ⚠️ automated check ok; manual proc-macro chain review required
uniflight 0.5.0 d170a41 0.6.0 0.5.1 ⚠️ automated check ok; manual proc-macro chain review required
⚠️ 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.

View the check run

@codecov

codecov Bot commented Sep 7, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.0%. Comparing base (efd8178) to head (160aa2a).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #739   +/-   ##
=======================================
  Coverage   100.0%   100.0%           
=======================================
  Files         583      583           
  Lines       62930    62930           
=======================================
  Hits        62930    62930           
Flag Coverage Δ
linux 100.0% <ø> (ø)
linux-arm 100.0% <ø> (ø)
scheduled ?
windows 100.0% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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.
Copilot AI review requested due to automatic review settings September 7, 2026 18:38

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 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_template and 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

Comment thread crates/observed_macros_impl/CHANGELOG.md Outdated
Comment thread crates/observed_macros/Cargo.toml Outdated
Comment thread crates/fundle_macros/Cargo.toml Outdated
Comment thread crates/fundle/Cargo.toml Outdated
Comment thread crates/data_privacy_macros/Cargo.toml Outdated
Comment thread crates/data_privacy_core/CHANGELOG.md Outdated
Comment thread crates/data_privacy/Cargo.toml Outdated
Comment thread Cargo.toml Outdated
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.
Copilot AI review requested due to automatic review settings September 8, 2026 11:03
@ZacWalk Zac Walker (ZacWalk) changed the title chore(release): prepare 55 coordinated crate releases chore(release): prepare 54 coordinated crate releases Sep 8, 2026
@ZacWalk

Copy link
Copy Markdown
Member Author

🤖 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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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

Comment on lines +13 to 16
backtrace fallback. The parser API and behavior are unchanged.

## [0.2.0]

Comment on lines +3 to 5
## [0.2.1] - 2026-09-07

## [0.2.0] - 2026-08-09

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 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.

Comment on lines +5 to +14
### 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`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 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 Fixes and - ✔️ Tasks all sit under ### Fixed. It also duplicates a change: the nesting-depth fix is described in prose at lines 7-8 and again as bound query field path nesting depth (#729) at line 19.
  • crates/observed_macros_impl/CHANGELOG.md:11-20 - - 🐛 Bug Fixes sits 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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 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:40
  • crates/observed_macros/CHANGELOG.md:17
  • crates/observed_macros_impl/CHANGELOG.md:22
  • crates/observed_utils/CHANGELOG.md:10
  • crates/plurality/CHANGELOG.md:5
  • crates/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.Length

The 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))

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 #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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 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))

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 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))

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 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.

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.

5 participants