Using a pyproject.toml file
For what it's worth, pyproject.toml seems to have been adopted without much
friction in SciPy. In some CI runs in SciPy, we use something like "pip
wheel --no-build-isolation -v -v -v" to disable the isolation in any case.
I suppose NumPy is indeed even closer to the base of the ecosystem, but the
ease of disabling may mitigate concerns related to switching from
system-installed dependencies to an isolated environment for a naive "pip
install"
Tyler
On Sun, 14 Jul 2019 at 08:47, Matti Picus
In PR #13908 I implemented the previously-discussed new method of creating the release notes: writing separate fragments and then combining them at release time via towncrier. Towncrier requires a PEP-508/PEP-517/PEP-518 pyproject.toml file for configuration, and does not currently support a command line option to specify a different location for this file. That means that we now must ship a pyproject.toml file, which subtlely changes the way "pip install ." builds NumPy: it does an "isolated build" https://pip.pypa.io/en/stable/reference/pip/#pep-517-and-518-support
Questions:
- Is the pain of adding a pyproject.toml worth it for using towncrier or should we o for another release-note solution
- Is the addition of pyproject.toml problematic enough that I should break it out into a separate pull request for evaluation?
Matti _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion
su, 2019-07-14 kello 09:46 -0500, Matti Picus kirjoitti: [clip]
Questions: - Is the pain of adding a pyproject.toml worth it for using towncrier or should we o for another release-note solution - Is the addition of pyproject.toml problematic enough that I should break it out into a separate pull request for evaluation?
This decision is probably better to make separately, without towncrier as a motivation, since there is some end-user impact (would e.g. have to be mentioned in release notes). You probably also need to disable build isolation in numpy-wheels, to manage the dependency versions manually. It probably also should be mentioned in install instructions somewhere. The main thing to watch out with introducing pyproject.toml is that build-time dependencies for non-pure-Python packages work properly only with pip 19 (unless they have wheels), which is fairly recent. Currently, numpy doesn't appear to have any build deps, so this probably does not matter. However, if you introduce Cython as a build- dep, it would solve the problem of installing numpy from without Cython pre-installed, and allows you to get rid of cythonize.py and hacks associated with setup_requires. Scipy 1.3.0 has pyproject.toml, and so far it seems the number of problems associated with it on the issue tracker is very small. Since it's becoming more common, downstream is forced to adjust infrastructure anyway, so Numpy hopping onto the wagon probably won't be a big impact for them. Pauli
participants (3)
-
Matti Picus
-
Pauli Virtanen
-
Tyler Reddy