vibeview.codenames

Release codename catalogue.

Every vibe-view minor release carries a “Person’s Animal” codename, the same form the vibe-qc and vibe-queue series use, so the three products read as one family. Each product draws from its own pool of people, so no name is ever claimed twice; vibe-view’s pool is visualization, computer graphics and crystallographic imaging. See docs/codenames.md for the policy and the pool, and docs/release_process.md for where in a cut the entry is added.

This module is the single source of truth. Four surfaces read it:

  • vibe-view --version (vibeview.cli)

  • the browser viewer’s About box (vibeview.app)

  • the Electron desktop About box, via the launcher handshake config (electron/main.js reads CONFIG.codename)

  • the documentation site’s {{codename}} substitution (docs/conf.py, which loads this file standalone – it must therefore keep importing nothing beyond the standard library)

Before this module existed the string was pasted into all four by hand, which is a drift the test suite could not see. tests/test_release_codenames.py now checks that every surface agrees with the catalogue.

Programmatic API

codename_for_version(version)

Resolve a version string to its codename, or None.

codename_for_current()

Convenience: the codename of the running vibeview.__version__.

version_label()

The "2.15.2 -- Person's Animal" string the user-facing surfaces print.

Functions

codename_for_current()

Return the codename of the running vibe-view, or None.

codename_for_version(version)

Return the codename for a vibe-view release version, or None.

version_label([version])

Format the version string the user-facing surfaces print.

vibeview.codenames.codename_for_current()[source]

Return the codename of the running vibe-view, or None.

Imported lazily so this module stays importable with nothing but the standard library – docs/conf.py loads it by path, outside the package, in a container where vibeview is not installed.

Return type:

str | None

vibeview.codenames.codename_for_version(version)[source]

Return the codename for a vibe-view release version, or None.

Resolution order:

  1. Strip any PEP-440 .devN / aN / bN / rcN suffix and local version label, so a dev build inherits the codename of the release it leads up to.

  2. Direct lookup of the resulting X.Y.Z in RELEASE_CODENAMES.

  3. Fall back to the parent minor, f"{X}.{Y}.0", so patch releases inherit without needing an entry of their own.

  4. None when no codename is registered for that minor.

Examples

>>> codename_for_version("2.15.0")
"Roothaan's Roadrunner"
>>> codename_for_version("2.15.2")          # patch inherits the minor
"Roothaan's Roadrunner"
>>> codename_for_version("2.15.0.dev1")     # dev inherits the release
"Roothaan's Roadrunner"
>>> codename_for_version("99.99.99") is None
True
Parameters:

version (str)

Return type:

str | None

vibeview.codenames.version_label(version=None)[source]

Format the version string the user-facing surfaces print.

"2.15.2 Roothaan's Roadrunner" when a codename is registered, and the bare version when one is not, so an unnamed dev line never prints a dangling em dash.

Parameters:

version (str | None)

Return type:

str