-
Notifications
You must be signed in to change notification settings - Fork 121
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
_build_in_isolated_env fails to pass in config_settings to builder.get_dependencies #264
Comments
This is an oversight but a fortunate one, because fixing it would break passing config settings to setuptools' sdists and wheels :( |
Would you mind elaborating how it would break setuptools? Did you run a test suite to come to that conclusion? Looking at the setuptools PEP517 backend at https://github.com/pypa/setuptools/blob/88b8b7807ec3064fec713da83fc0c7860b982536/setuptools/build_meta.py#L152 it seems setuptools is going to ignore any entry that doesn't have the key of "--global-option"
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
…On Tuesday, March 23, 2021 9:24 AM, layday ***@***.***> wrote:
This is an oversight but a fortunatee one, because fixing it would break passing config settings to setuptools' sdists and wheels :(
—
You are receiving this because you authored the thread.
Reply to this email directly, [view it on GitHub](#264 (comment)), or [unsubscribe](https://github.com/notifications/unsubscribe-auth/AC6SOBOMIFVPSH7WOPCP72TTFCI75ANCNFSM4ZULHHJQ).
|
setuptools only accepts |
setuptools v64.0.0 (11 Aug 2022) added |
That's great to hear! For other build backends (scikit-build-core, meson-python, etc), this bug will likely be problematic, and would be good to fix. For example, in scikit-build-core, every config option is settable via config settings, and some of them do affect the dependency step, like setting the min version of CMake. Think it's time to fix this bug and note how to use it with modern setuptools? |
I don't think it makes a lot of difference that setuptool accepts |
Oh, okay. Is there a path forward for setuptools to fix this? (like egg_info ignoring options it doesn't support, or setuptool's get_requires_for_build_wheel stripping options it doesn't support) It really is a build bug that I'd like to see eventually fixed. Maybe we could provide an opt in/out for the bugged behavior that sdtputools is relying on? |
I don't think there's been any progress since pypa/setuptools#2491 (comment). |
(sparked by the discussion in #627) At this point, I am starting to think it's better to just do this change so that we do not delay it further, as from conversations with other people, and my personal involvement in developing build backends, this seems like the correct path forward. This is already causing issues with other backends, and I do not want to be forced to provide a more complicated CLI, so changing the behavior to what is most desirable in general is something that as soon as we do it, the better. To handle cases where this might break things, we'd have to provide a mechanism to temporarily switch to old behavior. Regarding setuptools, given that no development happened there, and so that this change does not get delayed any further, I'd special case it and turn the behavior on by default. About the mechanism that should be used for this, I think an environment variable would probably be the best, and in order to avoid requiring it to be set for each call, I'd probably make it a list of backends. Additionally, pinging @abravalheri to see if we can get some more movement on the setuptools side. TLDR: We are currently only passing |
We don't know what backend is being used, unless you mean just doing a textual match against the setting of IMO |
Hi @FFY00, I did some preliminary work on the July and possibly August are going to be a busy months for me, so I cannot promise I will be able to work on this. If anyone in the community would like to give it a go that would also be nice. |
@abravalheri thanks for the update, and for having a look at this! Are you planning to also include this in |
The I don't think these updates would be incompatible. |
Yes.
It is, but I don't know how to detect such cases. The main thing to consider here is the UX, IMO. A backend being a setuptools wrapper isn't that relevant for the final user, it's something they may be aware, if the backend advertises it, but often aren't. Many backends also don't even advertise they are a wrapper of setuptools, so the user very few users will know that. Because of this, even though I understand your opinion regarding the different behavior, I don't think it outweighs the cons of the alternatives.
That would create immense pain for downstream packagers, for eg, because it'd require them to update every single package recipe that uses setuptools to set that environment variable (for reference, there are ~1.8k packages on the arch repo alone that use setuptools as the backend...).
Definitely. This can even be done for setuptools wrappers if we decide to go with an approach similar to what I proposed. We detect that the backend is likely a setuptools wrapper and give them the envvar ready to be set (eg. Going back to the expectations discussion above, detecting that the backend may be, or is likely to be, a setuptools wrapper and proving a helpful message, like you mention, should mostly mitigate the issue, I think. |
#632 mirrors the programmatic API by allowing users to pass config settings to each hook separately, which I think is an elegant, permanent way out of this impasse. I can think of very few downsides - discoverability is one (we are entering the realm of mini-DSLs) and the pressure it might put on pip to introduce something similar. |
Thanks for working on that @layday!
Yup, I think the main downside is how it complicates things. In the long term I think it's in our -- and the user's -- best interest to avoid requiring this kind of mechanisms. Personally, I think trying having some sort of heuristic to detect setuptools and setuptools-wrappers is good enough, and I think it's an acceptable tradeoff to not put out this (mis)feature. It's probably worth to ping the pip folks, to see what they think. @pradyunsg @uranusjr @pfmoore |
I am still against any attempt to try to detect what backend is being used. It should be possible for someone to convert a build backend into a local build backend without hidden tool-specific surprises. For example, turning This is a breakage that would be hard to track down when it happens, and isn't clearly anyone's fault other than build's for trying to read the Matching against the packages in Personally, I think having an opt-in environment variable ( Also, whatever we do needs to be mirrored in Pip. We should not come up with something different then what Pip will have to do. Ideally we use the same envvar, or at least use the same structure. |
That does mean that setuptools users will be unable to pass config settings to Ideally, we'd consign config settings to the annals of history, but while they exist and while they remain useful, enabling power users to do power user-y things with them isn't exactly what I'd categorise as a misfeature. Being able to do something clumsily is - perhaps - better than not being able to do it at all. Hook prefixes provide an answer for "how do I do X with popular backend Z" - backends which don't carry setuptools' baggage won't have to concern themselves with hook prefixes nor will their users. |
This is heavily used in scikit-build-core and meson-python. I'd expect maturin might too - compiled backends are really likely to need configurable settings. Though Scikit-build-core does allow any config setting to be set via environment variable too1, so it can be worked around for now (since config-settings support is rather flimsy currently). But the "most correct" way to configure something dynamic feels like config-settings. (Also, meson-python hates environment variables).
Config settings aren't used much yet because binary build backends are just now being developed, and supporting them everywhere has taken time (cibuildwheel added support not that long ago), and setuptools makes them very hard to implement and very ugly (IMO) to use (see #638 Edit: pointed at wrong issue originally). The best way to use them with setuptools might actually be to add a local backend! I don't think that means config-settings weren't a good idea, it just means that they've been hard to use and really hard to rely on historically, especially in a setuptools dominated world.
The biggest issue with hook prefixes is they really feel like they need a PEP - Pip needs to support the same thing we do; any builder really should support them. It also means that Footnotes
|
I haven't yet had time to read through this whole discussion (I'll do so another day when I have some free time) but I'm a pretty strong -1 on special-casing any backend. Pip certainly won't do that unless I get overridden by the other maintainers. What pip does right now is accept key=value config settings on the command line, and pass them to the build backend whenever we call a hook. That is, in my view, in line with what the PEP says on the matter. It's certainly true that the PEP didn't go into much detail on the whole issue of config_settings, and there was very little input from backends on what they would like the interface to look like, but unless someone writes a follow-up PEP, this is what we have got to work with. As I say, I'll try to look at the full thread here sometime in the next few days, but I hope these comments aren't too far off the mark of what you wanted in the meantime. |
Fair enough, but perhaps owing to setuptools' relative popularity, most reported issues with config settings appear to concern setuptools. It's a fair point that binary build backends will see more use out of these than pure Python backends have.
I'm not entirely sure that they do. If anything, pip would probably be happy to defer user-initiated package builds to build, from what I gather. There'd definitely be pressure on pip to adopt the same scheme - I mention this above - and the fewer differences that exist between the two tools where they overlap, the better - but surely packaging tools are free to innovate to some extent. Stipulating the config setting interface was rebuffed when we last revisited config settings to clarify passing duplicate keys.
This isn't accurate FWIW. It won't split on every |
At least with meson-python it seems one can just bypass pep517 entirely and use the meson infrastructure directly if needed, I ended up having to do that with scipy due to the apparent complete lack of any cross compilation support in meson-python. I don't think we're using anything with scikit-build-core right now but I wonder if we would need to bypass that pep517 build backend like we are with meson-python when cross compiling somehow? Invoking build systems like meson/cmake indirectly(ie without properly setting up cross compilation environment/configurations) tends to not work correctly.
When converting all our setuptools packages from the legacy |
scikit-build-core supports cross compilation for macOS ARM and Pyodide. We also support it for Windows ARM with some small changes (compared to the minimal version) to your CMakeLists.txt.
I think it's pretty specific, it has to be something that breaks the egg info commands. |
setuptools will error if:
For example:
This is equivalent to running:
And with #632:
|
That seems to be similar to python-meson, which is also missing generic cross compilation support.
For packages which may use scikit-build-core can we bypass the scikit-build-core pep517 backend safely and just use cmake directly(we have cmake cross compilation support when used directly)? |
I've read through this issue, and checked the pip code. I believe that what I said about pip's behaviour is accurate. I have no idea why it's not caused any issues with setuptools, maybe no-one is actually using the I don't anticipate changing what pip does, even if build decides to do something like special-case setuptools. I can understand the argument for common behaviour, but short of a new PEP defining the required behaviour explicitly, I think we'll just end up debating whose application-defined behaviour should "win", and I don't think that's an argument worth having. I don't have an opinion on what build should do. You have different users, with different requirements, than pip, and this almost certainly translates to different trade-offs being appropriate. |
I think we are both hoping for some progress on the sysconfig proposal @FFY00 is working on. Generic cross-compilation is hard, especially if you need to support manylinux. Any further standardization of cross compilatin would always be appreciated. :)
Depends on the design of the package, though I think it's roughly on par with meson-python. Meson can't natively create wheels or packaging metadata like entry points or the version metadata FWIU, so I don't think you are actually getting a proper install if you bypass it. And you don't need to bypass it with scikit-build-core, it will respect related CMake variables and toolchain files, and you can use standard cross compiling tricks for Python. Not really elegant yet, but not horrible. In the near future (and especially if I have examples! Feel free to post some into an issue), I'll try to document (and possibly improve) the cross compiling story. My main issue in the past has been how hard it is to make a proper manylinux wheel with a modern compiler (required for most archs) without the RHEL patched compiler manylinux native images use. But this is getting off topic here, happy to take an issue in scikit-build-core discussing cross compiling. |
Hmm, can't you just do something like this(when used in combination with #627) to ensure the option gets passed to the right setuptools command?
or
|
If build starts supporting custom prefixes for The environment variable workaround probably would be a lot less pressure to support. I'm confused, is this bug present in pip? To me it seems it's only in build. If that's the case, there would be no pressure at all to support a build workaround flag that reenables this bug for backward compatibility. (And if pip has this bug too, then should't it be fixed? @layday, do you know?)
I believe it's really hard to use with setuptools, but as new build tooling is popping up, it's going to be used a lot more. Simple builds don't need it, and historically complicated builds are still being done with Most complex packages (PyTorch, pysocpg, etc) have lots of options. I expect those options are going to be passed via config-settings eventually. Those packages are only just now beginning to try to move off of classic |
The bug being that config settings are not being passed to
|
@jameshilliard Yes, I tested both of your suggestions, they both work. $ python -m build -n -s -C--build-option=egg_info -C--build-option=--tag-build -C--build-option=1
... passes You can retry this yourself (a little messy since this wan't designed to do this, but it happened to be easy to whip up a recipe quickly since I work on it): docker run --rm -it alpine apk add python3 git
python3 -m ensurepip
python3 -m pip install pipx build wheel setuptools_scm
pipx install copier
pipx inject copier copier-templates-extensions "pydantic<2"
export "PATH=/root/.local/bin:$PATH"
export SETUPTOOLS_SCM_PRETEND_VERSION=1.0.0
copier copy gh:scientific-python/cookie test_setuptools --UNSAFE --defaults --data=project_name=test_setuptools --data=org=org --data=backend=setuptools --data=full_name="My Name" [email protected] --data=license=BSD
cd test_setuptools And, to answer my own question, this absolutely is correct in pip (meaning it blows up as it should given setuptool's current behavior): $ python -m pip wheel --no-build-isolation -C--build-option=--tag-build -C--build-option=1 .
... fails
error: option --tag-build not recognized
$ python -m pip wheel --no-build-isolation -C--build-option=egg_info -C--build-option=--tag-build=1 .
... passes So fixing this will bring us inline with pip, and there's a workaround for people stuck. I'm in favor of #627 as is. |
Agreed. I'd oppose adding anything like that to pip without a PEP supporting it, if only because a PEP would have to establish that the need is significant enough to justify the complexity.
I haven't seen any reports of this (or any other) bug with our config-settings implementation. That says to me that either it's not an issue in practice, or no-one is using the feature so they haven't encountered it yet. I'm also somewhat confused, as the bug is being presented here as significant and widespread, and yet we've had no evidence of it with pip.
To me, that's an argument that setuptools is going to be under a lot more pressure from their users to improve their approach to using config settings. I don't view it as pressure on other tools to implement workarounds for the fact that setuptools hasn't addressed the issue yet. Yes, that's rather a black and white viewpoint, but we all have more work than we have people to do it, and we have to prioritise. I assume that new build tools will work in a way that fits with the existing model (even if only by the simple expedient of hooks ignoring all settings except the ones that apply to them). So unless the
That sounds likely. I wonder if there's a need here for a new build backend that is essentially a setuptools wrapper that does nothing more than accept config settings, translate them and forward the hook calls onto setuptools. I don't know how practical that is, but it's certainly a potential avenue for projects needing to manage the transition. |
I wasn't aware you could chain commands like that. What does |
Yeah, it appeared to work for me when I tested, I just wasn't sure if I had missed some issue here, some of our packages use this trick with
I'm not entirely sure, it may be undocumented, I think how it works is that you can pass command specific args to any |
So then you'll be calling If it works, it works... I guess. |
Fixing this in setuptools is better. But this workaround is already required to use pip, so let’s fix the bug and let setuptools work on better support. (You can also add a custom backend to process config settings if it’s your package). build declares it is a “correct” builder. This is just a build-only bug that hurts most build backends (including setuptools), and has a workaround that’s already being used for pip, since pip doesn’t have the same bug. |
I'm assuming setuptools does filtering based on the So passing the
Yeah, I was a bit confused why the invalid
Does anything even need to be fixed in setuptools, aside from maybe the documentation? |
Bumps [build](https://github.com/pypa/build) from 0.10.0 to 1.0.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pypa/build/releases">build's releases</a>.</em></p> <blockquote> <h2>1.0.0</h2> <h2>What's Changed</h2> <ul> <li>infra: replace flake8 with ruff by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/565">pypa/build#565</a></li> <li>Refactor <code>IsolatedEnv</code>, take two by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/537">pypa/build#537</a></li> <li>util: allow passing alternative runner to <code>project_wheel_metadata</code> by <a href="https://github.com/q0w"><code>@q0w</code></a> in <a href="https://redirect.github.com/pypa/build/pull/566">pypa/build#566</a></li> <li>ci: do not trigger workflow for RST file changes by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/568">pypa/build#568</a></li> <li>build: drop toml fallback by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/567">pypa/build#567</a></li> <li>infra: fix ruff configuration and add a few checks by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/573">pypa/build#573</a></li> <li>Minor doc fixes by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/574">pypa/build#574</a></li> <li>docs: reorder installation instructions by <a href="https://github.com/hauntsaninja"><code>@hauntsaninja</code></a> in <a href="https://redirect.github.com/pypa/build/pull/575">pypa/build#575</a></li> <li>Specify encoding by <a href="https://github.com/jaraco"><code>@jaraco</code></a> in <a href="https://redirect.github.com/pypa/build/pull/578">pypa/build#578</a></li> <li>infra: use latest Ruff instead of isort by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/581">pypa/build#581</a></li> <li>tests: report installed versions of common packages by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/588">pypa/build#588</a></li> <li>tests: strip formatting from stderr (pip 23) by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/589">pypa/build#589</a></li> <li>docs: remove direct references to PEP 517 in docs landing page by <a href="https://github.com/pradyunsg"><code>@pradyunsg</code></a> in <a href="https://redirect.github.com/pypa/build/pull/562">pypa/build#562</a></li> <li>docs: use sphinx-issues by <a href="https://github.com/FFY00"><code>@FFY00</code></a> in <a href="https://redirect.github.com/pypa/build/pull/590">pypa/build#590</a></li> <li>config: support running Ruff 0.258+ directly on source by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/591">pypa/build#591</a></li> <li>tests: useless .stdout detected by Ruff PR by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/594">pypa/build#594</a></li> <li>Fix link to installation page in docs by <a href="https://github.com/atugushev"><code>@atugushev</code></a> in <a href="https://redirect.github.com/pypa/build/pull/597">pypa/build#597</a></li> <li>fix: mypy update by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/606">pypa/build#606</a></li> <li>chore: minor cleanup by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/605">pypa/build#605</a></li> <li>chore: isort Ruff code was missing by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/604">pypa/build#604</a></li> <li>🎨🧪 Modularize GHA workflow through reuse by <a href="https://github.com/webknjaz"><code>@webknjaz</code></a> in <a href="https://redirect.github.com/pypa/build/pull/618">pypa/build#618</a></li> <li>Improve CLI help text by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/616">pypa/build#616</a></li> <li>ci: add 3.12 beta testing by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/624">pypa/build#624</a></li> <li>chore: remove unneeded target-version by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/634">pypa/build#634</a></li> <li>pre-commit: ruff moved to astral-sh by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/635">pypa/build#635</a></li> <li>main: filter out malicious files when extracting tar archives by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/609">pypa/build#609</a></li> <li>main: avoid cost of importing virtualenv if not using it by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/636">pypa/build#636</a></li> <li>Bump importlib metadata dependency by <a href="https://github.com/jaraco"><code>@jaraco</code></a> in <a href="https://redirect.github.com/pypa/build/pull/631">pypa/build#631</a></li> <li>main: ensure config_settings are passed to get_requires_for_build by <a href="https://github.com/jameshilliard"><code>@jameshilliard</code></a> in <a href="https://redirect.github.com/pypa/build/pull/627">pypa/build#627</a></li> <li>tests: add network marker by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/649">pypa/build#649</a></li> <li>chore: use 2x faster black mirror by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/652">pypa/build#652</a></li> <li>docs: bump furo/sphinx by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/660">pypa/build#660</a></li> <li>readme: touch up badge by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/659">pypa/build#659</a></li> <li>fix: include all files in SDist by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/657">pypa/build#657</a></li> <li>fix: tests & file inclusion update by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/661">pypa/build#661</a></li> <li>chore: add some exception handling minor cleanup checks by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/662">pypa/build#662</a></li> <li>docs: update changelog for 0.11.0 by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/664">pypa/build#664</a></li> <li>Release 1.0.0 by <a href="https://github.com/gaborbernat"><code>@gaborbernat</code></a> in <a href="https://redirect.github.com/pypa/build/pull/668">pypa/build#668</a></li> <li>ci: build and test SDist/wheels by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/669">pypa/build#669</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/q0w"><code>@q0w</code></a> made their first contribution in <a href="https://redirect.github.com/pypa/build/pull/566">pypa/build#566</a></li> <li><a href="https://github.com/atugushev"><code>@atugushev</code></a> made their first contribution in <a href="https://redirect.github.com/pypa/build/pull/597">pypa/build#597</a></li> <li><a href="https://github.com/jameshilliard"><code>@jameshilliard</code></a> made their first contribution in <a href="https://redirect.github.com/pypa/build/pull/627">pypa/build#627</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pypa/build/compare/0.10.0...1.0.0">https://github.com/pypa/build/compare/0.10.0...1.0.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/build/blob/main/CHANGELOG.rst">build's changelog</a>.</em></p> <blockquote> <h1>1.0.0 (2023-09-01)</h1> <ul> <li>Removed the <code>toml</code> library fallback; <code>toml</code> can no longer be used as a substitute for <code>tomli</code> (PR :pr:<code>567</code>)</li> <li>Added <code>runner</code> parameter to <code>util.project_wheel_metadata</code> (PR :pr:<code>566</code>, fixes issue :issue:<code>553</code>)</li> <li>Modified <code>ProjectBuilder</code> constructor signature, added alternative <code>ProjectBuilder.from_env</code> constructor, redefined <code>env.IsolatedEnv</code> interface, and exposed <code>env.DefaultIsolatedEnv</code>, replacing <code>env.IsolatedEnvBuilder</code>. The aim has been to shift responsibility for modifying the environment from the project builder to the <code>IsolatedEnv</code> entirely and to ensure that the builder will be initialised from an <code>IsolatedEnv</code> in a consistent manner. Mutating the project builder is no longer supported. (PR :pr:<code>537</code>)</li> <li><code>virtualenv</code> is no longer imported when using <code>-n</code>, for faster builds (PR :pr:<code>636</code>, fixes issue :issue:<code>510</code>)</li> <li>The SDist now contains the repository contents, including tests. Flit-core 3.8+ required. (PR :pr:<code>657</code>, :pr:<code>661</code>, fixes issue :issue:<code>656</code>)</li> <li>The minimum version of <code>importlib-metadata</code> has been increased to 4.6 and Python 3.10 due to a bug in the standard library version with URL requirements in extras. This is still not required for 3.8 when bootstrapping (as long as you don't have URL requirements in extras). (PR :pr:<code>631</code>, fixes issue :issue:<code>631</code>)</li> <li>Docs now built with Sphinx 7 (PR :pr:<code>660</code>)</li> <li>Tests now contain a <code>network</code> marker (PR :pr:<code>649</code>, fixes issue :issue:<code>648</code>)</li> <li>Config-settings are now passed to <code>get_requires*</code> hooks, fixing a long standing bug. If this affects your setuptools build, you can use <code>-C--build-option=<cmd> -C--build-option=<option></code> to workaround an issue with Setuptools not allowing unrecognised build options when running this hook. (PR :pr:<code>627</code>, fixes issue :issue:<code>[#264](https://github.com/pypa/build/issues/264)</code>)</li> <li>Test on Python 3.12 betas/RCs (PR :pr:<code>624</code>)</li> <li>Filter out malicious files when extracting tar archives when Python supports it (PR :pr:<code>609</code>)</li> <li>Specify encoding, fixing issues when <code>PYTHONWARNDEFAULTENCODING</code> is set. (PR :pr:<code>587</code>, fixes issue :issue:<code>577</code>)</li> <li>Ruff is now used for linting.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/build/commit/1fff01ed7440d5b5626fec31422026a4920b7764"><code>1fff01e</code></a> style: ignore W005, since we are build</li> <li><a href="https://github.com/pypa/build/commit/06e0481cee5321c3a755fd1675e15c3fa926d201"><code>06e0481</code></a> ci: build and test SDist/wheels</li> <li><a href="https://github.com/pypa/build/commit/ed308f1f4507182d8c0f67ee6ca288b6d73b1270"><code>ed308f1</code></a> Release 1.0.0</li> <li><a href="https://github.com/pypa/build/commit/5e35bee312980b297c438614bc08b479f906e460"><code>5e35bee</code></a> Update pyproject.toml</li> <li><a href="https://github.com/pypa/build/commit/d73f9067dac645816472d9cf4e14155a8eff9d46"><code>d73f906</code></a> Update pyproject.toml</li> <li><a href="https://github.com/pypa/build/commit/cabf511810d32df3012a28d7daa3b80e4a87f62a"><code>cabf511</code></a> Update CHANGELOG.rst</li> <li><a href="https://github.com/pypa/build/commit/bd0176b8ebe7ed2ce0d19e8e3a1646895dd1e8e7"><code>bd0176b</code></a> ci: include pyproject.toml for test changes</li> <li><a href="https://github.com/pypa/build/commit/57d5af5eaf469f63801366510427ba03fd15f3cd"><code>57d5af5</code></a> docs: update changelog for 0.11.0</li> <li><a href="https://github.com/pypa/build/commit/fa419f2d0835c0550f99d6403ea63eeab49a3839"><code>fa419f2</code></a> pre-commit: bump repositories</li> <li><a href="https://github.com/pypa/build/commit/59c1f87503914d04b634db3633d7189e8627e65b"><code>59c1f87</code></a> chore: add some exception handling minor cleanup checks</li> <li>Additional commits viewable in <a href="https://github.com/pypa/build/compare/0.10.0...1.0.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=build&package-manager=pip&previous-version=0.10.0&new-version=1.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>
Bumps [build](https://github.com/pypa/build) from 0.10.0 to 1.0.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pypa/build/releases">build's releases</a>.</em></p> <blockquote> <h2>1.0.0</h2> <h2>What's Changed</h2> <ul> <li>infra: replace flake8 with ruff by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/565">pypa/build#565</a></li> <li>Refactor <code>IsolatedEnv</code>, take two by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/537">pypa/build#537</a></li> <li>util: allow passing alternative runner to <code>project_wheel_metadata</code> by <a href="https://github.com/q0w"><code>@q0w</code></a> in <a href="https://redirect.github.com/pypa/build/pull/566">pypa/build#566</a></li> <li>ci: do not trigger workflow for RST file changes by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/568">pypa/build#568</a></li> <li>build: drop toml fallback by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/567">pypa/build#567</a></li> <li>infra: fix ruff configuration and add a few checks by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/573">pypa/build#573</a></li> <li>Minor doc fixes by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/574">pypa/build#574</a></li> <li>docs: reorder installation instructions by <a href="https://github.com/hauntsaninja"><code>@hauntsaninja</code></a> in <a href="https://redirect.github.com/pypa/build/pull/575">pypa/build#575</a></li> <li>Specify encoding by <a href="https://github.com/jaraco"><code>@jaraco</code></a> in <a href="https://redirect.github.com/pypa/build/pull/578">pypa/build#578</a></li> <li>infra: use latest Ruff instead of isort by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/581">pypa/build#581</a></li> <li>tests: report installed versions of common packages by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/588">pypa/build#588</a></li> <li>tests: strip formatting from stderr (pip 23) by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/589">pypa/build#589</a></li> <li>docs: remove direct references to PEP 517 in docs landing page by <a href="https://github.com/pradyunsg"><code>@pradyunsg</code></a> in <a href="https://redirect.github.com/pypa/build/pull/562">pypa/build#562</a></li> <li>docs: use sphinx-issues by <a href="https://github.com/FFY00"><code>@FFY00</code></a> in <a href="https://redirect.github.com/pypa/build/pull/590">pypa/build#590</a></li> <li>config: support running Ruff 0.258+ directly on source by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/591">pypa/build#591</a></li> <li>tests: useless .stdout detected by Ruff PR by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/594">pypa/build#594</a></li> <li>Fix link to installation page in docs by <a href="https://github.com/atugushev"><code>@atugushev</code></a> in <a href="https://redirect.github.com/pypa/build/pull/597">pypa/build#597</a></li> <li>fix: mypy update by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/606">pypa/build#606</a></li> <li>chore: minor cleanup by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/605">pypa/build#605</a></li> <li>chore: isort Ruff code was missing by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/604">pypa/build#604</a></li> <li>🎨🧪 Modularize GHA workflow through reuse by <a href="https://github.com/webknjaz"><code>@webknjaz</code></a> in <a href="https://redirect.github.com/pypa/build/pull/618">pypa/build#618</a></li> <li>Improve CLI help text by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/616">pypa/build#616</a></li> <li>ci: add 3.12 beta testing by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/624">pypa/build#624</a></li> <li>chore: remove unneeded target-version by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/634">pypa/build#634</a></li> <li>pre-commit: ruff moved to astral-sh by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/635">pypa/build#635</a></li> <li>main: filter out malicious files when extracting tar archives by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/609">pypa/build#609</a></li> <li>main: avoid cost of importing virtualenv if not using it by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/636">pypa/build#636</a></li> <li>Bump importlib metadata dependency by <a href="https://github.com/jaraco"><code>@jaraco</code></a> in <a href="https://redirect.github.com/pypa/build/pull/631">pypa/build#631</a></li> <li>main: ensure config_settings are passed to get_requires_for_build by <a href="https://github.com/jameshilliard"><code>@jameshilliard</code></a> in <a href="https://redirect.github.com/pypa/build/pull/627">pypa/build#627</a></li> <li>tests: add network marker by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/649">pypa/build#649</a></li> <li>chore: use 2x faster black mirror by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/652">pypa/build#652</a></li> <li>docs: bump furo/sphinx by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/660">pypa/build#660</a></li> <li>readme: touch up badge by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/659">pypa/build#659</a></li> <li>fix: include all files in SDist by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/657">pypa/build#657</a></li> <li>fix: tests & file inclusion update by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/661">pypa/build#661</a></li> <li>chore: add some exception handling minor cleanup checks by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/662">pypa/build#662</a></li> <li>docs: update changelog for 0.11.0 by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/664">pypa/build#664</a></li> <li>Release 1.0.0 by <a href="https://github.com/gaborbernat"><code>@gaborbernat</code></a> in <a href="https://redirect.github.com/pypa/build/pull/668">pypa/build#668</a></li> <li>ci: build and test SDist/wheels by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/669">pypa/build#669</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/q0w"><code>@q0w</code></a> made their first contribution in <a href="https://redirect.github.com/pypa/build/pull/566">pypa/build#566</a></li> <li><a href="https://github.com/atugushev"><code>@atugushev</code></a> made their first contribution in <a href="https://redirect.github.com/pypa/build/pull/597">pypa/build#597</a></li> <li><a href="https://github.com/jameshilliard"><code>@jameshilliard</code></a> made their first contribution in <a href="https://redirect.github.com/pypa/build/pull/627">pypa/build#627</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pypa/build/compare/0.10.0...1.0.0">https://github.com/pypa/build/compare/0.10.0...1.0.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/build/blob/main/CHANGELOG.rst">build's changelog</a>.</em></p> <blockquote> <h1>1.0.0 (2023-09-01)</h1> <ul> <li>Removed the <code>toml</code> library fallback; <code>toml</code> can no longer be used as a substitute for <code>tomli</code> (PR :pr:<code>567</code>)</li> <li>Added <code>runner</code> parameter to <code>util.project_wheel_metadata</code> (PR :pr:<code>566</code>, fixes issue :issue:<code>553</code>)</li> <li>Modified <code>ProjectBuilder</code> constructor signature, added alternative <code>ProjectBuilder.from_env</code> constructor, redefined <code>env.IsolatedEnv</code> interface, and exposed <code>env.DefaultIsolatedEnv</code>, replacing <code>env.IsolatedEnvBuilder</code>. The aim has been to shift responsibility for modifying the environment from the project builder to the <code>IsolatedEnv</code> entirely and to ensure that the builder will be initialised from an <code>IsolatedEnv</code> in a consistent manner. Mutating the project builder is no longer supported. (PR :pr:<code>537</code>)</li> <li><code>virtualenv</code> is no longer imported when using <code>-n</code>, for faster builds (PR :pr:<code>636</code>, fixes issue :issue:<code>510</code>)</li> <li>The SDist now contains the repository contents, including tests. Flit-core 3.8+ required. (PR :pr:<code>657</code>, :pr:<code>661</code>, fixes issue :issue:<code>656</code>)</li> <li>The minimum version of <code>importlib-metadata</code> has been increased to 4.6 and Python 3.10 due to a bug in the standard library version with URL requirements in extras. This is still not required for 3.8 when bootstrapping (as long as you don't have URL requirements in extras). (PR :pr:<code>631</code>, fixes issue :issue:<code>631</code>)</li> <li>Docs now built with Sphinx 7 (PR :pr:<code>660</code>)</li> <li>Tests now contain a <code>network</code> marker (PR :pr:<code>649</code>, fixes issue :issue:<code>648</code>)</li> <li>Config-settings are now passed to <code>get_requires*</code> hooks, fixing a long standing bug. If this affects your setuptools build, you can use <code>-C--build-option=<cmd> -C--build-option=<option></code> to workaround an issue with Setuptools not allowing unrecognised build options when running this hook. (PR :pr:<code>627</code>, fixes issue :issue:<code>[#264](https://github.com/pypa/build/issues/264)</code>)</li> <li>Test on Python 3.12 betas/RCs (PR :pr:<code>624</code>)</li> <li>Filter out malicious files when extracting tar archives when Python supports it (PR :pr:<code>609</code>)</li> <li>Specify encoding, fixing issues when <code>PYTHONWARNDEFAULTENCODING</code> is set. (PR :pr:<code>587</code>, fixes issue :issue:<code>577</code>)</li> <li>Ruff is now used for linting.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/build/commit/1fff01ed7440d5b5626fec31422026a4920b7764"><code>1fff01e</code></a> style: ignore W005, since we are build</li> <li><a href="https://github.com/pypa/build/commit/06e0481cee5321c3a755fd1675e15c3fa926d201"><code>06e0481</code></a> ci: build and test SDist/wheels</li> <li><a href="https://github.com/pypa/build/commit/ed308f1f4507182d8c0f67ee6ca288b6d73b1270"><code>ed308f1</code></a> Release 1.0.0</li> <li><a href="https://github.com/pypa/build/commit/5e35bee312980b297c438614bc08b479f906e460"><code>5e35bee</code></a> Update pyproject.toml</li> <li><a href="https://github.com/pypa/build/commit/d73f9067dac645816472d9cf4e14155a8eff9d46"><code>d73f906</code></a> Update pyproject.toml</li> <li><a href="https://github.com/pypa/build/commit/cabf511810d32df3012a28d7daa3b80e4a87f62a"><code>cabf511</code></a> Update CHANGELOG.rst</li> <li><a href="https://github.com/pypa/build/commit/bd0176b8ebe7ed2ce0d19e8e3a1646895dd1e8e7"><code>bd0176b</code></a> ci: include pyproject.toml for test changes</li> <li><a href="https://github.com/pypa/build/commit/57d5af5eaf469f63801366510427ba03fd15f3cd"><code>57d5af5</code></a> docs: update changelog for 0.11.0</li> <li><a href="https://github.com/pypa/build/commit/fa419f2d0835c0550f99d6403ea63eeab49a3839"><code>fa419f2</code></a> pre-commit: bump repositories</li> <li><a href="https://github.com/pypa/build/commit/59c1f87503914d04b634db3633d7189e8627e65b"><code>59c1f87</code></a> chore: add some exception handling minor cleanup checks</li> <li>Additional commits viewable in <a href="https://github.com/pypa/build/compare/0.10.0...1.0.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=build&package-manager=pip&previous-version=0.10.0&new-version=1.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>
Bumps [build](https://github.com/pypa/build) from 0.10.0 to 1.0.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pypa/build/releases">build's releases</a>.</em></p> <blockquote> <h2>1.0.0</h2> <h2>What's Changed</h2> <ul> <li>infra: replace flake8 with ruff by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/565">pypa/build#565</a></li> <li>Refactor <code>IsolatedEnv</code>, take two by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/537">pypa/build#537</a></li> <li>util: allow passing alternative runner to <code>project_wheel_metadata</code> by <a href="https://github.com/q0w"><code>@q0w</code></a> in <a href="https://redirect.github.com/pypa/build/pull/566">pypa/build#566</a></li> <li>ci: do not trigger workflow for RST file changes by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/568">pypa/build#568</a></li> <li>build: drop toml fallback by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/567">pypa/build#567</a></li> <li>infra: fix ruff configuration and add a few checks by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/573">pypa/build#573</a></li> <li>Minor doc fixes by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/574">pypa/build#574</a></li> <li>docs: reorder installation instructions by <a href="https://github.com/hauntsaninja"><code>@hauntsaninja</code></a> in <a href="https://redirect.github.com/pypa/build/pull/575">pypa/build#575</a></li> <li>Specify encoding by <a href="https://github.com/jaraco"><code>@jaraco</code></a> in <a href="https://redirect.github.com/pypa/build/pull/578">pypa/build#578</a></li> <li>infra: use latest Ruff instead of isort by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/581">pypa/build#581</a></li> <li>tests: report installed versions of common packages by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/588">pypa/build#588</a></li> <li>tests: strip formatting from stderr (pip 23) by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/589">pypa/build#589</a></li> <li>docs: remove direct references to PEP 517 in docs landing page by <a href="https://github.com/pradyunsg"><code>@pradyunsg</code></a> in <a href="https://redirect.github.com/pypa/build/pull/562">pypa/build#562</a></li> <li>docs: use sphinx-issues by <a href="https://github.com/FFY00"><code>@FFY00</code></a> in <a href="https://redirect.github.com/pypa/build/pull/590">pypa/build#590</a></li> <li>config: support running Ruff 0.258+ directly on source by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/591">pypa/build#591</a></li> <li>tests: useless .stdout detected by Ruff PR by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/594">pypa/build#594</a></li> <li>Fix link to installation page in docs by <a href="https://github.com/atugushev"><code>@atugushev</code></a> in <a href="https://redirect.github.com/pypa/build/pull/597">pypa/build#597</a></li> <li>fix: mypy update by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/606">pypa/build#606</a></li> <li>chore: minor cleanup by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/605">pypa/build#605</a></li> <li>chore: isort Ruff code was missing by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/604">pypa/build#604</a></li> <li>🎨🧪 Modularize GHA workflow through reuse by <a href="https://github.com/webknjaz"><code>@webknjaz</code></a> in <a href="https://redirect.github.com/pypa/build/pull/618">pypa/build#618</a></li> <li>Improve CLI help text by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/616">pypa/build#616</a></li> <li>ci: add 3.12 beta testing by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/624">pypa/build#624</a></li> <li>chore: remove unneeded target-version by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/634">pypa/build#634</a></li> <li>pre-commit: ruff moved to astral-sh by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/635">pypa/build#635</a></li> <li>main: filter out malicious files when extracting tar archives by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/609">pypa/build#609</a></li> <li>main: avoid cost of importing virtualenv if not using it by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/636">pypa/build#636</a></li> <li>Bump importlib metadata dependency by <a href="https://github.com/jaraco"><code>@jaraco</code></a> in <a href="https://redirect.github.com/pypa/build/pull/631">pypa/build#631</a></li> <li>main: ensure config_settings are passed to get_requires_for_build by <a href="https://github.com/jameshilliard"><code>@jameshilliard</code></a> in <a href="https://redirect.github.com/pypa/build/pull/627">pypa/build#627</a></li> <li>tests: add network marker by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/649">pypa/build#649</a></li> <li>chore: use 2x faster black mirror by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/652">pypa/build#652</a></li> <li>docs: bump furo/sphinx by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/660">pypa/build#660</a></li> <li>readme: touch up badge by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/659">pypa/build#659</a></li> <li>fix: include all files in SDist by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/657">pypa/build#657</a></li> <li>fix: tests & file inclusion update by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/661">pypa/build#661</a></li> <li>chore: add some exception handling minor cleanup checks by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/662">pypa/build#662</a></li> <li>docs: update changelog for 0.11.0 by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/664">pypa/build#664</a></li> <li>Release 1.0.0 by <a href="https://github.com/gaborbernat"><code>@gaborbernat</code></a> in <a href="https://redirect.github.com/pypa/build/pull/668">pypa/build#668</a></li> <li>ci: build and test SDist/wheels by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/669">pypa/build#669</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/q0w"><code>@q0w</code></a> made their first contribution in <a href="https://redirect.github.com/pypa/build/pull/566">pypa/build#566</a></li> <li><a href="https://github.com/atugushev"><code>@atugushev</code></a> made their first contribution in <a href="https://redirect.github.com/pypa/build/pull/597">pypa/build#597</a></li> <li><a href="https://github.com/jameshilliard"><code>@jameshilliard</code></a> made their first contribution in <a href="https://redirect.github.com/pypa/build/pull/627">pypa/build#627</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pypa/build/compare/0.10.0...1.0.0">https://github.com/pypa/build/compare/0.10.0...1.0.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/build/blob/main/CHANGELOG.rst">build's changelog</a>.</em></p> <blockquote> <h1>1.0.0 (2023-09-01)</h1> <ul> <li>Removed the <code>toml</code> library fallback; <code>toml</code> can no longer be used as a substitute for <code>tomli</code> (PR :pr:<code>567</code>)</li> <li>Added <code>runner</code> parameter to <code>util.project_wheel_metadata</code> (PR :pr:<code>566</code>, fixes issue :issue:<code>553</code>)</li> <li>Modified <code>ProjectBuilder</code> constructor signature, added alternative <code>ProjectBuilder.from_env</code> constructor, redefined <code>env.IsolatedEnv</code> interface, and exposed <code>env.DefaultIsolatedEnv</code>, replacing <code>env.IsolatedEnvBuilder</code>. The aim has been to shift responsibility for modifying the environment from the project builder to the <code>IsolatedEnv</code> entirely and to ensure that the builder will be initialised from an <code>IsolatedEnv</code> in a consistent manner. Mutating the project builder is no longer supported. (PR :pr:<code>537</code>)</li> <li><code>virtualenv</code> is no longer imported when using <code>-n</code>, for faster builds (PR :pr:<code>636</code>, fixes issue :issue:<code>510</code>)</li> <li>The SDist now contains the repository contents, including tests. Flit-core 3.8+ required. (PR :pr:<code>657</code>, :pr:<code>661</code>, fixes issue :issue:<code>656</code>)</li> <li>The minimum version of <code>importlib-metadata</code> has been increased to 4.6 and Python 3.10 due to a bug in the standard library version with URL requirements in extras. This is still not required for 3.8 when bootstrapping (as long as you don't have URL requirements in extras). (PR :pr:<code>631</code>, fixes issue :issue:<code>630</code>)</li> <li>Docs now built with Sphinx 7 (PR :pr:<code>660</code>)</li> <li>Tests now contain a <code>network</code> marker (PR :pr:<code>649</code>, fixes issue :issue:<code>648</code>)</li> <li>Config-settings are now passed to <code>get_requires*</code> hooks, fixing a long standing bug. If this affects your setuptools build, you can use <code>-C--build-option=<cmd> -C--build-option=<option></code> to workaround an issue with Setuptools not allowing unrecognised build options when running this hook. (PR :pr:<code>627</code>, fixes issue :issue:<code>[#264](https://github.com/pypa/build/issues/264)</code>)</li> <li>Test on Python 3.12 betas/RCs (PR :pr:<code>624</code>)</li> <li>Filter out malicious files when extracting tar archives when Python supports it (PR :pr:<code>609</code>)</li> <li>Specify encoding, fixing issues when <code>PYTHONWARNDEFAULTENCODING</code> is set. (PR :pr:<code>587</code>, fixes issue :issue:<code>577</code>)</li> <li>Ruff is now used for linting.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/build/commit/1fff01ed7440d5b5626fec31422026a4920b7764"><code>1fff01e</code></a> style: ignore W005, since we are build</li> <li><a href="https://github.com/pypa/build/commit/06e0481cee5321c3a755fd1675e15c3fa926d201"><code>06e0481</code></a> ci: build and test SDist/wheels</li> <li><a href="https://github.com/pypa/build/commit/ed308f1f4507182d8c0f67ee6ca288b6d73b1270"><code>ed308f1</code></a> Release 1.0.0</li> <li><a href="https://github.com/pypa/build/commit/5e35bee312980b297c438614bc08b479f906e460"><code>5e35bee</code></a> Update pyproject.toml</li> <li><a href="https://github.com/pypa/build/commit/d73f9067dac645816472d9cf4e14155a8eff9d46"><code>d73f906</code></a> Update pyproject.toml</li> <li><a href="https://github.com/pypa/build/commit/cabf511810d32df3012a28d7daa3b80e4a87f62a"><code>cabf511</code></a> Update CHANGELOG.rst</li> <li><a href="https://github.com/pypa/build/commit/bd0176b8ebe7ed2ce0d19e8e3a1646895dd1e8e7"><code>bd0176b</code></a> ci: include pyproject.toml for test changes</li> <li><a href="https://github.com/pypa/build/commit/57d5af5eaf469f63801366510427ba03fd15f3cd"><code>57d5af5</code></a> docs: update changelog for 0.11.0</li> <li><a href="https://github.com/pypa/build/commit/fa419f2d0835c0550f99d6403ea63eeab49a3839"><code>fa419f2</code></a> pre-commit: bump repositories</li> <li><a href="https://github.com/pypa/build/commit/59c1f87503914d04b634db3633d7189e8627e65b"><code>59c1f87</code></a> chore: add some exception handling minor cleanup checks</li> <li>Additional commits viewable in <a href="https://github.com/pypa/build/compare/0.10.0...1.0.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=build&package-manager=pip&previous-version=0.10.0&new-version=1.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>
Addressed by #627. |
I am a little lost here. Our build script needs a boolean input to enable some behaviour in the In build
In build 1.0 this now errors when arguments are parsed in Could someone point me to some documentation or an example on how to achieve this in the new version. |
This is a bug in setuptools. Ideally it should be fixed there. See / upvote pypa/setuptools#3896. There are two options. Ons is you can try using export DIST_EXTRA_CONFIG=... # e.g. /tmp/build-opts.cfg
echo -e "[bdist_wheel]\nfind-libs=True" > $DIST_EXTRA_CONFIG
python -m build Or, echo -e "\n[bdist_wheel]\nfind-libs=True" >> setup.cfg
python -m build (Please note that the first one assumes you are not already setting |
I tried this |
Okay, great (and yes it does do that, so a pretty bad workaround). I think another workaround at the package level could be adding the custom options to the other commands (just Another author workaround would be to wrap the PEP 517 build hooks and remove That would look like this: # _custom_build/backend.py
from setuptools import build_meta as _orig
from setuptools.build_meta import *
def get_requires_for_build_wheel(config_settings=None):
return _orig.get_requires_for_build_wheel()
def get_requires_for_build_sdist(config_settings=None):
return _orig.get_requires_for_build_sdist()
def get_requires_for_build_editable(config_settings=None):
return _orig. get_requires_for_build_editable() [build-system]
requires = ["setuptools"]
build-backend = "backend"
backend-path = ["_custom_build"] |
I have just tried using an environment variable and that seems to work and sidesteps this mess. |
Bumps [build](https://github.com/pypa/build) from 0.10.0 to 1.0.3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pypa/build/releases">build's releases</a>.</em></p> <blockquote> <h2>Version 1.0.3</h2> <h2>What's Changed</h2> <ul> <li>fix: avoid bug in various patch releases of Python by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/675">pypa/build#675</a></li> <li>changelog: fix issue reference by <a href="https://github.com/michael-k"><code>@michael-k</code></a> in <a href="https://redirect.github.com/pypa/build/pull/671">pypa/build#671</a></li> <li>tox: format file by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/678">pypa/build#678</a></li> <li>chore: bump to 1.0.3 by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/681">pypa/build#681</a></li> <li>chore: release 1.0.1 by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/677">pypa/build#677</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/michael-k"><code>@michael-k</code></a> made their first contribution in <a href="https://redirect.github.com/pypa/build/pull/671">pypa/build#671</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pypa/build/compare/1.0.0...1.0.3">https://github.com/pypa/build/compare/1.0.0...1.0.3</a></p> <h2>Version 1.0.0</h2> <h2>What's Changed</h2> <ul> <li>infra: replace flake8 with ruff by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/565">pypa/build#565</a></li> <li>Refactor <code>IsolatedEnv</code>, take two by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/537">pypa/build#537</a></li> <li>util: allow passing alternative runner to <code>project_wheel_metadata</code> by <a href="https://github.com/q0w"><code>@q0w</code></a> in <a href="https://redirect.github.com/pypa/build/pull/566">pypa/build#566</a></li> <li>ci: do not trigger workflow for RST file changes by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/568">pypa/build#568</a></li> <li>build: drop toml fallback by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/567">pypa/build#567</a></li> <li>infra: fix ruff configuration and add a few checks by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/573">pypa/build#573</a></li> <li>Minor doc fixes by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/574">pypa/build#574</a></li> <li>docs: reorder installation instructions by <a href="https://github.com/hauntsaninja"><code>@hauntsaninja</code></a> in <a href="https://redirect.github.com/pypa/build/pull/575">pypa/build#575</a></li> <li>Specify encoding by <a href="https://github.com/jaraco"><code>@jaraco</code></a> in <a href="https://redirect.github.com/pypa/build/pull/578">pypa/build#578</a></li> <li>infra: use latest Ruff instead of isort by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/581">pypa/build#581</a></li> <li>tests: report installed versions of common packages by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/588">pypa/build#588</a></li> <li>tests: strip formatting from stderr (pip 23) by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/589">pypa/build#589</a></li> <li>docs: remove direct references to PEP 517 in docs landing page by <a href="https://github.com/pradyunsg"><code>@pradyunsg</code></a> in <a href="https://redirect.github.com/pypa/build/pull/562">pypa/build#562</a></li> <li>docs: use sphinx-issues by <a href="https://github.com/FFY00"><code>@FFY00</code></a> in <a href="https://redirect.github.com/pypa/build/pull/590">pypa/build#590</a></li> <li>config: support running Ruff 0.258+ directly on source by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/591">pypa/build#591</a></li> <li>tests: useless .stdout detected by Ruff PR by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/594">pypa/build#594</a></li> <li>Fix link to installation page in docs by <a href="https://github.com/atugushev"><code>@atugushev</code></a> in <a href="https://redirect.github.com/pypa/build/pull/597">pypa/build#597</a></li> <li>fix: mypy update by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/606">pypa/build#606</a></li> <li>chore: minor cleanup by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/605">pypa/build#605</a></li> <li>chore: isort Ruff code was missing by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/604">pypa/build#604</a></li> <li>🎨🧪 Modularize GHA workflow through reuse by <a href="https://github.com/webknjaz"><code>@webknjaz</code></a> in <a href="https://redirect.github.com/pypa/build/pull/618">pypa/build#618</a></li> <li>Improve CLI help text by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/616">pypa/build#616</a></li> <li>ci: add 3.12 beta testing by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/624">pypa/build#624</a></li> <li>chore: remove unneeded target-version by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/634">pypa/build#634</a></li> <li>pre-commit: ruff moved to astral-sh by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/635">pypa/build#635</a></li> <li>main: filter out malicious files when extracting tar archives by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/609">pypa/build#609</a></li> <li>main: avoid cost of importing virtualenv if not using it by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/636">pypa/build#636</a></li> <li>Bump importlib metadata dependency by <a href="https://github.com/jaraco"><code>@jaraco</code></a> in <a href="https://redirect.github.com/pypa/build/pull/631">pypa/build#631</a></li> <li>main: ensure config_settings are passed to get_requires_for_build by <a href="https://github.com/jameshilliard"><code>@jameshilliard</code></a> in <a href="https://redirect.github.com/pypa/build/pull/627">pypa/build#627</a></li> <li>tests: add network marker by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/649">pypa/build#649</a></li> <li>chore: use 2x faster black mirror by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/652">pypa/build#652</a></li> <li>docs: bump furo/sphinx by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/660">pypa/build#660</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/build/blob/main/CHANGELOG.rst">build's changelog</a>.</em></p> <blockquote> <h1>1.0.3 (2023-09-06)</h1> <ul> <li>Avoid CPython 3.8.17, 3.9.17, 3.10.12, and 3.11.4 tarfile symlink bug triggered by adding <code>data_filter</code> in 1.0.0. (PR :pr:<code>675</code>, fixes issue :issue:<code>674</code>)</li> </ul> <h1>1.0.0 (2023-09-01)</h1> <ul> <li>Removed the <code>toml</code> library fallback; <code>toml</code> can no longer be used as a substitute for <code>tomli</code> (PR :pr:<code>567</code>)</li> <li>Added <code>runner</code> parameter to <code>util.project_wheel_metadata</code> (PR :pr:<code>566</code>, fixes issue :issue:<code>553</code>)</li> <li>Modified <code>ProjectBuilder</code> constructor signature, added alternative <code>ProjectBuilder.from_env</code> constructor, redefined <code>env.IsolatedEnv</code> interface, and exposed <code>env.DefaultIsolatedEnv</code>, replacing <code>env.IsolatedEnvBuilder</code>. The aim has been to shift responsibility for modifying the environment from the project builder to the <code>IsolatedEnv</code> entirely and to ensure that the builder will be initialised from an <code>IsolatedEnv</code> in a consistent manner. Mutating the project builder is no longer supported. (PR :pr:<code>537</code>)</li> <li><code>virtualenv</code> is no longer imported when using <code>-n</code>, for faster builds (PR :pr:<code>636</code>, fixes issue :issue:<code>510</code>)</li> <li>The SDist now contains the repository contents, including tests. Flit-core 3.8+ required. (PR :pr:<code>657</code>, :pr:<code>661</code>, fixes issue :issue:<code>656</code>)</li> <li>The minimum version of <code>importlib-metadata</code> has been increased to 4.6 and Python 3.10 due to a bug in the standard library version with URL requirements in extras. This is still not required for 3.8 when bootstrapping (as long as you don't have URL requirements in extras). (PR :pr:<code>631</code>, fixes issue :issue:<code>630</code>)</li> <li>Docs now built with Sphinx 7 (PR :pr:<code>660</code>)</li> <li>Tests now contain a <code>network</code> marker (PR :pr:<code>649</code>, fixes issue :issue:<code>648</code>)</li> <li>Config-settings are now passed to <code>get_requires*</code> hooks, fixing a long standing bug. If this affects your setuptools build, you can use <code>-C--build-option=<cmd> -C--build-option=<option></code> to workaround an issue with Setuptools not allowing unrecognised build options when running this hook. (PR :pr:<code>627</code>, fixes issue :issue:<code>[#264](https://github.com/pypa/build/issues/264)</code>)</li> <li>Test on Python 3.12 betas/RCs (PR :pr:<code>624</code>)</li> <li>Filter out malicious files when extracting tar archives when Python supports it (PR :pr:<code>609</code>)</li> <li>Specify encoding, fixing issues when <code>PYTHONWARNDEFAULTENCODING</code> is set.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/build/commit/38d1a688d5e05557a929245ada14d106f3e5b547"><code>38d1a68</code></a> chore: bump to 1.0.3</li> <li><a href="https://github.com/pypa/build/commit/17cefaf178a2c08abe319d90f8b9690707007f35"><code>17cefaf</code></a> tox: format file</li> <li><a href="https://github.com/pypa/build/commit/c48f4ca7cbe84f027f37ad575713870f5f4f7818"><code>c48f4ca</code></a> chore: release 1.0.1</li> <li><a href="https://github.com/pypa/build/commit/4b61b8e1344324dbf43c7b59b5cf61835b8fa2e3"><code>4b61b8e</code></a> Apply suggestions from code review</li> <li><a href="https://github.com/pypa/build/commit/d6138f59f35bef619db9c071a45f9c13956c1571"><code>d6138f5</code></a> fix: avoid bug in various patch releases of Python</li> <li><a href="https://github.com/pypa/build/commit/eada8112cdfa342390e02e1258da6795a19ada36"><code>eada811</code></a> build(deps): bump actions/checkout from 3 to 4 (<a href="https://redirect.github.com/pypa/build/issues/673">#673</a>)</li> <li><a href="https://github.com/pypa/build/commit/955e69786fa5a4be0b7fd15e13dfb58ba044ae35"><code>955e697</code></a> pre-commit: bump repositories (<a href="https://redirect.github.com/pypa/build/issues/672">#672</a>)</li> <li><a href="https://github.com/pypa/build/commit/f51c089ddc608472f34dec002237af3de2d48c43"><code>f51c089</code></a> changelog: fix issue reference</li> <li><a href="https://github.com/pypa/build/commit/1fff01ed7440d5b5626fec31422026a4920b7764"><code>1fff01e</code></a> style: ignore W005, since we are build</li> <li><a href="https://github.com/pypa/build/commit/06e0481cee5321c3a755fd1675e15c3fa926d201"><code>06e0481</code></a> ci: build and test SDist/wheels</li> <li>Additional commits viewable in <a href="https://github.com/pypa/build/compare/0.10.0...1.0.3">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=build&package-manager=pip&previous-version=0.10.0&new-version=1.0.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [build](https://github.com/pypa/build) from 0.10.0 to 1.0.3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pypa/build/releases">build's releases</a>.</em></p> <blockquote> <h2>Version 1.0.3</h2> <h2>What's Changed</h2> <ul> <li>fix: avoid bug in various patch releases of Python by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/675">pypa/build#675</a></li> <li>changelog: fix issue reference by <a href="https://github.com/michael-k"><code>@michael-k</code></a> in <a href="https://redirect.github.com/pypa/build/pull/671">pypa/build#671</a></li> <li>tox: format file by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/678">pypa/build#678</a></li> <li>chore: bump to 1.0.3 by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/681">pypa/build#681</a></li> <li>chore: release 1.0.1 by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/677">pypa/build#677</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/michael-k"><code>@michael-k</code></a> made their first contribution in <a href="https://redirect.github.com/pypa/build/pull/671">pypa/build#671</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pypa/build/compare/1.0.0...1.0.3">https://github.com/pypa/build/compare/1.0.0...1.0.3</a></p> <h2>Version 1.0.0</h2> <h2>What's Changed</h2> <ul> <li>infra: replace flake8 with ruff by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/565">pypa/build#565</a></li> <li>Refactor <code>IsolatedEnv</code>, take two by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/537">pypa/build#537</a></li> <li>util: allow passing alternative runner to <code>project_wheel_metadata</code> by <a href="https://github.com/q0w"><code>@q0w</code></a> in <a href="https://redirect.github.com/pypa/build/pull/566">pypa/build#566</a></li> <li>ci: do not trigger workflow for RST file changes by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/568">pypa/build#568</a></li> <li>build: drop toml fallback by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/567">pypa/build#567</a></li> <li>infra: fix ruff configuration and add a few checks by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/573">pypa/build#573</a></li> <li>Minor doc fixes by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/574">pypa/build#574</a></li> <li>docs: reorder installation instructions by <a href="https://github.com/hauntsaninja"><code>@hauntsaninja</code></a> in <a href="https://redirect.github.com/pypa/build/pull/575">pypa/build#575</a></li> <li>Specify encoding by <a href="https://github.com/jaraco"><code>@jaraco</code></a> in <a href="https://redirect.github.com/pypa/build/pull/578">pypa/build#578</a></li> <li>infra: use latest Ruff instead of isort by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/581">pypa/build#581</a></li> <li>tests: report installed versions of common packages by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/588">pypa/build#588</a></li> <li>tests: strip formatting from stderr (pip 23) by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/589">pypa/build#589</a></li> <li>docs: remove direct references to PEP 517 in docs landing page by <a href="https://github.com/pradyunsg"><code>@pradyunsg</code></a> in <a href="https://redirect.github.com/pypa/build/pull/562">pypa/build#562</a></li> <li>docs: use sphinx-issues by <a href="https://github.com/FFY00"><code>@FFY00</code></a> in <a href="https://redirect.github.com/pypa/build/pull/590">pypa/build#590</a></li> <li>config: support running Ruff 0.258+ directly on source by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/591">pypa/build#591</a></li> <li>tests: useless .stdout detected by Ruff PR by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/594">pypa/build#594</a></li> <li>Fix link to installation page in docs by <a href="https://github.com/atugushev"><code>@atugushev</code></a> in <a href="https://redirect.github.com/pypa/build/pull/597">pypa/build#597</a></li> <li>fix: mypy update by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/606">pypa/build#606</a></li> <li>chore: minor cleanup by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/605">pypa/build#605</a></li> <li>chore: isort Ruff code was missing by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/604">pypa/build#604</a></li> <li>🎨🧪 Modularize GHA workflow through reuse by <a href="https://github.com/webknjaz"><code>@webknjaz</code></a> in <a href="https://redirect.github.com/pypa/build/pull/618">pypa/build#618</a></li> <li>Improve CLI help text by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/616">pypa/build#616</a></li> <li>ci: add 3.12 beta testing by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/624">pypa/build#624</a></li> <li>chore: remove unneeded target-version by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/634">pypa/build#634</a></li> <li>pre-commit: ruff moved to astral-sh by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/635">pypa/build#635</a></li> <li>main: filter out malicious files when extracting tar archives by <a href="https://github.com/layday"><code>@layday</code></a> in <a href="https://redirect.github.com/pypa/build/pull/609">pypa/build#609</a></li> <li>main: avoid cost of importing virtualenv if not using it by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/636">pypa/build#636</a></li> <li>Bump importlib metadata dependency by <a href="https://github.com/jaraco"><code>@jaraco</code></a> in <a href="https://redirect.github.com/pypa/build/pull/631">pypa/build#631</a></li> <li>main: ensure config_settings are passed to get_requires_for_build by <a href="https://github.com/jameshilliard"><code>@jameshilliard</code></a> in <a href="https://redirect.github.com/pypa/build/pull/627">pypa/build#627</a></li> <li>tests: add network marker by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/649">pypa/build#649</a></li> <li>chore: use 2x faster black mirror by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/652">pypa/build#652</a></li> <li>docs: bump furo/sphinx by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/build/pull/660">pypa/build#660</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/build/blob/main/CHANGELOG.rst">build's changelog</a>.</em></p> <blockquote> <h1>1.0.3 (2023-09-06)</h1> <ul> <li>Avoid CPython 3.8.17, 3.9.17, 3.10.12, and 3.11.4 tarfile symlink bug triggered by adding <code>data_filter</code> in 1.0.0. (PR :pr:<code>675</code>, fixes issue :issue:<code>674</code>)</li> </ul> <h1>1.0.0 (2023-09-01)</h1> <ul> <li>Removed the <code>toml</code> library fallback; <code>toml</code> can no longer be used as a substitute for <code>tomli</code> (PR :pr:<code>567</code>)</li> <li>Added <code>runner</code> parameter to <code>util.project_wheel_metadata</code> (PR :pr:<code>566</code>, fixes issue :issue:<code>553</code>)</li> <li>Modified <code>ProjectBuilder</code> constructor signature, added alternative <code>ProjectBuilder.from_env</code> constructor, redefined <code>env.IsolatedEnv</code> interface, and exposed <code>env.DefaultIsolatedEnv</code>, replacing <code>env.IsolatedEnvBuilder</code>. The aim has been to shift responsibility for modifying the environment from the project builder to the <code>IsolatedEnv</code> entirely and to ensure that the builder will be initialised from an <code>IsolatedEnv</code> in a consistent manner. Mutating the project builder is no longer supported. (PR :pr:<code>537</code>)</li> <li><code>virtualenv</code> is no longer imported when using <code>-n</code>, for faster builds (PR :pr:<code>636</code>, fixes issue :issue:<code>510</code>)</li> <li>The SDist now contains the repository contents, including tests. Flit-core 3.8+ required. (PR :pr:<code>657</code>, :pr:<code>661</code>, fixes issue :issue:<code>656</code>)</li> <li>The minimum version of <code>importlib-metadata</code> has been increased to 4.6 and Python 3.10 due to a bug in the standard library version with URL requirements in extras. This is still not required for 3.8 when bootstrapping (as long as you don't have URL requirements in extras). (PR :pr:<code>631</code>, fixes issue :issue:<code>630</code>)</li> <li>Docs now built with Sphinx 7 (PR :pr:<code>660</code>)</li> <li>Tests now contain a <code>network</code> marker (PR :pr:<code>649</code>, fixes issue :issue:<code>648</code>)</li> <li>Config-settings are now passed to <code>get_requires*</code> hooks, fixing a long standing bug. If this affects your setuptools build, you can use <code>-C--build-option=<cmd> -C--build-option=<option></code> to workaround an issue with Setuptools not allowing unrecognised build options when running this hook. (PR :pr:<code>627</code>, fixes issue :issue:<code>[#264](https://github.com/pypa/build/issues/264)</code>)</li> <li>Test on Python 3.12 betas/RCs (PR :pr:<code>624</code>)</li> <li>Filter out malicious files when extracting tar archives when Python supports it (PR :pr:<code>609</code>)</li> <li>Specify encoding, fixing issues when <code>PYTHONWARNDEFAULTENCODING</code> is set.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/build/commit/38d1a688d5e05557a929245ada14d106f3e5b547"><code>38d1a68</code></a> chore: bump to 1.0.3</li> <li><a href="https://github.com/pypa/build/commit/17cefaf178a2c08abe319d90f8b9690707007f35"><code>17cefaf</code></a> tox: format file</li> <li><a href="https://github.com/pypa/build/commit/c48f4ca7cbe84f027f37ad575713870f5f4f7818"><code>c48f4ca</code></a> chore: release 1.0.1</li> <li><a href="https://github.com/pypa/build/commit/4b61b8e1344324dbf43c7b59b5cf61835b8fa2e3"><code>4b61b8e</code></a> Apply suggestions from code review</li> <li><a href="https://github.com/pypa/build/commit/d6138f59f35bef619db9c071a45f9c13956c1571"><code>d6138f5</code></a> fix: avoid bug in various patch releases of Python</li> <li><a href="https://github.com/pypa/build/commit/eada8112cdfa342390e02e1258da6795a19ada36"><code>eada811</code></a> build(deps): bump actions/checkout from 3 to 4 (<a href="https://redirect.github.com/pypa/build/issues/673">#673</a>)</li> <li><a href="https://github.com/pypa/build/commit/955e69786fa5a4be0b7fd15e13dfb58ba044ae35"><code>955e697</code></a> pre-commit: bump repositories (<a href="https://redirect.github.com/pypa/build/issues/672">#672</a>)</li> <li><a href="https://github.com/pypa/build/commit/f51c089ddc608472f34dec002237af3de2d48c43"><code>f51c089</code></a> changelog: fix issue reference</li> <li><a href="https://github.com/pypa/build/commit/1fff01ed7440d5b5626fec31422026a4920b7764"><code>1fff01e</code></a> style: ignore W005, since we are build</li> <li><a href="https://github.com/pypa/build/commit/06e0481cee5321c3a755fd1675e15c3fa926d201"><code>06e0481</code></a> ci: build and test SDist/wheels</li> <li>Additional commits viewable in <a href="https://github.com/pypa/build/compare/0.10.0...1.0.3">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=build&package-manager=pip&previous-version=0.10.0&new-version=1.0.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Looks like setuptools accidentially broken this in #4079, I have a PR reverting that in #4218 |
build/src/build/__main__.py
Line 58 in 2c1da83
When using python -m build. The config_settings dictionary is always None in the get_requires_for_build_* callbacks regardless of the options passed on the command line.
The fix is to pass in config_settings dictionary to get_dependencies on the call on the referenced line.
I will likely have the time to add a pull request in a few days.
The text was updated successfully, but these errors were encountered: