Add CI/CD: pre-commit gates, GitHub Actions workflows, and contributor tooling#103
Closed
aviv1ron1 wants to merge 16 commits into
Closed
Add CI/CD: pre-commit gates, GitHub Actions workflows, and contributor tooling#103aviv1ron1 wants to merge 16 commits into
aviv1ron1 wants to merge 16 commits into
Conversation
- Rework the ruff section into a two-PR rollout (format first, then enforce). - Fix review comments: uv-lock/check-headers auto-fix wording, lint scope, workflow count, versioning example. - Add an Execution section recording the post-format full-suite Vela run (1338 passed, 2 pre-existing near-tie integration failures). Signed-off-by: aviv ron <rona@il.ibm.com>
Record the repo-wide ruff format commit so 'git blame' skips it and authorship of real changes stays visible. Enable locally with: git config blame.ignoreRevsFile .git-blame-ignore-revs Signed-off-by: aviv ron <rona@il.ibm.com>
…n-ruff-format Signed-off-by: aviv ron <rona@il.ibm.com>
The repo-wide ruff format (PR 1) is merged into this branch, so the tree is ruff-clean. Flip ruff from the advisory bridge to the enforced gate: - ci.yaml: drop continue-on-error from the ruff format/lint steps. - .pre-commit-config.yaml: re-add ruff-format and make ruff blocking (--exit-non-zero-on-fix --fix). - CICD_PLAN.md: reflect the enforced state. Signed-off-by: aviv ron <rona@il.ibm.com>
ci/check_headers.py, ci/check_dco.py, and .pre-commit/validate_links.py were added on the CI/CD branch and never went through the format pass. Apply ruff format + safe fixes (UP015, RUF005) so the merged tree is fully ruff-clean under the now-blocking gate. No behavioral change. Signed-off-by: aviv ron <rona@il.ibm.com>
Hygiene hook fixups on 5 non-code files (gitignore, CODEOWNERS, a jinja fixture, and two sample-run JSONs) that lacked a final newline. Signed-off-by: aviv ron <rona@il.ibm.com>
Signed-off-by: aviv ron <rona@il.ibm.com>
The tutorial notebooks already carry no outputs; nbstripout only renumbers cell ids and clears empty metadata, so the tree satisfies the hook. No tutorial content is lost. Signed-off-by: aviv ron <rona@il.ibm.com>
- Regenerate uv.lock to match the pytest-cov additions in the dev/test groups (CI runs 'uv sync --frozen', which requires an in-sync lock). - Bump uv-pre-commit 0.6.0 -> 0.8.4: the old uv could not parse the [tool.uv] conflicts syntax and reported a bogus unsatisfiable error. Signed-off-by: aviv ron <rona@il.ibm.com>
The lint job used 'uv run ruff', but ruff is not a project dependency, so it failed with 'Failed to spawn: ruff'. Use 'uvx ruff@0.9.0' (the same version the pre-commit hook pins) and drop the unnecessary project sync from the lint job. Signed-off-by: aviv ron <rona@il.ibm.com>
test_fallback_precedence_and_yaml_parity compared discover_adapters() output (filesystem scan order, varies by OS/filesystem) against the YAML manifest order as an ordered list, so it failed on some runners. Parity means the same set of adapters, not the same order — compare sorted. Signed-off-by: aviv ron <rona@il.ibm.com>
Collaborator
Author
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.
What
Stands up the project's CI/CD and code-quality infrastructure on top of the
now-formatted tree. This is the second of the two-PR split: the bulk
ruffreformat landed separately in #102, and this PR carries everything that builds
on it.
Included
Pre-commit
.pre-commit-config.yaml: ruff (lint + format) as a blocking gate,nbstripout, local
validate-linkshook, SPDX-header and DCO-signoff checks,uv-lock, and standard hygiene hooks (whitespace, EOF, YAML/TOML, mergeconflicts, large files, line endings).
.pre-commit/validate_links.py: checks broken local links, stale labels, andbroken first-party imports in
.md/.ipynb/.py.GitHub Actions
ci.yaml: lint + CPU test suite (ruff via a pinneduvxversion).gpu-tests.yaml: GPU-gated vLLM / integration tests.check-headers.yaml: SPDX license-header enforcement.dco.yaml: Developer Certificate of Origin sign-off check.publish.yaml: package publish workflow.Contributor tooling & docs
ci/check_headers.py,ci/check_dco.py: scripts backing the header/DCO checks.docs/CICD_PLAN.md: rollout plan and rationale.CONTRIBUTING.md,CHANGELOG.md,Makefileupdates.tutorialssource modules.uv.lockrefreshed;uv-pre-commitbumped to 0.8.4..git-blame-ignore-revsrecords the Apply ruff format and lint autofixes across the codebase #102 reformat commit(
c8d4a4ab79cc9e22cc0d5de264ec6d1a2b412d08) sogit blameskips past it.Notes
main, so the diff is only CI/CD content — no sourcereformatting churn (the reformat is already on
mainvia Apply ruff format and lint autofixes across the codebase #102).git config blame.ignoreRevsFile .git-blame-ignore-revs