-
Notifications
You must be signed in to change notification settings - Fork 44
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
Use setuptools_scm instead of custom version determination code #180
Conversation
7dab9f6
to
598b2cf
Compare
This looks good. I assume the coverage reduction is a false positive due to the smaller number of total lines, due in turn to code removed from setup.py? FWIW for anyone else reviewing, setuptools_scm looks like a safe, well-maintained dependency, with 18M downloads per month at time of writing. Some remarks:
I've done a bit of testing; below is what I found on my Ubuntu 20.04 machine. Main issue is that conda in-place build fails.
A non-conda in-place build works, though the first time I tried it I got this message:
I changed my venv creation to have a newer version of setuptools, and all was fine (see below).
However, a conda in-place build did not work; the build is fine, but
conda in-place build:
|
Let's do that. |
This needs some further investigation. Maybe it is better to not rely on importlib[._]metadata and use a setuptools_scm generated Should we include such build schemes into the CI? |
Thanks, that fixed the conda in-place build problem, and the other two builds are still good.
No idea. We have 6 dependents according to libraries.io. We're back to this, I reckon leave as-is.
I'm not sure. The build setup that matters most to me for development is a conda environment with in-place build; that lets me easily test and debug Slycot on different Python versions. The build setup that matters most for use of Slycot is the conda-forge feedstock. I think we can merge - did you want to change anything else? |
Can we hold on for a little bit? I am considering to move more metadata from setup.py to pyproject.toml. |
This eliminates the need of a custom setup.cfg.in and _version.py.in in our sources. It also removes the custom 4 part versioning scheme with PEP404 compliant schemes.