Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Travertine tries to solve the problem of generating price tables fast enough for our xhg2 project. This Rust runtime is not a replacement of the Python runtime because there are still types of procedures which are not implemented in Rust.

Preparing a release

Releases are cut from main and published by the CI: pushing a tag whose name is exactly the version builds the manylinux wheels (CPython 3.10 to 3.14) and uploads them to PyPI. Nothing is ever published from a developer’s machine.

  1. Make sure main is green: make lint, make typecheck, make test and make docs/build.

  2. Complete the changelog in docs/source/history.rst. The topmost section is headed Unreleased. Release X.Y.0 while the version is being prepared; on the final release replace Unreleased with the date, as in 2025-08-23. Release 0.49.0. Pre-releases leave the heading alone.

  3. Bump the version:

    • in pyproject.toml always, using the PEP 440 spelling (0.50.0a1, 0.50.0rc1, 0.50.0); and

    • in Cargo.toml only on the final release. Cargo has no spelling for our pre-release versions, so the crate keeps the previous number until then.

    Refresh the locks afterwards so that their travertine entries match: make lock for uv.lock, and cargo check (or make test-rust) for Cargo.lock.

  4. Commit those files alone, with the message Pre-release X.Y.ZaN or Release X.Y.Z.

  5. Tag that commit with an annotated tag named exactly as the version, with no v prefix:

    git tag -a 0.50.0a1 -m 'Pre-release 0.50.0a1'
  6. Push the commit and the tag to the gitlab remote (gitlab.merchise.org):

    git push gitlab main
    git push gitlab 0.50.0a1

    The tag’s pipeline runs build wheels and then publish Python extensions in PyPI, which uploads them with uv publish.

The next change to land after a release is the one that opens the new Unreleased. Release X.Y.0 section in the changelog.

CI variables needed to publish the wheels

The publish Python extensions in PyPI job only knows about two variables, which it hands to uv publish as UV_PUBLISH_USERNAME and UV_PUBLISH_PASSWORD:

PYPI_USERNAME

The literal __token__: PyPI no longer accepts a password, only API tokens, and the token is passed as the password of that user.

PYPI_PASSWORD

The PyPI API token itself, pypi- prefix included. Mask it.

Both are defined in the project settings of gitlab.merchise.org (Settings > CI/CD > Variables); the job runs with GIT_STRATEGY: none, so nothing else in the repository can supply them. Check them before tagging:

  • The token must not have expired – PyPI tokens do expire, and the failure only shows up at the end of the pipeline, once the wheels are already built.

  • If either variable is protected, the tag must be protected as well (Settings > Repository > Protected tags), otherwise the variable is simply empty in the tag’s pipeline and the upload fails with a 403.

  • If either variable is scoped to an environment, the scope must be pypi, which is the environment the publish job declares.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

travertine-0.50.0a3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

travertine-0.50.0a3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

travertine-0.50.0a3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

travertine-0.50.0a3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

travertine-0.50.0a3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

File details

Details for the file travertine-0.50.0a3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: travertine-0.50.0a3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 9.7 MB
  • Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for travertine-0.50.0a3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a55d16c991f6a80e8e2799233258bb4ffab780436fba830c2557670dade2fc58
MD5 5de31968a64c9c918eecd5714b17ee96
BLAKE2b-256 7a86c5b15324c2e636e93f5150871796906a9ef476cbc8fbe4bda9bdd1cc57ac

See more details on using hashes here.

File details

Details for the file travertine-0.50.0a3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: travertine-0.50.0a3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 9.7 MB
  • Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for travertine-0.50.0a3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 70e230d10aad7b6e1ba73f1eb187e08cfe55631c7bc4e38e41faab40bff2dea9
MD5 195d49c3dc85b20a84d21ff8556ae50b
BLAKE2b-256 8ce01d4857664c72e1c119a0e46ac082cd9df5eabd4eeaea5d8fd5ba4185438c

See more details on using hashes here.

File details

Details for the file travertine-0.50.0a3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: travertine-0.50.0a3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 9.7 MB
  • Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for travertine-0.50.0a3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 065a57a5e3f28a0aaa1d4cfd2754c6887341e6c18418286615bc62190145baa8
MD5 bdd656f3d2f47b72912879f8e3365177
BLAKE2b-256 5d29174a1a140f1afb9f6c1492bf6a013a1ed6471dc8a07e6f5741d4d483cc9d

See more details on using hashes here.

File details

Details for the file travertine-0.50.0a3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: travertine-0.50.0a3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 9.8 MB
  • Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for travertine-0.50.0a3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ddac4b8f366b0c8c42988fe8f2c89fc01847f7d86c644b04819254a268b4fdb4
MD5 be94b9618fb8c63ab513b446ff2ef753
BLAKE2b-256 f9d3a3437c4e013ed74c4ff177778b53ca901b92cb7db980f0a252e5fd3caac2

See more details on using hashes here.

File details

Details for the file travertine-0.50.0a3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: travertine-0.50.0a3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 9.8 MB
  • Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for travertine-0.50.0a3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0ad9ccbf07b89a9e086b7423e379c263889ebeb662aebeabf031b05b21ff089c
MD5 23370f6af8785ce8cf873b4b756681ff
BLAKE2b-256 c4928e4451926ea6365c46bb67f432543d64abea09bf34ad4dc2adcf722828bc

See more details on using hashes here.

Release history Release notifications | RSS feed

0.50.0.post1

5 files

0.50.0

5 files

This release

0.50.0a3 This release

5 files

0.49.0

7 files

0.48.0

5 files

0.47.0

5 files

0.46.0

5 files

0.45.0

5 files

0.44.0

5 files

0.43.0

5 files

0.42.0

5 files

0.41.0

4 files

0.40.0

4 files

0.39.0

4 files

0.38.0

3 files

0.37.0.post1

3 files

0.37.0

3 files

0.36.0

3 files

0.35.0

3 files

0.34.0

3 files

0.33.0

3 files

0.32.0

2 files

0.31.0

2 files

0.30.0

2 files

0.29.0

2 files

0.28.0

2 files

0.27.0

2 files

0.26.0

2 files

0.25.1

2 files

0.25.0

2 files

0.24.0

2 files

0.23.0

2 files

0.23.0a2

2 files

0.23.0a1

1 file

0.22.0

2 files

0.21.0

1 file

0.20.0

2 files

0.19.0

1 file

0.18.0

1 file

0.17.0

1 file

0.16.1

1 file

0.16.0

1 file

0.15.0

1 file

0.14.0

1 file

0.13.0

1 file

0.12.0

1 file

0.11.0

1 file

0.10.0

1 file

0.9.0

1 file

0.8.0

1 file

0.7.2

1 file

0.7.1

1 file

0.7.0

1 file

0.6.0

1 file

0.5.0

1 file

0.4.0

1 file

0.3.0

1 file

0.2.0

1 file

0.1.1

1 file

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page