|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes are recorded here. This project follows semantic versioning, |
| 4 | +with one pre-1.0 qualification: a minor release may change generated Rust APIs |
| 5 | +when correcting output that was wrong or incomplete on the wire. |
| 6 | + |
| 7 | +## [Unreleased] |
| 8 | + |
| 9 | +### Added |
| 10 | + |
| 11 | +- Direct generation from a local OpenAPI document or bounded HTTPS URL: |
| 12 | + `openapi-to-rust generate <SOURCE>`. |
| 13 | +- `openapi-to-rust init <SOURCE>`, plus deterministic `--dry-run`, `--check`, |
| 14 | + `--quiet`, and `--json` generation modes. |
| 15 | +- Optional `[client].operations` selection and model pruning shared with the |
| 16 | + server operation scope. |
| 17 | +- `Default` for all-optional request models, required-field constructors, |
| 18 | + fluent optional setters, and opt-in operation builders. |
| 19 | +- A complete `REQUIRED_DEPS.toml` for the exact generated output. |
| 20 | +- `base64_url_unpadded` as a spec-wide `format: byte` strategy for RFC 7515 |
| 21 | + URL-safe, unpadded data. |
| 22 | +- Contributor, support, security, conduct, issue-form, and pull-request |
| 23 | + scaffolding, plus a docs.rs library overview and compile-checked example. |
| 24 | +- The public CLI as Cargo's default binary, so plain `cargo run -- ...` works |
| 25 | + even though feature-gated internal maintenance binaries are declared. |
| 26 | + |
| 27 | +### Fixed |
| 28 | + |
| 29 | +- README compatibility, corpus, and conformance claims; pull-request and |
| 30 | + scheduled full-corpus CI tiers; and release preflight checks. |
| 31 | +- Canonical `[generator.types]` configuration parsing, strict unknown-field |
| 32 | + rejection, config-relative paths, and actionable migration errors. |
| 33 | +- `cargo install --locked openapi-to-rust` packaging: only the public CLI is |
| 34 | + installed, packaged inputs are complete, and obsolete duplicate dependency |
| 35 | + versions were removed. |
| 36 | +- Server query extraction now mirrors generated client serialization for typed |
| 37 | + form, repeated-array, comma-delimited, and deep-object query parameters. |
| 38 | +- Generated client requests now support non-JSON bodies, optional bodies, |
| 39 | + typed headers, path encoding, and collision-safe operation signatures. |
| 40 | + |
| 41 | +## [0.6.0] - 2026-07-13 |
| 42 | + |
| 43 | +### Added |
| 44 | + |
| 45 | +- OpenAPI `style`/`explode`-aware client serialization for object and array |
| 46 | + query parameters, including form-exploded objects, comma-joined form values, |
| 47 | + deep-object parameters, and repeated arrays. |
| 48 | +- Shared-target full-corpus compile tooling in `scripts/spec-compile.sh`. |
| 49 | + |
| 50 | +### Changed |
| 51 | + |
| 52 | +- Regenerated client signatures use typed objects and arrays instead of opaque |
| 53 | + `Option<impl AsRef<str>>` arguments for the supported query styles. This is a |
| 54 | + source-breaking correction for regenerated pre-1.0 clients. |
| 55 | + |
| 56 | +## [0.5.3] - 2026-07-11 |
| 57 | + |
| 58 | +- Added working generated serde codecs for `time::Date` and `time::Time`. |
| 59 | + |
| 60 | +## [0.5.2] - 2026-07-11 |
| 61 | + |
| 62 | +- Honored integer and number formats for query and path parameters. |
| 63 | + |
| 64 | +## [0.5.1] - 2026-07-07 |
| 65 | + |
| 66 | +- Restricted the crates.io package to the source, manifest, README, and license. |
| 67 | + |
| 68 | +## [0.5.0] - 2026-07-07 |
| 69 | + |
| 70 | +### Added |
| 71 | + |
| 72 | +- Opt-in Axum server generation with operation selectors, per-tag traits, |
| 73 | + typed response enums, router factories, SSE response support, and model |
| 74 | + pruning. |
| 75 | +- OpenAPI 3.1 modeling and experimental parsing for selected OpenAPI 3.2 |
| 76 | + fields and methods. |
| 77 | +- Typed scalar strategies, typed `additionalProperties`, operation-level typed |
| 78 | + errors, strict extension parsing, webhook ingestion, and SSE auto-detection. |
| 79 | +- End-to-end OpenAI Responses and Anthropic Messages server examples. |
| 80 | + |
| 81 | +### Fixed |
| 82 | + |
| 83 | +- Numerous real-spec generation failures involving operation identifiers, |
| 84 | + signed enum values, recursive unions, parameter collisions, optional request |
| 85 | + bodies, range response codes, and path-segment encoding. |
| 86 | + |
| 87 | +[Unreleased]: https://github.com/gpu-cli/openapi-to-rust/compare/v0.6.0...HEAD |
| 88 | +[0.6.0]: https://github.com/gpu-cli/openapi-to-rust/releases/tag/v0.6.0 |
| 89 | +[0.5.3]: https://github.com/gpu-cli/openapi-to-rust/compare/v0.5.2...v0.5.3 |
| 90 | +[0.5.2]: https://github.com/gpu-cli/openapi-to-rust/compare/v0.5.1...v0.5.2 |
| 91 | +[0.5.1]: https://github.com/gpu-cli/openapi-to-rust/compare/v0.5.0...v0.5.1 |
| 92 | +[0.5.0]: https://github.com/gpu-cli/openapi-to-rust/tree/v0.5.0 |
0 commit comments