Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wheel build should use a locked requirements file #22042

Open
jwnimmer-tri opened this issue Oct 15, 2024 · 0 comments
Open

Wheel build should use a locked requirements file #22042

jwnimmer-tri opened this issue Oct 15, 2024 · 0 comments
Assignees
Labels
component: distribution Nightly binaries, monthly releases, docker, installation priority: medium type: feature request

Comments

@jwnimmer-tri
Copy link
Collaborator

jwnimmer-tri commented Oct 15, 2024

Is your feature request related to a problem? Please describe.

In our wheel build, currently we install some unpinned dependencies:

pip install --upgrade \
delocate \
setuptools \
wheel

# TODO(jwnimmer-tri): Should these be version-pinned? What's the process for
# keeping them up to date if they are?
pip install \
matplotlib \
numpy \
pyyaml \
semantic-version \
setuptools \
wheel \
auditwheel
if [[ "$(uname)" == "Linux" ]]; then
pip install patchelf
fi

This is a problem because it means our wheel builds are not reproducible (so checking out a Drake tag and building it might produce a different result, or even not work at all), and that broken uploads to PyPI can break our Nightly CI out from under us.

Describe the solution you'd like

  • Compute requirements lockfile(s) for our wheel builds, so that the versions of everything we need are consistent across repeated builds of the same Drake source tree.
  • Ensure that the lockfile is regularly refreshed (ala Monthly upgrades for venv lockfile #22041).

Describe alternatives you've considered

n/a

Additional context

At the moment, in non-wheel builds, we only have venv lockfiles for macOS. This issue should lock both the Linux wheel build and the macOS wheel build, i.e., the two code snippets above.

This is a sub-task of the #8392 epic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: distribution Nightly binaries, monthly releases, docker, installation priority: medium type: feature request
Development

No branches or pull requests

3 participants