Skip to main content

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.0-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.0-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.0-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.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

travertine-0.50.0-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.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: travertine-0.50.0-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.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f01bbb2c7e990c73770f41003e06bb22c84c4cef34b163795a085ddbaec26637
MD5 25d25f5169cf1ff67765ebf0367964ab
BLAKE2b-256 b23b097c896472206f8fed338b28023f6cc91fe1f8fddd8bdfb1dd6a722e66a5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: travertine-0.50.0-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.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8b68b4b24a533167b3dc7f4f09fd827d7a1ec93f43a20ad4e0c886924ab149c3
MD5 de3b3c6016ba33fc4317c22f3e4dac32
BLAKE2b-256 421516b709ef6cec3083375c8ce660e3559c1fcf9c789dbf7d7f69a052eea2a7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: travertine-0.50.0-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.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e911a24c4c1523962c90067cbcaf57e102e28f501e128308b5f1aad400b19497
MD5 09e3b2999d0255bb22e5feef4bfcfda5
BLAKE2b-256 8761bce52dc82981da710e13dfea2845fdf26bca59e9ebf0064a69ba8683e88c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: travertine-0.50.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 9.7 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.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5dd122e9de25c78b9c89aa3d2aae3779b0d0a8ef7eb18b6cf6ca2952dc1dfdd0
MD5 63fcd63c6099f449a4f800125d9e73da
BLAKE2b-256 4b1a3ff7ffe0ecbc9dda1840fae64108ef35e3b3a71225b31efc6f02c0daa1f4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: travertine-0.50.0-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.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3975e198a3abc9f4d63def0d90db5c1a6ffef00ae66bbd016b309880a91cd57b
MD5 d84d5049be8a2d7c8c49a58d1c82a247
BLAKE2b-256 522ca9a96e8e54aa192e4e5bde7b8a6c234fb14e9e008309983821f6222765db

See more details on using hashes here.

Release history Release notifications | RSS feed

0.50.0.post1

5 files

This release

0.50.0 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