Skip to content

ci(lint): improve CI UX when splitting linter jobs - #625

Open
lengau wants to merge 2 commits into
mainfrom
work/separate-linkcheck
Open

lengau wants to merge 2 commits into
mainfrom
work/separate-linkcheck

Conversation

@lengau

@lengau lengau commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

canonical/starflow/.github/workflows/lint-python.yaml runs all code and
documentation linters in a single job. Link checking is slow and hits the
network, so it slows down every job that depends on it.

To split linting into separate CI jobs, linkcheck needs to be a standalone
Make target rather than part of docs-lint.

Changes

  • Add a docs-linkcheck target that runs make -C docs linkcheck.
  • Remove linkcheck from docs-lint, which keeps running sphinx-lint,
    spelling, and woke.
  • Add docs-linkcheck as a prerequisite of lint, so make lint and local
    behaviour are unchanged.

Downstream repos get the new target automatically the next time they merge
from starbase/main.

Compatibility testing

This PR is only the starbase half. The starflow half that consumes it is
canonical/starflow#199.

The merge order matters, so both orders are tested by these draft PRs:

If #627 fails, starbase has to land before starflow.

Each of those two test PRs also has a docs-only PR stacked on top of it,
to check the filter classifies a documentation-only change correctly and
skips the code linters:

The same two stacks also each have a PR that changes a source file and a
documentation file together, to check that all three linting jobs run rather
than only one:

Test plan

  • make format, make lint, make test-fast

Splitting link checking out of docs-lint lets a CI workflow run it in
its own job, separate from the faster code and docs linters. Link
checking is slow and hits the network, so it slows down every other
lint job that depends on it.

docs-lint keeps running sphinx-lint, spelling, and woke. make lint
still runs linkcheck, so local behaviour and the full lint target are
unchanged.

Co-Authored-By: Copilot <198982749+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No unresolved review issues remain.

0 open findings

What changed in this PR

Adds a standalone documentation link-check target while preserving aggregate lint behavior.

Changes:

  • Adds docs-linkcheck for standalone link checking.
  • Includes it in the aggregate lint target.
  • Keeps other documentation checks separate.
File Description
Makefile Includes link checking in aggregate linting.
common.mk Defines the standalone docs-linkcheck target.

🧠 Review effort: Lite


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@lengau lengau changed the title feat: allow CI to split the linters ci(lint): improve CI UX when splitting linter jobs Oct 15, 2026
@lengau
lengau marked this pull request as ready for review October 22, 2026 17:04
@lengau
lengau requested a review from bepri as a code owner October 22, 2026 17:04
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.

2 participants