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

File metadata

  • Download URL: travertine-0.50.0a2-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.3 {"installer":{"name":"uv","version":"0.12.3","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.0a2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 385c74ddb35bc5eaecaf980b0e6e460449498499bc16bca43ae3f8105f7713b9
MD5 0fc39e7c5ed4318f27746a1966ef7760
BLAKE2b-256 8efce6923b4a24d835d628afc6ba2875b3ee4b0726cba85c76146f3c08a6a32c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: travertine-0.50.0a2-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.3 {"installer":{"name":"uv","version":"0.12.3","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.0a2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 be21e92bec3a9b236b9932a3910614f4c1ca7a1becb37d29f15072f375c692f8
MD5 afdbe5c00f400b0990806c5cbca53ea7
BLAKE2b-256 5e8bfa598286cdca24dd5dbae58ec3dccf833f63d922a38234de37a501163880

See more details on using hashes here.

File details

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

File metadata

  • Download URL: travertine-0.50.0a2-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.3 {"installer":{"name":"uv","version":"0.12.3","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.0a2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5cce5b64d14c4f1c961b8479d5ca987218fdf972975d55ba65c388964f392acc
MD5 be171797c276d4dd8f2485287e36bb44
BLAKE2b-256 bef430f2c8beb39e6597aa0769eeda6442e8a0dc3d0114c929a1ee01607d2a14

See more details on using hashes here.

File details

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

File metadata

  • Download URL: travertine-0.50.0a2-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.3 {"installer":{"name":"uv","version":"0.12.3","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.0a2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dc5221d098606f79a435ca15e4bdc14abc1df6693ce953fcf66d4d4c34b99fbb
MD5 0a35183f5db4f41a8b47fcc5e2afaf03
BLAKE2b-256 8227bd60d0ca76d9f3a6224432227d4003a91db7e53c4e0338769f42463f25c9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: travertine-0.50.0a2-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.3 {"installer":{"name":"uv","version":"0.12.3","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.0a2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 af02e17e9861db5c474da5468ef67412f6d9f901ac6d3321dc2da98b12007ea9
MD5 95821d7c11655b313c92c0db38f1801c
BLAKE2b-256 989917898889af0d07984bac15cace40a14fcc070eb14e268b1ee5f91d17836b

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.0a2 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