Quick Start
This guide gets you from zero to your first wheel build in under 5 minutes.
Prerequisites
You’ll need Python 3.12 or later and network access to download packages from PyPI.
Installation
Install fromager using pip:
$ pip install fromager
$ fromager --version
fromager, version X.Y.Z
Your First Build
Let’s build a simple package and its dependencies from source. We’ll use
stevedore, a lightweight package with minimal dependencies.
Create a requirements.txt file with the package name:
$ echo "stevedore" > requirements.txt
Run the bootstrap command:
$ fromager bootstrap -r requirements.txt
primary settings file: overrides/settings.yaml
per-package settings dir: overrides/settings
variant: cpu
...
100%|████████████████████████████████████████| 3/3 [00:08<00:00, 2.67s/pkg]
writing installation dependencies to ./work-dir/constraints.txt
Check your results:
$ ls wheels-repo/downloads/
pbr-6.1.0-0-py2.py3-none-any.whl
setuptools-75.1.0-0-py3-none-any.whl
stevedore-5.3.0-0-py3-none-any.whl
You’ve built stevedore and its dependencies (pbr, setuptools)
entirely from source. Fromager downloaded the source distributions from PyPI,
figured out the build and runtime dependencies, built each package in the
correct order, and created wheels in wheels-repo/downloads/.
For a detailed explanation of the output files and directories, see Input and Output Files.
Pinning Versions with Constraints
For reproducible builds, use a constraints file to pin specific versions:
$ echo "stevedore==5.3.0" > constraints.txt
$ fromager -c constraints.txt bootstrap -r requirements.txt
The -c option ensures fromager uses exactly the versions you specify.
Next Steps
Now that you’ve seen fromager work with a simple package, explore:
Learn More:
Getting Started - Detailed walkthrough with debugging examples
Concepts - Understand how fromager works
Common Tasks:
Using Build Containers - Run fromager in containers (recommended)
Using Constraints to Build Collections - Pin versions for reproducible builds
Enable Repeatable Builds - Ensure consistent builds across environments
Customize Builds:
Customizing parts of the package build process - Comprehensive customization guide
Configuration Reference - Configuration reference
How-tos - Task-oriented guides