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 twine.

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 twine as TWINE_USERNAME and TWINE_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 twine 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.0a1-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.0a1-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.0a1-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.0a1-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.0a1-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.0a1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for travertine-0.50.0a1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 61f9db05cd9eca35f634b3ae87e86ec56861d680c78b485a1d56d6fd77004735
MD5 1ceeca9c583e642cdd84a2a70c998420
BLAKE2b-256 15aa883b955a0e19c8f284fe693193bd23afb298540d5b0ab7e5b5f21ce5ce93

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for travertine-0.50.0a1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d199c170986c7a83d7bf0ae450a0fe09154a26869c128ec5d90a31f972bf5e01
MD5 333df5196dee16f9469afe3876857ffd
BLAKE2b-256 ad83cbc70a598bf4efebfa62b8346bb5c5b001cdc6a4621d3e96d119b76139e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for travertine-0.50.0a1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1d9c9494cfe738bcb6b124cc2abb684b0a930824939eaa875e7e754ba2f95579
MD5 918d6fd864328db44e90df96bcc0bfa5
BLAKE2b-256 94f0e57f41c2aa2b9ae369bdaec39c5c964910a3db789ee3d8b7103fb3bdc2b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for travertine-0.50.0a1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2029195827e9a0547ff17b4eeafa9d4dbf7a2c5c2f92feed39ab9ac49b77b13e
MD5 bee657dd8b8e93d2439601a50dcd7c47
BLAKE2b-256 1d7aad35877d4cfc133abf885e72215bc6a0a45ea66a2509cec9a28f273b1220

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for travertine-0.50.0a1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8afc95782c1e562613be88cc289c299842de437c1316d6d0b1589eb39d55a2b2
MD5 7964013c09ea9e737cd71a4e4d04d4ea
BLAKE2b-256 c9b92f8228d4bfebb369ba51f8f4624d86fe42a4d95a00b0a2ea713c66664ba1

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