-
Notifications
You must be signed in to change notification settings - Fork 36
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
Difficulties in packaging #138
Comments
This is the right place! Thanks for laying out the issues. I plan to take a look later today. |
See #48 where I talk about the motivations for having these plugins in the default test suite. I can imagine splitting out each plugin into its own extra, so running the full test suite would require installing The only two "standard" extras are "doc" and "test", so adding new ones would be bespoke to skeleton-based projects, a convention but not a standard. Because of the way I've implemented So overall, I'm slightly reluctant to add the extra dimensionality of multiple optional dependencies, especially when I think about the toil this will create around applying it to hundreds of downstream projects. Let me draft the patch and see how it would look in practice and how well it merges into downstream projects.
I can see the value in this. I also try to provide a reason with any pins, so you can probably look at the annotated history for any given change and see within a few commits when it was changed and hopefully why. In the case of |
|
You can do: [project]
name = "PROJECT"
[project.optional-dependencies]
test = [ ]
test-cov = [
"PROJECT[test]",
] |
…ck). Allows for easier exclusion by downstream integrators. Ref #138
I'm a little reluctant to add self references, because that entails customizing that setting for each and every downstream project. If I don't think it's necessary for the ancillary dependencies. Each is fairly independent, except that In #139, I explore this possibility. |
It also occurs to me, this concern goes away if skeleton-based projects migrate instead to the Coherent System. In that system, these dependencies are managed at the infrastructure level so would be present when using Coherent tooling, but would be undeclared so an integrator would need to replicate or tweak the Coherent tooling to install and test without them. |
The Coherent System solves so many problems! 😅 |
Hi @jaraco I don't know the best place to contact you for this, but hopefully this would be a relevant place to do so.
I am trying to package some of your packages to Fedora (already packaged) and EPEL9, and most of your projects are derived from your skeleton repo and I have a few issues I would like to discuss if you could make some changes to make our lives a bit easier:
testing
optional dependency to be as minimal as possible. Other developer's dependencies likepytest-cov
could be moved totest-cov
optional dependency. Other dependencies that we are patching out:pytest-checkdocs
,pytest-mypy
,pytest-ruff
.pytest-enabler
is also disabled, but it might be good to add it eventually.setuptools>=61
is unclear why this lower bound is used since PEP517 seems to have been available way before that.This is particularly important because of the package
importlib_resources
that you are maintaining containing various fixes that need to be backported to lower python version and packaging to long-term distros including EPEL9.The text was updated successfully, but these errors were encountered: