You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The issue here is that Pkg.develop can (may?/will?) trigger the resolver (at least we just observed this after the depot was cleared), resulting in potentially different versions being run despite our manifest file being checked in.
Over the years, I've seen Pkg.develop added and removed from pipelines, likely due to this issue. One reason why Pkg.develop is typically added is because, without it, users may update the manifest locally, and forget to Pkg.develop themselves, effectively pinning CI to that version.
I think a better pattern to use moving forwards is to:
Remove the use of Pkg.develop on buildkite, to guarantee reproducibility
Document how users should setup their local environment
Add a test (whether that's via julia code or in the buildkite pipeline), that tests that the repo package (ClimaCore in this case), is developed in that environment. In Julia terms, that is testing that TOML.parse(join(readlines(".buildkite/Manifest.toml")[7:end], "\n"))["deps"]["ClimaCore"][1]["path"] == ".." (this check unfortunately may be julia version-dependent).
We should probably spread this pattern, as this can easily bite users on all of our repos.
Also, just to note, we should always print Pkg.status(), so that we can trace what's going on.
The text was updated successfully, but these errors were encountered:
We have an issue where our current buildkite environment is:
The issue here is that
Pkg.develop
can (may?/will?) trigger the resolver (at least we just observed this after the depot was cleared), resulting in potentially different versions being run despite our manifest file being checked in.Over the years, I've seen
Pkg.develop
added and removed from pipelines, likely due to this issue. One reason whyPkg.develop
is typically added is because, without it, users may update the manifest locally, and forget toPkg.develop
themselves, effectively pinning CI to that version.I think a better pattern to use moving forwards is to:
Pkg.develop
on buildkite, to guarantee reproducibilityTOML.parse(join(readlines(".buildkite/Manifest.toml")[7:end], "\n"))["deps"]["ClimaCore"][1]["path"] == ".."
(this check unfortunately may be julia version-dependent).We should probably spread this pattern, as this can easily bite users on all of our repos.
Also, just to note, we should always print
Pkg.status()
, so that we can trace what's going on.The text was updated successfully, but these errors were encountered: