lincc-frameworks / lincc-frameworks/python-project-template
Use dependency-group for "dev" and other non-user-facing dependencies
Nobody has claimed this yet.
- Dominant language
- Jinja
- Stars
- 85
- Forks
- 16
- Avg merge
- 6h 18m
- Merged PRs (30d)
- 1
Description
`pyproject.toml` specifies two types of dependency sets: "extras" and "groups." The first is specified by `[project.optional-dependencies]` (this is what we have now), and the second is specified by `[dependency-groups]`. Extras may be installed with the `package-name[extra-name]` syntax, while groups are not supposed to be user-facing, are not listed on PyPI, and may be installed with the `--group` flag.
I propose making "dev" a dependency group in the template and changing CI/setup scripts to use it this way. This will make the extras list cleaner.
https://packaging.python.org/en/latest/specifications/pyproject-toml/#dependencies-optional-dependencies
https://packaging.python.org/en/latest/specifications/dependency-groups/
**LSDB at PyPI**
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by inspecting the template's pyproject.toml along with the CI and setup scripts that install the dev dependencies. Update the template so dev and other non-user-facing dependencies use [dependency-groups] and ensure those scripts use the group mechanism; done means the extras list no longer contains dev dependencies and the generated project setup remains functional.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system, ci-cd
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100