python-poetry / python-poetry/poetry
Consider making keyring an optional / extras dep for poetry
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 34.3k
- Forks
- 2.5k
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 30
Description
- I have searched the issues of this repo and believe that this is not a duplicate.
- I have searched the FAQ and general documentation and believe that my question is not already covered.
Feature Request
We use poetry for dep-pinning, and it's great. However, I do have one issue, which is that I'm supporting platforms for which the cryptography module is not available. Poetry has a dependency on linux on cryptography via:
│ ├── keyring >=23.9.0,<24.0.0
│ │ └── secretstorage >=3.2
│ │ ├── cryptography >=2.0
│ │ │ └── cffi >=1.12
│ │ │ └── pycparser *
│ │ └── jeepney >=0.6 (circular dependency aborted here)
On these platforms, I wouldn't need publish functionality, and looking through the code it seems like poetry already treats the keyring functionality as optional (via _is_available). Would it be possible to move keyring to be an extra/optional dep in pyproject.toml? Thanks!
Contributor guide
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 reviewing the keyring dependency declaration in pyproject.toml and the existing _is_available check mentioned in the issue. Trace the installation and publish-related paths that rely on keyring, then verify that making it optional preserves Poetry's behavior on platforms without cryptography.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100