Infra Update v6: Modules Injection, More Provenance#114
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
References issue ACCESS-NRI/build-cd#311 and PR ACCESS-NRI/build-cd#306
Important
This PR is a major update to the deployment infrastructure. See below for the prerequisites for this repository to be able to merge this PR.
Background
This update is a bundle of major-level changes.
The main new features include:
spack.modulesSection is Now Injected At Build Time: A long-standing pain point for developers was having to update spec and dependency versions in multiple places at once. Now, this is injected at build time. Users can still specify their own projections and includes as required (with the others injected automatically to get a working build), but this makes it much simpler. We recommend removing thespack.modulessection entirely - it has been done for this PR, but can be reverted if required.Special Packages Now Specified In
config/packages.json: Rather than a relatively obscurevars.BUILD_DB_PACKAGES, we now specify special packages for inclusion in the release provenance database in theconfig/packages.jsonfile (specifically the.provenancefield). Furthermore, we can include modulefiles for additional packages from the.injectionfield.All Schema Now Specified In Workflow Entrypoint Inputs: Schema versions for manifests and files under
config/were kept track on invars- this was obscure, repo-scoped and untracked. It is now a new, required input to the CI workflow (inputs.*-schema-version), meaning users can pick schema versions for their files at the PR level, and it is now tracked by git. We can also pick a particular manifest schema to test against via the new, optionalinputs.spack-manifest-schema-path- useful for manifests that are less restrictive, like the ones for software deployment rather than model deployment..github/CODEOWNERSFile Sets Required Reviewers: Currently only requires that changes to the.githubfolder require review from @CodeGat. This file can be changed as required by the MDR in this PR, or later. There was talk of adding CODEOWNERS for variousspack.yamls.Prerequisites for Merging
build-cdentrypoints (this PR!)config/packages.jsonfile (again in this PR!)spack.modulessection fromspack.yaml, revert if there are breaking changes (yep, in this PR)vars.*_SCHEMA_VERSIONandvars.BUILD_DB_PACKAGEonly when all non-draft PRs have rebased onto this PR