Repository navigation
DID-10140: [VER-PY] sdk-python: API changes release as minor versions, the shared breaking-change detection, Authentication spec synced - #23
Merged
Conversation
…, the shared breaking-change detection, Authentication spec synced
…, the shared breaking-change detection, Authentication spec synced
…, the shared breaking-change detection, Authentication spec synced
…, the shared breaking-change detection, Authentication spec synced
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.
Problem
Every spec sync was committed as
chore(spec), even when the API changed in ways that break typed code. So the 2026-11-04 change shipped as 1.0.2/1.1.0, and the breaking changes PR #14 listed never reached the release notes. The detector also used its own list instead of DESIGN.md 3.1, andopenapi-authentication.jsonwas never synced.Solution
docs/DESIGN.md: the six shared edits, word for word (SHA-256403e3243…db52).codegen/spec_sync.py:feat(spec)when a caller can observe the change,chore(spec)for documentation only, never!. A oneOf/anyOf variant's title counts, because it names the generated type.date-time,dateandbinaryformats, a value that loses or gains its type (typedobject), and success statuses only one side has: an added status without a body makes the result nullable, and a removed status whose body no other status returns removes a variant of it.api(spec):commit per breaking change, no cap.spec-sync.ymltitles the pull request with that type and ends the body with aBEGIN_COMMIT_OVERRIDEblock.release-please-config.jsonmapsapito "API changes that can break typed code".openapi/authentication.jsonis synced, and a contract test holds the Authentication module to it.Merge as
ci:: here adocs:commit releases a patch.Verification
feat(spec)and the 14 listed changes (the issue says 15 but lists 14); 2026-11-06 giveschore(spec), "None detected".feat(recasing it, or a component title, stayschore); untypedSessionDecision.session_id, an added 204 on the decision endpoint and a removed AML monitoring 202 are each listed as breaking.test_authentication_contract.py); ruff, mypy, pyright clean.24dffae(run 42224903393): all 12 jobs pass (tests on Python 3.10 to 3.14, macOS and Windows, lint, type check, generated code, wheel, secret scan); the live smoke tests skip without a sandbox key.workflow_dispatchspec sync on this branch.