Skip to main content

Wheel maker

Project description

fromager

Fromager is a tool for completely re-building a dependency tree of Python wheels from source.

The goals are to support guaranteeing

  1. The binary package someone is installing was built from source in a known build environment compatible with their own environment
  2. All of the package’s dependencies were also built from source -- any binary package installed will have been built from source
  3. All of the build tools used to build these binary packages will also have been built from source
  4. The build can be customized for the packager's needs, including patching out bugs, passing different compilation options to support build "variants", etc.

The basic design tenet is to automate everything with a default behavior that works for most PEP-517 compatible packages, but support overriding all of the actions for special cases, without encoding those special cases directly into fromager.

Using private registries

Fromager uses the requests library and pip at different points for talking to package registries. Both support authenticating to remote servers in various ways. The simplest way to integrate the authentication with fromager is to have a netrc file with a valid entry for the host. The file will be read from ~/.netrc by default. Another location can be specified by setting the NETRC environment variable.

For example, to use a gitlab package registry, use a personal access token as documented in this issue:

machine gitlab.com login oauth2 password $token

Determining versions via GitHub tags

In some cases, the builder might have to use tags on GitHub to determine the version of a project instead of looking at pypi.org. To avoid rate limit or to access private GitHub repository, a personal access token can be passed to fromager by setting the following environment variable:

GITHUB_TOKEN=<access_token>

Additional docs

What's with the name?

Python's name comes from Monty Python, the group of comedians. One of their skits is about a cheese shop that has no cheese in stock. The original Python Package Index (pypi.org) was called The Cheeseshop, in part because it hosted metadata about packages but no actual packages. The wheel file format was selected because cheese is packaged in wheels. And "fromager" is the French word for someone who makes or sells cheese.

Project details


Download files

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

Source Distribution

fromager-0.34.0.tar.gz (144.7 kB view details)

Uploaded Source

Built Distribution

fromager-0.34.0-py3-none-any.whl (86.0 kB view details)

Uploaded Python 3

File details

Details for the file fromager-0.34.0.tar.gz.

File metadata

  • Download URL: fromager-0.34.0.tar.gz
  • Upload date:
  • Size: 144.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for fromager-0.34.0.tar.gz
Algorithm Hash digest
SHA256 8ebdf8446c43ff79bc18aaf5bafbe6e8fcead3a18d7c3128e93da6b2dcfcfebe
MD5 49e65cd07d8d6ea34011e3316d845938
BLAKE2b-256 e72f32772f7bf385f4288daa4706b48ecc9e4ea17ea0f4ee521569191b23bba2

See more details on using hashes here.

Provenance

The following attestation bundles were made for fromager-0.34.0.tar.gz:

Publisher: python-publish.yaml on python-wheel-build/fromager

Attestations:

File details

Details for the file fromager-0.34.0-py3-none-any.whl.

File metadata

  • Download URL: fromager-0.34.0-py3-none-any.whl
  • Upload date:
  • Size: 86.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for fromager-0.34.0-py3-none-any.whl
Algorithm Hash digest
SHA256 94abc1208e442f82d64b770a728bc863cf30c9551fa052522419663a7f1a6ef7
MD5 c02b9a284754487bdd2fa3d6c7593c99
BLAKE2b-256 7366e4771c1febc93c688eb0d7405c1f1ece47351f6d0e6f46a5f2802a928213

See more details on using hashes here.

Provenance

The following attestation bundles were made for fromager-0.34.0-py3-none-any.whl:

Publisher: python-publish.yaml on python-wheel-build/fromager

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page