Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
# Changelog

## Unreleased
## 0.17.6

- New `#[reflectapi(hidden)]` field attribute: the field stays in the schema (marked `"hidden": true`) and remains functional at runtime (e.g. header extraction by the axum adapter), but is excluded from generated clients, documentation, and OpenAPI specs. Not allowed on unnamed (tuple) fields, since removing a positional element would shift indices and break wire compatibility.
- Python codegen now emits nullable `Option<T>` fields as optional keys (`T | None = None`) in the per-variant models generated for structs with a flattened internally-tagged enum, matching the standalone-struct behavior. Previously such fields were required keys, so deserializing a valid payload that omitted the key (serde drops `None` values) raised `pydantic.ValidationError: Field required`. Doubled `str | None | None` annotations in the same paths are also fixed.
- Python codegen is now snapshot-tested by the same builder test samples as the other language backends.
- Python package codegen now emits sibling submodule imports in dependency order, so Python 3.14/Pydantic can import generated packages where one sibling model annotation references another sibling namespace.
- Rust codegen snapshot typechecking now handles macOS proc-macro library names instead of assuming Linux-style `.so` files.

Expand Down
8 changes: 4 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions reflectapi-cli/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "reflectapi-cli"
version = "0.17.5"
version = "0.17.6"
edition = "2021"
default-run = "reflectapi"

Expand All @@ -23,7 +23,7 @@ doc = false
workspace = true

[dependencies]
reflectapi = { path = "../reflectapi", version = "0.17.5", features = ["codegen"] }
reflectapi = { path = "../reflectapi", version = "0.17.6", features = ["codegen"] }
rouille = "3"

clap = { version = "4.5.3", features = ["derive"] }
Expand Down
4 changes: 2 additions & 2 deletions reflectapi-derive/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "reflectapi-derive"
version = "0.17.5"
version = "0.17.6"
edition = "2021"

license = "Apache-2.0"
Expand All @@ -22,7 +22,7 @@ workspace = true
proc-macro = true

[dependencies]
reflectapi-schema = { path = '../reflectapi-schema', version = "0.17.5" }
reflectapi-schema = { path = '../reflectapi-schema', version = "0.17.6" }

proc-macro2 = "1.0"
quote = "1.0"
Expand Down
2 changes: 1 addition & 1 deletion reflectapi-python-runtime/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "hatchling.build"

[project]
name = "reflectapi-runtime"
version = "0.17.5"
version = "0.17.6"
description = "Runtime library for ReflectAPI Python clients"
readme = "README.md"
requires-python = ">=3.12"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
)
from .types import BatchResult, ReflectapiEmpty, ReflectapiInfallible

__version__ = "0.17.5"
__version__ = "0.17.6"

__all__ = [
# Authentication
Expand Down
2 changes: 1 addition & 1 deletion reflectapi-schema/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "reflectapi-schema"
version = "0.17.5"
version = "0.17.6"
edition = "2021"

license = "Apache-2.0"
Expand Down
6 changes: 3 additions & 3 deletions reflectapi/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "reflectapi"
version = "0.17.5"
version = "0.17.6"
edition = "2021"

license = "Apache-2.0"
Expand All @@ -20,8 +20,8 @@ workspace = true

[dependencies]
# workspace dependencies
reflectapi-derive = { path = "../reflectapi-derive", version = "0.17.5" }
reflectapi-schema = { path = "../reflectapi-schema", version = "0.17.5" }
reflectapi-derive = { path = "../reflectapi-derive", version = "0.17.6" }
reflectapi-schema = { path = "../reflectapi-schema", version = "0.17.6" }

# mandatory 3rd party dependencies
serde = { version = "1.0.197", features = ["derive"] }
Expand Down
Loading