Skip to content

Conversation

@iliana
Copy link
Contributor

@iliana iliana commented Oct 27, 2025

Part of #8922. Makes bootstrap-agent, installinator, nexus-internal, and repo-depot versioned such that any incompatible changes are flagged.

Instead of the usual instructions for creating a new version, a strategically-positioned comment which references #9290 tells developers not to create any new versions. This comment will be visible in diffs if any versions are added.

Note that this does not add the version policy to the Dropshot listeners yet, because in currently-deployed systems the version in the header is 0.0.1. I think this should work okay during an upgrade as long as the policy isn't in place on the server side. I'll have a second PR up to add the version policy shortly, and we should merge that after systems currently performing Nexus-driven updates (only dogfood, I think?) are updated after this lands.

@iliana iliana requested a review from davepacheco October 27, 2025 23:05
@iliana iliana added this to the 17 milestone Oct 28, 2025
Copy link
Collaborator

@davepacheco davepacheco left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd love @sunshowers's eyes on this as well to make sure I'm not missing something!

@iliana iliana requested a review from sunshowers October 28, 2025 17:20
@iliana iliana removed this from the 17 milestone Oct 28, 2025
@iliana
Copy link
Contributor Author

iliana commented Oct 28, 2025

  1. I don't think this is an R17 blocker so I've removed the milestone.
  2. I'll also update this to add the version policy to the APIs, and fix the related tests. I think I know enough now to be certain that clients sending the 0.0.1 header will still hit the 1.0.0 APIs.
  3. We discussed having the clients point to the hashed, versioned OpenAPI document instead of the latest symlink. I'll do that as well.

@iliana iliana force-pushed the iliana/version-the-rest branch from d5e904c to 3cef676 Compare October 29, 2025 21:14
sunshowers added a commit that referenced this pull request Oct 29, 2025
Before marking this API client-side-versioned (#9295), let's ensure
forward compatibility for installinator by allowing us to send more
generic data over the wire. This will allow new versions of
installinator to work transparently against old versions of wicketd.

Wicketd does need access to structured installinator data in one spot,
and we can deserialize just that part of metadata. All other data
involved is just for internal bookkeeping within a service (doesn't have
to transcend version boundaries), and for human consumption in the UI.

There are no changes to the wire protocol, just to how it gets
deserialized on the server.
@iliana iliana changed the title [1/2] make client-side-versioned APIs versioned make client-side-versioned APIs versioned Oct 29, 2025
@iliana iliana merged commit 2ccff45 into main Oct 30, 2025
18 checks passed
@iliana iliana deleted the iliana/version-the-rest branch October 30, 2025 19:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants