Repository navigation
v0.4.0
v0.4.0 (2025-12-13)
Bug Fixes
-
Ensure command line arguments are only parsed when not running under pytest (
b36450b) -
Ignore inline code fenced references as they are not real references (
1b7cd7c) -
Improve markdown reference validation and parsing (
8f38107) -
Optimize regex patterns: replace greedy .+ with specific character classes
- BASIC_REFERENCE_PATTERN: [^]]+ for text, [^)]+ for links
- INLINE_LINK_PATTERN: [^>]+ instead of .+
-
Fix _drop_code_block_references: use list filtering instead of modifying during iteration
-
Implement _process_inline_links for processing angle-bracket enclosed links
-
Activate inline links validation in main processing loop
-
Fix header path resolution: resolve relative markdown file paths to absolute
before checking for headers (fixes validation of other.md#header patterns) -
Move get_command_line_argumets() from parsers.py to new cli.py to break circular import (
5cb49e7) -
create new cli.py file and move CLI related code there
-
update settings.py
-
update parsers.py
-
Outdated lockfile and qa (
bc6ff4a) -
Qa issues that were only on remote (
146d50f) -
cd: Update build command to ensure poetry is installed before building (
7886095) -
ci: Add contents permission for deploy job (
d66a31f) -
ci: Comment out code coverage to codecov (
968c632)
Chores
-
Make QA happy :) (
53d0a75) -
also set line length to 100
-
Remove obsolete publish-to-pypi workflow (
5c71104) -
dependabot: Configure dependabot to apply security patches (
f471032)
Add open-pull-requests-limit: 0. This will prevent opening of pull requests for normal version bumps. Security updates will still be created.
Bumps requests from 2.32.3 to 2.32.4.
updated-dependencies:
- dependency-name: requests dependency-version: 2.32.4
dependency-type: direct:production
update-type: version-update:semver-patch ...
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
updated-dependencies:
- dependency-name: requests dependency-version: 2.32.4
dependency-type: direct:production
dependency-group: pip
- dependency-name: urllib3 dependency-version: 2.5.0
dependency-type: indirect
dependency-group: pip ...
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
deps: Bump urllib3 in the pip group across 1 directory (#80,
cee5d8b) -
deps-dev: Bump commitizen from 4.4.1 to 4.6.1 (#37,
ec4822f)
Bumps commitizen from 4.4.1 to 4.6.1.
updated-dependencies:
- dependency-name: commitizen dependency-version: 4.6.1
dependency-type: direct:development
update-type: version-update:semver-minor ...
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps commitizen from 4.6.1 to 4.8.3.
updated-dependencies:
- dependency-name: commitizen dependency-version: 4.8.3
dependency-type: direct:development
update-type: version-update:semver-minor ...
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps pytest from 8.3.5 to 8.4.1.
updated-dependencies:
- dependency-name: pytest dependency-version: 8.4.1
dependency-type: direct:development
update-type: version-update:semver-minor ...
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps pytest from 8.4.1 to 8.4.2.
updated-dependencies:
- dependency-name: pytest dependency-version: 8.4.2
dependency-type: direct:development
update-type: version-update:semver-patch ...
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps python-semantic-release from 10.3.1 to 10.4.1.
updated-dependencies:
- dependency-name: python-semantic-release dependency-version: 10.4.1
dependency-type: direct:development
update-type: version-update:semver-minor ...
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps python-semantic-release from 9.21.0 to 9.21.1.
updated-dependencies:
- dependency-name: python-semantic-release dependency-version: 9.21.1
dependency-type: direct:development
update-type: version-update:semver-patch ...
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps python-semantic-release from 9.21.1 to 10.3.1.
updated-dependencies:
- dependency-name: python-semantic-release dependency-version: 10.3.1
dependency-type: direct:development
update-type: version-update:semver-major ...
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps ruff from 0.11.2 to 0.11.8.
updated-dependencies:
- dependency-name: ruff dependency-version: 0.11.8
dependency-type: direct:development
update-type: version-update:semver-patch ...
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Continuous Integration
-
Fix trusted publishing exchange failure (
a8d2ee3) -
Update ci workflows to new makefile setup and tools (
c17632c)
Documentation
-
Add CONTRIBUTING.md and enhance documentation (
ba00727) -
Document commit conventions and development workflow (
7549cf3) -
Add Commit Convention section explaining conventional commits format
-
Document which commit types trigger version bumps (feat, fix, perf)
-
Document types that don't trigger releases (docs, chore, ci, style, etc.)
-
Add practical examples of conventional commit messages
-
Document new version management make targets
-
Add codecov coverage badge to badges section
-
Remove development status notice (preparing for v1.0.0 stable release)
-
Update development commands documentation
-
Fix mistake in pre commit usage example (
43e8dad) -
Improve commit hook example (
ab9e026) -
Update CONTRIBUTING.md with coverage requirements and test instructions and modify README.md for Codecov token visibility (
99252b4)
Features
-
Add makefile QA and test setup (
e33ff96) -
create makefile for running and grouping QA and test commands
-
add pytest-cov, mypy, vulture, and deptry to dev dependencies.
-
configure vulture with minimum confidence and excluded specific patterns.
-
set up per-rule ignores for deptry.
-
configure mypy with Python version and warning options.
-
Add version management commands and pre-commit hook setup (
9536935) -
Update make init to auto-install pre-commit hooks
-
Add make bump-version to preview next version
-
Add make changelog to show unreleased changes
-
Add make check-version to display current/next versions
-
Add make update-hooks to keep pre-commit hooks current
-
Configure commitizen and semantic-release for v1.0.0 transition (
9cd0282) -
Add [tool.commitizen] section with version sync and changelog bumping
-
Update [tool.semantic_release] with angular parser and major_on_zero=true
-
Simplify build_command to use 'poetry build' directly
-
Enable Dependabot for pip and github-actions (5 PR limit each)
-
Create .pre-commit-config.yaml with commitizen commit-msg hook
-
Add pre-commit to dev dependencies
-
Modernize CI/CD workflows with Poetry caching and codecov integration (
56bf8fc) -
Replace curl-based Poetry installation with snok/install-poetry@v1
-
Enable isolated virtual environments (.venv in project root) for caching
-
Upgrade setup-python from v2/v4 to v5 for consistency
-
Add dependency caching with GitHub Actions cache
-
Add codecov integration with XML coverage reports and artifacts
-
Fix build-validation.yml matrix strategy with explicit job definitions
-
Add validation for all PR commits using cz check
-
Create version-preview workflow for automatic version bump detection
-
Remove redundant publish-to-pypi.yml workflow
Refactoring
-
Improve CLI argument parsing exit behavior (
f89c742) -
Add sys.exit(0) when no paths provided for cleaner UX
-
Print help message and exit cleanly instead of continuing
-
Improve code quality and type safety (
4abcd26) -
Replace mutable default arguments with None in utils.py:
- get_markdown_files_from_dir(exclude=None)
- get_markdown_files_from_args(exclude=None)
-
Add proper return type hints (list[str]) to:
- load_exclusion_patterns()
- get_markdown_files_from_dir()
- get_markdown_files_from_args()
-
Fix logging configuration to preserve error messages in non-verbose mode
- Change handler level from CRITICAL to WARNING
Testing
-
Add new test files and expand existing tests (
f914dea) -
tests/test_parsers.py(27 tests) - CoversMarkdownParserclass and all parsing methods - Tests code block filtering (critical for correctness) - Tests all reference types (basic, images, inline links) - Tests edge cases and error handling -
tests/test_main.py(20 tests) - CoversReferenceCheckerclass - Coversmain()orchestration function - Tests broken/valid reference detection - Tests remote checking with mocked HTTP responses - Tests summary printing and sorting -
tests/test_cli.py(18 tests) - Covers all CLI arguments and flags - Tests short and long flag variants - Tests flag combinations - Tests help/exit behavior -
tests/test_settings.py(15 tests) - CoversSettingsclass initialization - Tests all property accessors - Testsis_valid()method - Tests pytest detection logic -
tests/test_validators/test_remote_reference.py(16 tests) - Coversis_valid_remote_reference()function - Tests various HTTP status codes - Tests timeout and connection errors - Tests SSL certificate errors -
tests/test_utils.py- Added 7 tests forload_exclusion_patterns()- Tests with existing/missing.refcheckignore- Tests whitespace handling - Tests empty files and comments -
Create test infrastructure (
d80e598) -
Created
tests/conftest.pywith centralized fixtures:- Settings mocks for all flag combinations
- HTTP request mocks (success, 404, timeout, SSL errors)
- File system helpers (temp files, directory structures)
- Common test data (sample markdown content)
-
Created
tests/fixtures/directory structure:valid/- Valid markdown with various reference typescode_blocks/- Code block edge casesbroken_refs/- Intentionally broken referencesedge_cases/- Malformed syntax and special characters
-
Enhance test coverage configuration and enforce coverage thresholds (
a33f889)
Detailed Changes: v0.3.0...v0.4.0