These keep zizmor (zizmor.yml, fails on medium or higher findings) and the OpenSSF Scorecard clean.
- Pin every third-party action to a full commit SHA with a
# <release tag>comment. - Every workflow declares top-level
permissions(read-all,contents: reador{}). Grant more per job, with a comment saying why. - Every
actions/checkoutsetspersist-credentials: false. - Never inline untrusted contexts (
github.event.*,github.head_ref,inputs.*) inrun:; pass them throughenv:. Preferenv:for every value in new code. - Every job sets
timeout-minutes; for a job that calls a reusable workflow, set it inside the called workflow. actionlintruns in pre-commit.- Set up conda with the local
.github/actions/setup-minicondaaction, which retries a failed setup once, instead of callingconda-incubator/setup-minicondadirectly; a job that checks dpnp out into a subdirectory uses it from there (./source/.github/actions/setup-miniconda). workflows/array-api-skips.txtlists array-api-tests node IDs skipped by the conformance job; precede each with a comment naming the upstream issue.bump-sycl-deps.ymlrewrites theDRIVER_PATH,OCLCPUEXP_FN,TBB_URL,TBB_INSTALL_DIRandTBB_FNpins in.github/sycl-build-deps.envwithsed, andos-llvm-sycl-build.ymlreads exactly those five; keep one unquotedKEY=VALUEper line, starting at column 0.- Every write to
gh-pages(build-sphinx.yml,prune-pr-docs.yml) goes through.github/scripts/update_gh_pages.sh, which retries a push rejected by a concurrent writer; don't push togh-pagesany other way. - Dependabot (
dependabot.yml) bumps actions,environments/pins and pre-commit hooks weekly with a 7-day cooldown. After adpctlrelease it opens a PR that raises thedpctlfloor inenvironments/dpctl_pkg.txtonly; don't merge it. Instead, by hand, move the dev-series pins ([project].dependenciesinpyproject.toml,environments/dpctl_pkg.{txt,yml},conda-recipe/meta.yaml,conda-recipe/rattler_recipe.yaml) to the nextX.Y.0dev0, and the release-only pins ([build-system].requiresinpyproject.toml,conda-recipe-cf/meta.yaml) to the new release.