Skip to content

Conversation

@karyotakisg
Copy link
Contributor

As part of our ongoing research on Python dependency management we noticed a potential improvement in your project’s dependency management.

Specifically, the transitive dependency zope.interface of package Twisted is specified as a requirement in the requirements.txt file, when in reality it is not needed.

This PR removes it from requirements.txt to let pip manage it automatically, which helps keeping the dependency list clean.

Hope this is helpful!

Best regards

@sibson
Copy link
Owner

sibson commented Jul 16, 2025

Is there a PEP that states this is the best practice?

@karyotakisg
Copy link
Contributor Author

karyotakisg commented Jul 17, 2025

Hi again,
Pip documentation states that it is useful to audit your project and remove any unnecessary or out of date requirements. By removing these you can reduce the complexity of the dependency tree, thus reducing opportunities for conflicts to occur [see: pip-audit your requirements]

Moreover, in a case where Twisted stops using zope.interface as a dependency, then zope.interface will be installed completely unnecessarily.

@pmhahn
Copy link
Collaborator

pmhahn commented Jul 31, 2025

VNCdotool does not use zope.interface directly itself; it only gets used indirectly inside Twisted. Therefore declaring an explicit dependency on it looks pointless.
I'm in favor of removing this dependency.

@pmhahn pmhahn merged commit e0e574c into sibson:main Aug 3, 2025
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants