Skip to content
CAI
Software that uses CAICheck a score

ionide/KeepAChangelog

61.1

Adequate · 3 October 2026

192

lines of production code

F#

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

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.