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

Environment pinning #985

Merged
merged 66 commits into from
Dec 13, 2023
Merged

Environment pinning #985

merged 66 commits into from
Dec 13, 2023

Conversation

guyer
Copy link
Member

@guyer guyer commented Dec 9, 2023

Use conda-lock to pin environments.

This PR:

  • tests every commit for breaking changes in the commit
  • tests master nightly at midnight for breaking changes in dependencies

They can be used together, e.g.,
```shell
conda env create --name <MYENV> --file environments/environment.yml --file environments/petsc-environment.yml
```
although the more you combine, the less likely that conda will
find a "solution".
Linkage between petsc 3.20.2_*_102 and scotch 7.0 is broken.
petsc 3.20.2_*_101 and scotch 6.x is OK.
Don't regenerate lockfiles every time. Slow and clunky.
@guyer guyer requested review from wd15 and tkphd December 12, 2023 03:06
Copy link
Contributor

@tkphd tkphd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

coooooool

One minor nit, but this is neat!

The `conda-lock <https://github.com/conda/conda-lock>`_ lockfiles in
:file:`environments/locks/` can be updated with::

$ for solver in petsc pysparse scipy trilinos
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Refactor as a rst code-block.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

INSTALLATION.rst Outdated Show resolved Hide resolved
INSTALLATION.rst Outdated Show resolved Hide resolved
Easier to explain and less fragile, at the expense of redundancy
in individual environment.yml files. It's a shame they don't have
an include mechanism.

Refactored environment documentation into environments/README.rst.
@guyer guyer requested review from wd15 and tkphd December 12, 2023 21:22
@wd15
Copy link
Contributor

wd15 commented Dec 12, 2023

Maybe point at a blog post such as this to help explain the difference between using lock and not using lock or try and add a few sentences with the flavor of that.

@wd15
Copy link
Contributor

wd15 commented Dec 12, 2023

I see, you've already done it.

@wd15
Copy link
Contributor

wd15 commented Dec 12, 2023

BTW the Binder link never seems to work. Might be best to remove that.

@guyer
Copy link
Member Author

guyer commented Dec 12, 2023

BTW the Binder link never seems to work. Might be best to remove that.

https://mybinder.org seems to be having an outage right now, but even when it's up, it might not be too useful. I've added an #987 to take a look at this.

@guyer guyer merged commit 2764950 into master Dec 13, 2023
24 checks passed
@guyer guyer deleted the environment_pinning branch December 13, 2023 15:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants