[nexus] Clean up API versioning: chain conversions, fix module docs#9698
[nexus] Clean up API versioning: chain conversions, fix module docs#9698zeeshanlakhani wants to merge 1 commit intomainfrom
Conversation
a8b0bea to
b129a0e
Compare
This PR refactors a set of versioned type conversions to properly follow the [API versioning guide's](https://github.com/oxidecomputer/dropshot-api-manager/blob/main/guides/new-version.md) recommendations, including chaining through consecutive versions, ordering conventions, and aligning types to correctly match the ranges and where they should be defined. Changes: - Chain InstanceCreate conversions: v2025122300 → v2026010300 → v2026010500 → params - Update endpoint handlers to delegate through the version chain - Add per-section validity docs for modules where types have different supersession versions - Remove empty v2026011501.rs after types moved to v2026010500
fd126ad to
7114c35
Compare
sunshowers
left a comment
There was a problem hiding this comment.
Thanks. The general direction looks good here. My concern is just merge conflicts with others, and the fact that when we convert the external API to RFD 619 (after the next release) we'll re-evaluate all of this anyway.
What do you think?
@sunshowers Yeah, I was trying to be consistent with the docs/guidelines :). I've been used to many upon many of merge conflicts with API changes already, but if the cut over to capture RFD 619 is happening soon, then maybe it's not necessary? I'm ok to close it too, up to you @sunshowers. |
This PR refactors a set of versioned type conversions to properly follow the API versioning guide's recommendations, including chaining through consecutive versions, ordering conventions, and aligning types to correctly match the ranges and where they should be defined.
Changes:
Removes v2026011501.rs: Moves
AddressSelectorandFloatingIpCreateto v2026010500.rs, where they were actually introduced (POOL_SELECTION_ENUMS, not AUDIT_LOG_CREDENTIAL_ID).Fixes conversion chains: Types now chain through consecutive versions:
Fromimplementations in v2026011600.rs for conversions from v2026010500 to next, latest versionsUpdates module docs: All version modules now use the correct format per the guide:
Endpoint chains: lib.rs endpoints correctly delegate through consecutive versions where types changed