Summary
Remove setuptools as an explicit runtime dependency. It was added to support the eutils package's use of pkg_resources, which is no longer needed once eutils is removed in the migration to BioPython.
Problem
setuptools was added to pyproject.toml as a main (non-optional) dependency to provide pkg_resources functionality required by the eutils package. The eutils package itself is being deprecated and removed in favor of BioPython. Once that migration is complete, setuptools will no longer be needed.
Keeping unnecessary dependencies increases the attack surface, complicates dependency resolution, and increases installation size. This dependency should be removed as part of the eutils removal work.
Proposed behavior
After the eutils to BioPython migration is complete and merged:
- Remove the
setuptools = "~81.0.0" line from the main dependencies in pyproject.toml
- Restore
setuptools to the build-system requires if it is needed there for the build process (or leave it out if poetry-core is sufficient)
- Run
poetry lock to update poetry.lock
- Verify all tests pass without setuptools as a runtime dependency
Acceptance criteria
Implementation notes
- This is a follow-up task to the eutils deprecation and removal work
- Ensure this issue is not closed until the eutils removal is merged and confirmed to not use pkg_resources anywhere else
- If setuptools is needed for the build process, it may remain in the build-system requires section, but it should not be a runtime dependency
- This should be a low-risk change once eutils is gone
Summary
Remove setuptools as an explicit runtime dependency. It was added to support the eutils package's use of pkg_resources, which is no longer needed once eutils is removed in the migration to BioPython.
Problem
setuptools was added to pyproject.toml as a main (non-optional) dependency to provide pkg_resources functionality required by the eutils package. The eutils package itself is being deprecated and removed in favor of BioPython. Once that migration is complete, setuptools will no longer be needed.
Keeping unnecessary dependencies increases the attack surface, complicates dependency resolution, and increases installation size. This dependency should be removed as part of the eutils removal work.
Proposed behavior
After the eutils to BioPython migration is complete and merged:
setuptools = "~81.0.0"line from the main dependencies in pyproject.tomlsetuptoolsto the build-system requires if it is needed there for the build process (or leave it out if poetry-core is sufficient)poetry lockto update poetry.lockAcceptance criteria
Implementation notes