Skip to content

#57: Enforce the PR-requirements and Python 3.10 CI gates - #59

Merged
miroslavpojer merged 1 commit into
masterfrom
chore/57-ci-required-gates
Sep 4, 2026
Merged

miroslavpojer merged 1 commit into
masterfrom
chore/57-ci-required-gates

Conversation

@miroslavpojer

@miroslavpojer miroslavpojer commented Sep 4, 2026 •

Copy link
Copy Markdown
Contributor

Overview

Two CI-gate fixes tracked as Phase 0 residuals (P0-R1 + P0-R5 in
living-doc/docs/specs/phase-0-tasklist.md §4a). Both are workflow-only — no
dependency, pyproject.toml, or source change.

1. Add check-pr-requirements.yml (#57)

This repo runs check_pr_release_notes.yml (release-notes presence) but not the
branch-name / PR-title / issue-reference / target-branch gate — even though
CONTRIBUTING.md already tells contributors "the check-pr-requirements CI
check rejects a branch that has no issue number."

Adds .github/workflows/check-pr-requirements.yml, byte-identical to the
canonical form in issue #57 (and the reference copy in
living-doc-generator-markdown), pinning
AbsaOSS/check-pr-requirements@adb22f6d88c93fd801e787a63d948d6fbbdd4af3 # v0.2.0
with:

Setting Value
check-title / title-formats true / issue-number
check-branch-name / branch-require-ticket true / true
check-description / description-required-sections true / ## Overview,## Release Notes,## Related
check-issue-reference / issue-reference-require-keyword true / true
check-target-branch / allowed-target-branches true / main,master,support/*,release/*
check-release-notes false — check_pr_release_notes.yml still owns that check

check_pr_release_notes.yml is left untouched (git diff on it is empty).

2. Make the Python 3.10 CI leg required (#58)

test.yml's qa job ran the 3.10 matrix leg as advisory
(continue-on-error: ${{ matrix.python-version == '3.10' }}). The comment above
it tied that exception to a living-doc-utilities release — but this repo has
no living-doc-utilities dependency
(the tree is pydantic / jsonschema /
click / packaging plus the in-repo packages). That comment was inherited
boilerplate from the reference test.yml.

Every package already declares requires-python = ">=3.10" (core,
datasets_pdf, adapters/collector_gh, services/normalize_issues,
services/coverage_matrix, apps/cli) and all third-party deps support 3.10, so
the leg is now required:

  • removed continue-on-error: ${{ matrix.python-version == '3.10' }}
  • removed the 3-line "advisory until living-doc-utilities …" comment above it
  • matrix (3.10, 3.11, 3.12, 3.13, 3.14), per-package Makefile jobs, and QA
    thresholds unchanged

Local verification (Python 3.10.18)

make install and make qa were run against a clean python3.10 venv:

  • make install — exit 0, all six packages installed

  • make qa — exit 0; 241 tests pass, every package over the 80% coverage
    gate:

    Package Tests Coverage
    core 47 94.39%
    datasets_pdf 33 100.00%
    adapters/collector_gh 64 85.02%
    services/normalize_issues 36 93.53%
    services/coverage_matrix 34 98.23%
    apps/cli 27 98.72%

Branch protection (repo-admin follow-up)

Not done in this PR — requires admin access. After merge, add PR Requirements
to master's required status checks in branch protection so #57's gate is
enforced on future PRs. The 3.10 QA leg (QA (Black, Pylint, mypy, Pytest) — Python 3.10) also becomes required automatically once it is a non-advisory check;
confirm it is in the required set alongside the other matrix legs.

Release Notes

  • CI: added the check-pr-requirements.yml gate (PR title / branch ticket / body sections / issue-reference keyword / target branch).
  • CI: the Python 3.10 leg of the QA matrix is now a required check (was advisory continue-on-error); removed an inapplicable comment referencing living-doc-utilities.

Related

Closes #57
Closes #58

Summary by CodeRabbit

  • Chores

    • Added automated pull request checks for titles, descriptions, issue references, branch names, and permitted target branches.
    • Pull request checks now run across additional pull request updates, including edits and label changes.
  • Bug Fixes

    • Python 3.10 test failures now correctly fail the quality assurance workflow instead of being allowed to pass.

@coderabbitai

coderabbitai Bot commented Sep 4, 2026 •

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: d082ed96-ef85-46f0-8ad3-47d79d3bad30

📥 Commits

Reviewing files that changed from the base of the PR and between 8359301 and e3febaa.

📒 Files selected for processing (2)
  • .github/workflows/check-pr-requirements.yml
  • .github/workflows/test.yml

Walkthrough

The PR adds a pull request requirements workflow using a pinned action. It validates PR metadata, descriptions, issue references, branch names, and target branches. It also removes advisory handling from the Python 3.10 QA matrix leg.

Changes

Pull request validation

Layer / File(s) Summary
PR requirement enforcement
.github/workflows/check-pr-requirements.yml, .github/workflows/test.yml
The new workflow checks PR titles, required description sections, closing issue references, ticket-bearing branch names, and allowed target branches. The Python 3.10 QA leg now fails the job when it fails.

Estimated code review effort: 2 (Simple) | ~10 minutes

Poem

A rabbit checks the title line
And stamps each branch with ticket sign
The QA gears now turn as one
Three-ten joins the rising sun
Green gates guard the work in time

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/57-ci-required-gates

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@miroslavpojer
miroslavpojer merged commit d5f75de into master Sep 4, 2026
10 of 13 checks passed
@miroslavpojer
miroslavpojer deleted the chore/57-ci-required-gates branch September 4, 2026 13:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make the Python 3.10 CI leg a required check Add the check-pr-requirements.yml workflow

1 participant