-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Is your feature request related to a problem? Please describe.
A cleaner way to manage dependencies is crucial at the beginning of a project to reduce technical debt and allow collaboration and development. The current requirements.txt
has a ton of pinned dependencies which is not optimal and very difficult to update.
Describe the solution you'd like
I propose using a dependency manager like Poetry or PDM (my preference) to handle this and to replace the current requirements.txt
. This would mean a few files would be added:
pyproject.toml
pdm.lock
And some removed:
requirements.txt
setup.py
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request
Type
Projects
Milestone
Relationships
Development
Select code repository
Activity
mjspeck commentedon Feb 7, 2024
If this sounds useful, I'm happy to implement it myself and post a PR.
build: moved package and dependency management to pdm
build: moved package and dependency management to pdm
chore: removed `pip install -r requirements.txt`
chore: updated README with dev section
joshbickett commentedon Feb 9, 2024
@mjspeck this could make sense. Is it sufficient that
pip install self-operating-computer
downloads what's required or is there an issue with that for you?mjspeck commentedon Feb 9, 2024
I haven't had issues on my side. I just think long term it will be better to deal with this now. Leaving the issue lingering will make it harder to deal with and dependency hell is something to avoid at all costs IMO.
joshbickett commentedon Feb 9, 2024
@mjspeck I am curious for the reason for removing
setup.py
mjspeck commentedon Feb 9, 2024
It's just not necessary anymore. Everything defined in
setup.py
can be defined in thepyproject.toml
.joshbickett commentedon Feb 9, 2024
@mjspeck Does
pyproject.toml
upload to PyPI to be indexed? That's whatsetup.py
doesmjspeck commentedon Feb 9, 2024
You don't need
setup.py
for that. You can still usepython -m build
to build and thentwine
to upload, or, as I'd suggest, just usepdm
for this: https://pdm-project.org/latest/usage/publish/joshbickett commentedon Feb 9, 2024
@mjspeck ok, thanks for the input. I'll take a closer look at this switch
mjspeck commentedon Feb 9, 2024
Thank you! My PR should be pretty straightforward
1 remaining item