Complete adoption and accessibility hardening#32
Merged
Conversation
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
Completes the repository's adoption and accessibility hardening program.
[generator.types]configuration contract, strict validation, migration guidance, and config-relative paths;cargo install --locked openapi-to-rustinstall exactly one versioned CLI with a lean reqwest 0.12 dependency tree;REQUIRED_DEPS.tomlfragments for types, clients, SSE, retry/tracing, Axum servers, and typed scalars;init,--dry-run,--check,--quiet, JSON output, source provenance, and bounded remote fetching;Why
The generator had several adoption cliffs: documented configuration could be ignored, source installation exposed internal binaries and duplicate dependency stacks, generated projects required dependency guesswork, large request APIs were awkward to construct, server query handling could not decode client-emitted shapes, and the quickest path required a hand-written TOML file.
This change makes the source-install workflow reliable and keeps
cargo installas the primary Rust distribution path. It does not publish a crate release or add prebuilt binaries.Compatibility and developer impact
[generator.types]is canonical. Legacy top-level[types]remains a temporary alias; specifying both is rejected.[client]preserves generate-all behavior.Cargo.toml.ByteStrategy::Base64UrlUnpaddedsupersedes the conflicted implementation from feat(types): ByteStrategy::Base64UrlUnpadded for RFC 7515 alphabets #21.Closes #6.
Validation
cargo fmt --checkactionlintcargo clippy --all-features -- -D warningscargo test --all-featuresRUSTDOCFLAGS=-Dwarnings cargo doc --no-deps --all-featurescargo +1.88.0 check --all-targets --all-features--version, minimal generation, no reqwest 0.11/test-only dependency leakageFollow-ups
The intentionally bounded newcomer tasks remain separate as #29, #30, and #31. Broader discriminator and server-conformance trackers were audited and left open where acceptance criteria are not yet complete.