fix: make the 0.1.0 release publishable - #16
Merged
Conversation
Why: examples intentionally use Serde attributes without deriving Serde traits, but the docs never state that shape derives are independent. Users could otherwise expect SerializeShape to enable actual serialization or assume serde_shape hooks change runtime behavior.
Why: serde-shape depends on the exact matching derive version, so changing the two package versions without the workspace dependency requirements leaves Cargo unable to resolve the workspace. Update all four version declarations atomically so release checks exercise the artifacts that will actually be published.
Why: packaging the main crate separately asks crates.io for its exact derive version before a new release exists, so cargo x package fails at the first version bump. Let current Cargo package and verify both selected workspace crates through its temporary registry, which also removes the custom metadata, extraction, and patching workflow.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This is a deliberately narrow final 0.1.0 audit. It keeps only issues with a reproducible release failure or a concrete user-facing ambiguity.
serde_shapeattributes provide reflection metadata without implementing or changing Serde's runtime traitsserde_jsondependencyReproduced release failure
After changing the package versions to 0.1.0, the previous
cargo x package --lockedfailed before its custom verification logic ran:Packaging both selected workspace crates together succeeds while the version is unpublished. Cargo places the derive archive in its temporary registry and then verifies the main archive against that exact artifact.
Review order
Each commit is independently reviewable and contains a
Why:paragraph with the concrete failure or user cost.docs: separate reflection from Serde runtime deriveschore: stage the 0.1.0 package versionsfix: package unpublished workspace crates togetherDeliberate non-changes
The broader audit did not find evidence for changing the public graph model, adding another graph abstraction, expanding built-in coverage beyond Serde's implementations, or deleting existing behavior-boundary tests. Those changes would be speculative and increase the false-positive surface before 0.1.0.
I also did not add a separate README test crate or duplicate existing derive fixtures. The README examples compile as written, and the existing rustdoc, derive, integration, platform, MSRV, and
no_stdchecks already cover the relevant behavior boundaries.Validation
cargo x build --lockedcargo x testcargo x lintcargo x package --lockedagainst the unpublished 0.1.0 paircargo +1.85.0 x testcargo +1.85.0 check -p serde-shape --lib --no-default-features --target thumbv7em-none-eabihfcargo +1.85.0 check -p serde-shape-test-no-std --lib --target thumbv7em-none-eabihfcargo semver-checksaudit againstv0.0.1; the known breaking changes are already enumerated under the changelog'sBreaking changessection for the 0.0-to-0.1 transition