Mercurial 7.0 and packaging
PIERRE AUGIER
pierre.augier at univ-grenoble-alpes.fr
Thu Jan 30 15:04:45 UTC 2025
Dear mercurial package managers,
These last weeks, I worked a bit on Mercurial to modernize the build system and make it more compatible with modern Python packaging ecosystem (related in particular to PEP 517).
With Mercurial 6.9, it was already no longer possible to use `--no-use-pep517` and as the maintainer of the Mercurial conda-forge recipe, I had to do this change:
- $PYTHON -m pip install --no-deps --ignore-installed -vv --no-use-pep517 --global-option --rust .
+ $PYTHON -m pip install --no-deps --ignore-installed -vv --config-settings --global-option=--rust .
(Note that it seems to me that it it not yet advised to package the Mercurial Rust extension, but it is another story.)
Mercurial 7.0, which should be released at the beginning of March, will introduce other changes.
1. Calling directly setup.py can fail and one should use a PEP 517 front-end (for example pip or PyPA build).
Do you still call setup.py directly?
2. I wonder if it is really useful and necessary to include the built documentation (.html and man pages) in the sdist. It is a bit strange for a Python package to include docutils in build-system.requires in pyproject.toml to build something that is not useful for the wheels.
Would it be an issue for you if you had to generate the documentation from the sdist (it is simple and cheap)?
Anyway, it's going to be important to check your recipes for Mercurial 7.0.
Pierre
More information about the Mercurial-packaging
mailing list