Versions
In addition to the product variants, the docs site also supports multiple versions of the documentation. The version selector is located at the top of the page, next to the variant selector. Versions and variants are independent of each other, with the version being “above” the variant in the URL hierarchy.
The URL for version v2 of the current page (the one you are one right now) in the Flyte variant is:
https://www.union.ai/docs/v2/flyte/community/contributing-docs/versions
while the URL for version v1 of the same page is:
https://www.union.ai/docs/v1/flyte/community/contributing-docs/versions
What a version contains (and what it does not)
A docs version is a snapshot of content — the pages, examples and generated API
reference as they stood against a given SDK release. The site’s look and
navigation (the theme, built from the shared unionai-docs-infra submodule) is
not part of the snapshot: every published version, however old, is always served
with the current site UI. This is deliberate — the content you are reading has a
version; the reading experience should always be the best available.
Two practical consequences for contributors:
- Theme or build-system changes never require a new docs version. They reach every published version automatically when the infra submodule pointer is bumped on the docs branch.
- Content changes reach
latestimmediately on merge, and reach the stable version at the next cut.
Lines are branches; versions are cuts
Each major line lives on its own long-lived branch in unionai/unionai-docs:
maincarries the current line, v2.v1carries the previous line. It is active, not frozen: new flytekit 1.x releases still produce new v1 versions.
Within a line, a version is a cut: an immutable snapshot of the content against an SDK
release, tagged vN.x.y.z. N.x.y is the SDK release the docs were built against, and z is a
docs patch counter for when a secondary component releases but the SDK triple has not moved.
Which URL serves what
| URL | Serves | Indexed |
|---|---|---|
/docs/latest |
the tip of main, rebuilt on every merge |
no |
/docs/v2 |
the newest v2 cut, the canonical surface | yes |
/docs/v2.x.y.z |
an older, superseded cut | no |
/docs/v1 |
the newest v1 cut | yes |
/docs/stable |
redirects to /docs/v2 |
n/a |
The newest cut is served once, at /docs/<line>. It only gets its own numbered URL when a
newer cut supersedes it, so there is never a duplicate copy of the same tree.
What this means when you contribute
- Your merged page appears on
/docs/latestimmediately, and on/docs/v2at the next cut. If you are checking whether a change is live, look at/docs/latestfirst. - Theme and build changes need no cut. They reach every version at once when the infra submodule pointer is bumped, as described above.
Cutting a version
A cut is one merge, and it is normally automatic. When the SDK releases, CI regenerates the
API reference and opens a draft pull request that bumps versions.toml. Merging that PR is the
cut: the build materializes the tag and rebuilds.
You can also start one by hand from the Actions tab, by running Regenerate API docs (when the SDK changed) or Cut a docs version (when only a secondary component moved). Both open a draft PR rather than publishing directly.
Nothing auto-merges. Every path ends in a pull request that a maintainer reviews.
Maintainer detail, including how many pinned versions are retained and how a retired pin gets its
redirect, lives in unionai-docs-infra/VERSIONING.md and CUTTING-A-DOCS-VERSION.md.