pyiron_base icon indicating copy to clipboard operation
pyiron_base copied to clipboard

How to make changes that affect `pyiron_atomistics`?

Open samwaseda opened this issue 2 years ago • 5 comments

I'm making changes in this PR and realized that I have to change some stuff in pyiron_atomistics. How can I make changes in multiple repositories without breaking anything?

samwaseda avatar Jan 11 '23 09:01 samwaseda

Imo make the change here, make a new release, wait for the dependabot PR on atomistics (which will fail the unit tests), then apply the changes in atomistics you need to accommodate the changes you made in base, then trigger a new release of atomistics. This way there'll be no broken version of atomistics.

pmrv avatar Jan 11 '23 13:01 pmrv

ah wait, there'd be a problem. So the thing is, in the PR that I mentioned above, I replace a ValueError by a KeyError. Now there are a few places in pyiron_atomistics, which catch ValueError, but not KeyError, meaning as soon as the new version is released, there would be a problem.

samwaseda avatar Jan 11 '23 13:01 samwaseda

So this is one of the reasons why I originally objected to unpinning dependencies upon uploading them to conda. Imo since we specify == constraints in the repo this exact case of having to change version in two repositories together would not cause issues because until the atomistics version is bumped it would still depend on the old (working) version of base.

If you want to be exactly sure not to cause issues, change this workflow to not unpin pyiron_* deps (the line with sed), release a new version then do what I sketched above. I'm not sure if this will automatically change the deps advertised to the conda package since they seem to be hardcoded here.

Imo the reasonable thing to do midterm is to change our exact dep constraints to lower<,<upper where we manually bump lower whenever we need newer stuff from a dependency and let dependabot bump (and test) upper and advertise these exact bounds to both pip and conda.

pmrv avatar Jan 12 '23 10:01 pmrv

Yes, in the mentioned workflow, only the pip dependencies are changed.

niklassiemer avatar Jan 12 '23 15:01 niklassiemer

If you want to be exactly sure not to cause issues, change this workflow to not unpin pyiron_* deps (the line with sed), release a new version then do what I sketched above. I'm not sure if this will automatically change the deps advertised to the conda package since they seem to be hardcoded here.

If we choose to do this, at the same time please go over to pyiron/actions and make a PR giving the same change(s) in the centralized deployment workflow

liamhuber avatar Jan 12 '23 18:01 liamhuber