lincc-frameworks / lincc-frameworks/python-project-template

Use dependency-group for "dev" and other non-user-facing dependencies

Open
#580 1 comment 1 reaction 0 assignees View on GitHub

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**
Image

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.