Skip to content

DOC: minor tweak to docs on invoking pip/build #707

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

rgommers
Copy link
Contributor

Addresses a comment on gh-704, where a user got tripped up by python -m build building an sdist first (and that's typically not what you want).

@rgommers rgommers added the documentation Improvements or additions to documentation label Nov 14, 2024
@dnicolodi
Copy link
Member

We have several other example python -m build invocation in the documentation? Should we change them to python -m build --wheel or is this the time to add that "Creating a binary distribution" we have been talking about and have a note there about the pypa/build unexpected behavior?

@rgommers
Copy link
Contributor Author

rgommers commented Dec 5, 2024

I think we should add --wheel to all other instances of python -m build. The default is useful only for a single CI job or a release of a pure Python package; I can't think of any time I regularly did not add --wheel or -wnx.

@rgommers rgommers force-pushed the add-wheel-flag-to-build branch from 717af2c to 0e1ee55 Compare May 2, 2025 12:31
@@ -34,6 +34,7 @@ the ``-C`` short command line option:

.. code-block:: console

$ # note: pip >=23.1 also accepts -C instead of --config-settings
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm, stray tab characters in this file messing things up

Addresses a comment on issue 704, where a user got tripped up
by `python -m build` building an sdist first (and that's typically
not what you want).

Also fix up stray tab characters in how-to-guides/config-settings.rst
@rgommers rgommers force-pushed the add-wheel-flag-to-build branch from 0e1ee55 to cf6e2a7 Compare May 2, 2025 12:43
@rgommers rgommers added this to the v0.19.0 milestone May 27, 2025
@rgommers
Copy link
Contributor Author

@dnicolodi this is ready, CI failures were unrelated - PTAL, would be nice to merge it.

$ # note: for Pip <23.1, use `--config-settings=` instead of `-C`
$ python -m pip wheel . \
-Csetup-args="-Doption=disable" \
-Ccompile-args="-j6"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we assume pip 23.1 or later in the example, it would be nice to use the same configuration arguments for the build and pip examples. The only reason why these were different is that earlier pip did not allow to specify the same configuration key multiple times. I would also remove the note in the comment here and move it to the admonition block just below, that could be retitled "pip version 23.1 and earlier" or something like that, and explain the different command line argument and the limitation. These versions of pip are starting to be ancient history, anyway.

If we switch this example to use -C instead of --config-settings, I think we should do the same for every other example using pip too.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea, will make that change. pip 23.1 is old enough by now

@@ -83,7 +83,7 @@ To set this option temporarily at build-time:

.. code-block:: console

$ python -m build -Csetup-args="--default-library=static" .
$ python -m build -Csetup-args="--default-library=static" --wheel .
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be nice to always use the same order of the argument in the examples, namely move --wheel before -C. Here and in all other instances too.

@@ -242,6 +242,9 @@ dependencies, and ask ``meson-python`` to build the artifacts.
$ python -m build

If the build succeeded, you'll have the binary artifacts in the ``dist`` folder.
Note that by default, ``python -m build`` builds an sdist first, and then a
wheel from the sdist. If you only want one artifact, add ``--sdist`` or
``--wheel`` to the invocation.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that this misses the main point. The issue in not the extra work for building an sdist that will not be used, but that doing so any uncommitted change in the repository is not reflected in the wheel.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah good point, will add that as the first point since it's indeed a footgun. I think both can be relevant; sdist creation for a large project can be really slow (a quick unscientific measurement says 40 seconds for scipy at the moment, and it might breaking caching on rebuilds as well).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants