ionide/KeepAChangelog
61.1
Adequate · 3 October 2026
192
lines of production code
F#
primary language
2
measurements over time
What this system is
This system is a .NET MSBuild task designed to parse Markdown changelog files and automatically populate package metadata such as version and release notes. It features robust parsing capabilities that handle non-standard changelog formats and supports multithreaded execution for improved build performance. The project includes comprehensive testing and centralized dependency management to ensure stability and compatibility across different .NET runtime versions.
Removals
Removal of MSBuild changelog parsing task
The \ParseChangeLogs\ MSBuild task and its associated \Ionide.KeepAChangelog.targets\ file have been removed from the project. This eliminates the automatic integration where build processes previously parsed changelog files to set the \Version\, \PackageVersion\, and \PackageReleaseNotes\ properties based on the current release data.
src/Ionide.KeepAChangelog.Tasks · high confidence
Behavioural changes
Changelog parser now supports sectionless entries and order-independent parsing
The changelog parser in Ionide.KeepAChangelog has been updated to handle markdown changelogs that do not strictly follow the 'Keep a Changelog' section structure. It now parses entries regardless of the order in which sections appear and correctly extracts content from releases that lack explicit section headers (such as 'Added' or 'Fixed'). This ensures that changelog data is captured more robustly, even when the source document deviates from the standard format.
src/Ionide.KeepAChangelog · high confidence
MSBuild task now supports multithreaded execution
The MSBuild task resolves changelog file inputs from \ITaskItem.FullPath\ instead of relative paths, ensuring that relative paths remain project-relative during multithreaded execution. This change allows the tool to support MSBuild multithreaded execution without requiring newer MSBuild packages, improving build performance and stability in parallelized build scenarios.
(repo-wide) · high confidence
Multithreaded changelog parsing with .NET 8 support
The MSBuild task for parsing changelogs now supports multithreaded execution, ensuring that file paths are resolved correctly via \FullPath\ metadata to remain project-relative during concurrent builds. This change also updates the runtime to .NET 8 and upgrades the \KeepAChangelogParser\ dependency to version 2.0.1, which allows for more tolerant parsing of changelogs containing asterisks and nested lists.
src · high confidence
Test coverage
Added integration and unit tests for the changelog parsing task; Removed legacy test runner file.
Dependencies
Centralized dependency management and MSBuild task dependency bundling
The project now uses a central \Directory.Packages.props\ file to manage versions for all packages, including \KeepAChangelogParser\ (2.0.1), \Microsoft.Build.Utilities.Core\ (17.8.43), and \DotNet.ReproducibleBuilds\ (1.2.25). The \Ionide.KeepAChangelog.Tasks\ project has been restructured to bundle its dependencies (such as \FsToolkit.ErrorHandling\, \KeepAChangelogParser\, and \Semver\) directly into the package using \CopyLocalLockFileAssemblies\ and \CopyProjectReferencesToPackage\, ensuring consumers are not affected by end-user dependency pollution. Additionally, the package is now marked as a \DevelopmentDependency\ and targets both \net472\ and \net8.0\.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 61 → 61 (+0.0)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (+0.0)
- Architecture 69 → 69 (+0.0)
- Maturity 59 → 59 (+0.0)
- Readiness 55 → 55 (+0.0)
- Security 70 → 70 (+0.0)
Resolved (1)
- Documentation: no architecture or design documentation (README.md)
Changes since last survey
- 3 commits — 3 feature/other, 0 fixes
By area
- (repo) — 1 commit
- (root) — 1 commit
- tests/UnitTests.fs — 1 commit
Notable commits
- change: Format multithreaded task tests
- change: Merge pull request #44 from ionide/baronfel-msbuild-multithreaded-task
- change: Support multithreaded MSBuild execution
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
ionide/KeepAChangelog was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 701b7e1088d4eca3aa2c549f0562322a1fb2984a — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-4f4226d619ea.