-
-
Notifications
You must be signed in to change notification settings - Fork 119
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
Modernize PUDL packaging #2140
Comments
Looks like we can use conda-lock to pin our transitive dependencies, which will help with our dev env reproducibility/upgradability. In theory we won't have to recreate our environments when switching branches :) There's a blog post about it here, too: https://pythonspeed.com/articles/conda-dependency-management/ |
How does using a lockfile keep us from needing to recreate environments when we switch branches? If the branches have different dependencies wouldn't that be reflected in the different lockfiles, and wouldn't the python environment need to be rebuilt to match? While we use conda for python environment isolation and installation of some finnicky binary / system dependencies, almost all of the software installation is actually done by |
The python environment would be updated to match the lockfile, yeah. Though it'd be an incremental rebuild, not a full one. In theory different branches will only have different library versions if we've intentionally changed direct dependency versions. Do we anticipate adding/removing/updating direct dependencies frequently? I just took a look at I'm not sure how conservative the solver is re: trying to change as few library versions as possible when re-solving, but I'd assume that it is still faster than "re-do everything every time." conda-lock does appear to support |
Installation using
setup.py
has been deprecated in favor of PEP 517 / PEP 518 / PEP 621 / PEP 660 based systems, and we are getting warnings about it, so we need to overhaul the packaging setup. Instead we should probably configure the packaging entirely using pyproject.tomlIn addition, the
pudl.metadata.templates
directory is a "package" with no code (just jinja templates) and it needs to be specifically called out for inclusion in the package -- otherwise it'll be left out in future packaging setups.We may also want to look at using another build system like poetry, and explicitly lock dependencies to particular versions. A blog post from last year about the changes.
The text was updated successfully, but these errors were encountered: