Skip to content

CI: test every push that changes the code of a PR - issue #39 - #40

Merged
amjjbonvin merged 4 commits into
mainfrom
ci-test-unchanged-39
Nov 1, 2026
Merged

amjjbonvin merged 4 commits into
mainfrom
ci-test-unchanged-39

Conversation

@amjjbonvin

Copy link
Copy Markdown
Member

What does this PR do and why?

Reverts the "code of the PR unchanged" skip of #38, as raised by @rvhonorato and @sverhoeven in its review:

  • git patch-id ignores whitespace, so a push that only re-indents lines of the PR skipped the tests;
  • after merging main, the PR together with the new main was not tested before merging.

The changes job is now dorny/paths-filter: only a PR that changes nothing but *.md files skips the jobs, and pushes to main are always tested. ci-passed stays the required check, so Markdown-only PRs can still be merged.

How was this tested?

  • The re-indent case was reproduced in a test repository (same patch ID before and after).
  • predicate-quantifier: every is needed for the !**/*.md exclusion: checked with picomatch (the matcher of dorny/paths-filter) that README.md and CHANGELOG.md are not code and src/disvis/main.py, .github/workflows/ci.yml are.
  • The full workflow runs on this PR, since it changes the workflow.

AI assistance

Claude Code wrote the change and the checks above; I reviewed them.

Checklist

  • Tests cover the new and/or changed code (CI only)
  • Documentation updated if needed (CONTRIBUTING.md)
  • Reference results in test-cases/*/example-results/ updated if the output changes (no output change)

Related issues

Closes #39

Notes for reviewers

A Markdown-only PR is not tested; the code it sits on was tested when it was pushed to main.

🤖 Generated with Claude Code

Remove the git patch-id comparison of #38: patch-id ignores whitespace,
so a push that only re-indents lines of the PR skipped the tests, and a
merge of main skipped testing the PR together with the new main. Only a
PR that changes nothing but *.md files skips the jobs now, detected with
dorny/paths-filter.

Closes #39

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@amjjbonvin
amjjbonvin requested a review from a team as a code owner October 30, 2026 14:10
The pocl 3.0 on PyPI has an LLVM that does not know the AMD EPYC 9V45
of some runners, and fails with "unknown target CPU 'generic'". pocl
3.0 has no setting to override the CPU, so POCL_LLVM_CPU_NAME (82b9701)
had no effect: the runs only passed on EPYC 7763 runners. conda-forge
has pocl 7.1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@rvhonorato rvhonorato left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

here you have a pocl commit (f5d1e84) which makes a big change on how the GPU job is setup adding micromamba and conda-forge instead of pip and apt - this seems like it was added without any consideration of the project setup and is off-scope of this PR

looking at the chain of changes that ended up here I can see that #38 was merged 7 minutes before it was opened without anyone reviewing, adding ~70 lines of a bash script inside the CI following what I think was a bad prompt, see: #38 (comment)

in PR #38 "How was this tested?" section the AI agent tested cases the AI agent itself made up. Looking beyond this repository I see the same patter repeated in other PRs where the user is letting the AI agent create both the code AND the tests - this is generally a very bad thing because the AI agent will check its own understanding of the problem, not the problem itself, please keep in mind this type of changes NEED human intervention.

later, an experienced human developer questioned the approach in #38 and the AI agent replied (whereas another human should have replied) defending its own implementation based its "decision" of "choices" made by agent itself #38 (comment)

this implementation was then propagated unchecked to other repositories: haddocking/haddock3#1749 was closed 2min after being opened and haddocking/deeprank-gnn-esm#43 was closed a few minutes after being opened both without any human review

AI is good, its a powerful tool that can help in a variety of scenarios - but looking at the pattern in this organization, it's missing human ownership in a few points:

  • do not merge before review
  • one change per pr
  • write reviews in human words

please take some time to write a good system prompt at $HOME/.claude/CLAUDE.md with clear guidelines and best practices (this is shared across all sessions), also check how your $HOME/.claude/settings.json is currently configured. anthropic has even some built-in plugins that can be called easily such as /review /simplify etc - have a look at a more comprehensive list here https://code.claude.com/docs/en/plugins

this PR is part of a larger pattern spreading in the whole organization, see my comment here https://github.com/haddocking/csbportal/pull/1741#issuecomment-6523599986, a good effort towards mending that would be to install some plugins and since the changes were machine-written in this PR specifically let also a machine review it

Comment thread .github/workflows/ci.yml Resolved
@amjjbonvin

Copy link
Copy Markdown
Member Author

Yes AI is powerful - after loosing my software engineer, I have the choice of letting things as they are, or advance things and fixing issues that have been there since a long time. This a choice... And there are pros and cons to using AI. But at this time I feel the pros are outweighing the cons :-)

@amjjbonvin

Copy link
Copy Markdown
Member Author

And if nobody is there to review things then I have to make choices...

This reverts commit f5d1e84: it is off-scope for this PR, and changes
how the pocl job is set up. The pocl failure on AMD EPYC 9V45 runners
is fixed separately, as in haddocking/powerfit#143.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@amjjbonvin

Copy link
Copy Markdown
Member Author

PS: And thanks for the CLAUDE tips

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟢 Approval recommended

No active review issues are blocking approval of the CI-skipping and documentation changes.

No open issues 🎉

What changed in this PR

Addresses #39 by removing patch-ID-based CI skipping, so code-changing PRs are tested again after indentation-only updates or merges from main.

Changes:

  • Replaces the custom comparison script with dorny/paths-filter, skipping tests only for Markdown-only PRs.
  • Preserves testing on every push to main and keeps ci-passed as the required summary check.
  • Updates contributor documentation to describe the revised skipping behavior.
File Description
CONTRIBUTING.md Documents that only Markdown-only PRs skip CI jobs.
.github/​workflows/​ci.yml Replaces patch-ID checks with path filtering and updates the skip message.

Review effort: Balanced

@amjjbonvin
amjjbonvin merged commit e90391f into main Nov 1, 2026
19 of 25 checks passed
@amjjbonvin
amjjbonvin deleted the ci-test-unchanged-39 branch November 1, 2026 16:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI: do not skip the tests when the code of a PR is unchanged

3 participants