Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

CI on `main` drops queued runs, so some merged commits never get their own CI run

Open Beginner friendly
#656 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
67/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
github-actions, rust
Domain
ci-cd

Research direction

Start by reading .github/workflows/ci.yml and .github/workflows/commit-policy.yml, especially their concurrency groups and the documented promise that each push to main is checked. Decide whether to adjust concurrency or soften that promise, then inspect the workflow runs for closely spaced merges to confirm the behavior. Done means the workflows and documentation agree, and the stated behavior for successive main commits is verified.

Written by the indexing model from the issue text.

Description

bug

What happens. ci.yml's concurrency group is ci-${{ github.workflow }}-${{ github.ref }}, with cancel-in-progress false on main. GitHub still cancels a pending run in the same group when a newer one queues. Recent main push runs that were cancelled before any job ran (0 jobs):

run commit queued
40486165734 bc92022 (#615) 2026-10-27
37547961147 6e7d7c4 2026-10-06
36289366035 305bb02 2026-09-27
35832749634 5ce0c88 2026-09-23
35226039783, 35203003478, 35202959189, 35202916978 8624f86, 398046b, 28f683e, 98764ba 2026-09-17

Why it matters. The docs promise otherwise: ci.yml's semver comment says "every push to main", and RELEASING.md:46-50 says every push to main "is checked a second time … against the commit it lands on". The semver gate's second check (#598) compares BASE_REV = github.event.before with the pushed commit. When that commit's run is dropped, the next run compares against the dropped commit, which already contains its change. A second break that only the dropped run would have caught goes through.

Fix. Give main a per-commit group, for example group: ci-${{ github.workflow }}-${{ github.ref == 'refs/heads/main' && github.sha || github.ref }}. Do the same in commit-policy.yml, and set its cancel-in-progress false on main. Or soften the docs to what is actually guaranteed.

Done when every commit pushed to main gets a CI run, checked the next time two merges land close together.

Dominant language
Rust
Stars
28
Forks
24
Avg merge
11h 23m
Merged PRs (30d)
42

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from vyncint/termlens

All issues in vyncint/termlens

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.