Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use best practice dependency management #1188

Open
jakob-keller opened this issue Aug 24, 2024 · 8 comments · May be fixed by #1257
Open

Use best practice dependency management #1188

jakob-keller opened this issue Aug 24, 2024 · 8 comments · May be fixed by #1257
Assignees
Labels
dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Comments

@jakob-keller
Copy link
Collaborator

          Not just per python but per each permutation of python+OS+arch. This is what extensive locking looks like: https://github.com/cherrypy/cheroot/tree/main/requirements. However, to implement such an integrated environment, a lot of effort is required, so I'd postpone.

Originally posted by @webknjaz in #1185 (comment)

@jakob-keller jakob-keller added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Aug 24, 2024
@jakob-keller
Copy link
Collaborator Author

jakob-keller commented Dec 29, 2024

Recently, I started to introduce uv in other projects and I believe we could benefit here as well:

  • replace pip-tools for managing dev (and docs?) dependencies
  • replace pip based workflows, e.g. in CI
  • replace build frontend

uv is not entirely stable yet, but feels mature enough at this point. Many projects are migrating from pyenv, pip, pip-tools, poetry, ...

@thehesiod, @webknjaz: Any thoughts?

@webknjaz
Copy link
Member

You could try. I'm not migrating just yet.

@jakob-keller jakob-keller self-assigned this Dec 29, 2024
@thehesiod
Copy link
Collaborator

given it's only used for internal management seems ok to try if it gives us a Speed boost. make sure to integrate with GitHub caching. curious as at work we're on pipenv and it's very slow to sync and lock.

@jakob-keller
Copy link
Collaborator Author

given it's only used for internal management seems ok to try if it gives us a Speed boost. make sure to integrate with GitHub caching. curious as at work we're on pipenv and it's very slow to sync and lock.

Yes, it's lightning fast. A complete game changer IMO.

@webknjaz
Copy link
Member

The "lock files" are currently implemented the same way as in poetry. Hence the same corner cases. I'd like to see the new PEP accepted and implemented instead...

@jakob-keller
Copy link
Collaborator Author

The "lock files" are currently implemented the same way as in poetry. Hence the same corner cases. I'd like to see the new PEP accepted and implemented instead...

You think it'll ever land? :-)

@webknjaz
Copy link
Member

Of course, there was a lot of good discussion around it.

@jakob-keller jakob-keller linked a pull request Jan 7, 2025 that will close this issue
13 tasks
@jakob-keller
Copy link
Collaborator Author

jakob-keller commented Jan 7, 2025

PR is ready for review: #1257

given it's only used for internal management seems ok to try if it gives us a Speed boost. make sure to integrate with GitHub caching. curious as at work we're on pipenv and it's very slow to sync and lock.

Caching for uv in GitHub Actions was recently enabled by default. Speed in CI/CD has improved significantly.
https://github.com/aio-libs/aiobotocore/actions/runs/12640842605 vs. https://github.com/aio-libs/aiobotocore/actions/runs/12647877316:

  • The build job now takes 0:10 instead of 0:12.
  • The test jobs now take 1:25-2:12 instead of 2:10-2.54

The real game changer is speed AND ease of use when setting up local development environment and keeping it up-to-date.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants