Releases: Affanmir/diff-cover-action
Release list
v2.1.1
What's Changed in v2.1.1
A patch release — fully backward compatible with v2.1.0. Stay on @v2 or bump your pin; no input/output changes.
🐛 Fixed
Markdown tables now render correctly in PR comments and step summaries. The per-file coverage/quality tables emitted a blank line right after the header-separator row, which broke the table layout on GitHub (rows showed as raw text instead of a table). Thanks @DavidDeSloovere for the fix. (#13, fixes #11)
🧰 Developer experience
- Dev Container configuration (
.devcontainer/) for a one-command, reproducible Python development environment. (#12)
📝 Documentation
- New Quickstart section, an honest comparison against alternative tools, and expanded community-standards files (Code of Conduct, Security Policy). (#8)
Upgrading
No action required — fully backward compatible:
- uses: Affanmir/diff-cover-action@v2 # tracks v2.x, now v2.1.1
# or pin exactly
- uses: Affanmir/[email protected]Full Changelog: v2.1.0...v2.1.1
v2.1.0
What's New in v2.1.0
Title input for PR comments
A new optional title input renders an H2 heading at the top of the PR comment. Useful in monorepos where a matrix of coverage jobs runs and each comment needs to identify which app or package it belongs to.
- uses: Affanmir/diff-cover-action@v2
with:
title: partners-app
coverage-files: apps/partners-app/coverage/lcov.info
comment-identifier: diff-cover-partners-app
fail-under: '80'When title is empty (default), no heading is rendered — behavior is unchanged from v2.0.0.
Documentation
- README adds a Comment Customization input table and a Monorepo Matrix advanced example
- All quick-start snippets in the README, the GitHub Pages site, and
llms.txtnow reference@v2 - CHANGELOG updated for 2.1.0
Migration from v2.0.0
No action needed — fully backwards compatible. Just bump the ref:
- uses: Affanmir/diff-cover-action@v2 # tracks v2.x
# or pin
- uses: Affanmir/[email protected]Full Changelog: v2.0.0...v2.1.0
v2.0.0
What's New in v2.0.0
Redesigned PR Comments
PR comments now feature a polished, visual design inspired by tools like Codecov and SonarQube:
- Shields.io coverage badge — large, color-coded badge showing coverage percentage at a glance
- Threshold pass/fail badge — instant visual status
- Unicode progress bar —
████████████████░░░░alongside the badge - Per-file status icons — 🟢 (≥90%), 🟡 (≥70%), 🔴 (<70%)
- Compact metric layout — key stats in a single line
Improved Discoverability
- GitHub Pages site with Schema.org structured data
llms.txtfor AI tool discoverability (Claude, ChatGPT, Perplexity)- 15 repository topics added
- GitHub Discussions enabled
- Marketplace branding updated (shield/blue)
Other Changes
- Action name: Diff Cover — PR Coverage & Quality Reports
- Action now dogfoods itself — posts real coverage comments on its own PRs
- README overhauled with comparison table, badges, and "Why This Action?" section
- Converted from Docker to composite action for faster execution
Migration from v1
Update your workflow reference:
# Before
- uses: Affanmir/diff-cover-action@v1
# After
- uses: Affanmir/diff-cover-action@v2The only breaking change is the PR comment format — if you parse the comment body, update your patterns.
Full Changelog: v1.2.0...v2.0.0
v1.2.0
What's Changed
Fixed
- Critical: Converted from Docker-based action to composite action — Docker actions require the Docker daemon on the runner, which is unavailable on lightweight runners (
ubuntu-slim, Namespace runners, etc.). The action now runs directly on the runner via shell steps, requiring no Docker.
How it works now
pip installthe three dependencies (diff-cover, Jinja2, requests)- Configure
git safe.directory - Run
entrypoint.pywith all inputs passed as explicitINPUT_*env vars
Migration
No changes needed — the action interface (inputs/outputs) is identical. If you're on @v1, you already have this fix.
Full Changelog: v1.1.0...v1.2.0
v1.1.0
What's Changed
Added
- Issue templates (bug report and feature request)
- Pull request template with checklist
- CODEOWNERS file
Fixed
- Critical: Hyphenated action inputs (
coverage-files,compare-branch, etc.) were not being read due to env var name mismatch — all hyphenated inputs now work correctly - Docker Build CI job failing because verify step appended args to ENTRYPOINT
- Git
safe.directoryerror when Docker actions mount the runner workspace - GHCR image push failing due to uppercase characters in repository name
- Ruff lint/format violations and mypy type errors
Full Changelog: v1.0.0...v1.1.0
v1.0.0
Full Changelog: https://github.com/Affanmir/diff-cover-action/commits/v1.0.0
First release — a zero-vendor-lock-in GitHub Action wrapping diff-cover with native GitHub integration.
Features
- Coverage mode (
diff-cover) — test coverage on changed lines only - Quality mode (
diff-quality) — lint violations on changed lines (flake8, pylint, ruff, mypy, eslint, and more) - Idempotent PR comments — auto-posted summary, updates on re-run
- Inline annotations — uncovered lines shown directly in PR diff
- Step summaries — coverage table in Actions run UI
- Structured outputs —
total-percent,threshold-met, etc. for downstream steps - Shields.io badge generation
- Automatic shallow clone repair
- Full CLI parity — all 26 diff-cover flags exposed as inputs
- Fork PR handling — graceful degradation
Quick Start
- uses: Affanmir/diff-cover-action@v1
with:
coverage-files: coverage.xml
fail-under: '80'