SDK versioning
The first package of each language gets your config's firstVersion. After that, each package's version is worked out from the last one, the registry's diff between their versions, and the names the SDK exports. The biggest bump that applies wins.
| What changed | Bump |
|---|---|
| A breaking change in the diff, or a changed operationId (a renamed method) | Major |
| An exported name is gone from the SDK | Major |
| Any other change in the diff, such as a new operation or a deprecation | Minor |
| A new exported name | Minor |
| No diff to compare with | Minor, compared by exported names only |
| Only a removed description, or nothing | Patch |
Breaking changes lists every kind of change the diff finds.
Below 1.0.0
As semver does for versions below 1.0.0, a major change moves the minor number, and anything else the patch: 0.3.2 becomes 0.4.0 or 0.3.3.
The same input, the same package
The same config and the same registry version give the same package and version again, so a re-run never moves the version.
Previews
A preview from the SDK panel is versioned so it can't be mistaken for a release: 0.0.0-preview.7 for TypeScript and 0.0.0.dev7 for Python, for registry version 7. A preview can be made from the sample document; a package to publish can't.
Where this comes from
app/sdk/_lib/version.tsapp/sdk/_lib/builds.tsapp/registry/_lib/diff.ts