All Classes and Interfaces

Class
Description
Gradle-facing configuration for ChangelogGenerator, registered by ReleaseFlowPlugin as the changelog { } extension.
Turns a list of commit messages into grouped Markdown release notes, the same idea implemented by tools like conventional-changelog and git-cliff: group by the CommitAnalyzer.Bump each commit resolves to (using the same typeRules the version bump itself uses), not by the raw commit type word, so a custom majorTypes entry (e.g.
How far back the release-flow plugin's changelog generator should look when generating notes for a release candidate (the changelogForReleaseCandidate task, controlled via the changelog { rcScope = ... } extension).
Minimal Java port of the semantic-release commit-analyzer concept (https://github.com/semantic-release/commit-analyzer), scoped to the default Conventional Commits (https://www.conventionalcommits.org/) / Angular rule set only - there is deliberately no configurable "preset" system here, unlike the JS original, since this plugin only ever needs the one rule set.
The four possible outcomes of analyzing a commit (or a batch of commits), in ascending severity.
The syntactic parse of a commit message, independent of any type -> bump configuration - see CommitAnalyzer.parse(String).
Gradle-facing configuration for CommitAnalyzer's type-to-bump mapping.
Constructing a JGit Repository (via RepositoryBuilder().build()) makes JGit shell out to the real git binary (git --version, then git config --system --show-origin --list -z) the first time it needs the system-level git config - SystemReader.getSystemConfig() -> openSystemConfig() -> FS.discoverGitSystemConfig() -> FS.readPipe() - because there's no portable file-path convention for where that config lives.
checkReleaseWorkflows's read-only counterpart to ManagedFileInstaller: parses the marker left by a matching install(...) call and reports whether the installed file is missing, foreign (no marker, or a marker for a different componentId), edited-since-install, stale, or up to date.
 
 
Safe-install logic behind "install a versioned, self-updating file" tasks (e.g.
 
The "# duckasteroid-managed: componentId version sha256:hash" marker comment that a ManagedFileInstaller.install(...) call stamps as the first line of every file it installs, and that a matching ManagedFileChecker.check(...) call later re-parses to detect staleness/tampering.
Gradle-facing configuration for how the tagReleaseCandidates/tagReleaseCandidate tasks treat previous release candidates once a new one is minted, registered by ReleaseFlowPlugin as the releaseCandidates { } extension.
Opt-in release-engineering tasks for a develop -> release -> main git flow.
Plain-file/process helpers for ReleaseFlowPlugin's doLast blocks - changelog writing, tagging/pushing via the git CLI, and the manifest's relative-path formatting.
The build/release-manifest.json file written by the tagReleaseCandidates / promoteReleaseCandidates aggregator tasks (ReleaseFlowPlugin) - one entry per project that actually got tagged on a given run, read back by the bundled GitHub Actions workflow to turn into one gh release create per entry, instead of guessing a single tag via git describe --tags --exact-match HEAD (which only ever worked when exactly one project released per push).
 
Computes project.version from git history plus Conventional Commits - a small semantic-release commit-analyzer port (VersionResolver/CommitAnalyzer).
Shared per-module version-analysis snapshot behind explainVersion/explainVersions - both tasks' console output and their build/version-report.json file are built from exactly the same VersionReport.Entry, so the two can never drift from each other, and VersionReport.buildEntry(java.lang.String, java.io.File, java.lang.String, java.lang.String, java.util.List<java.lang.String>, java.util.Map<io.github.duckasteroid.gradle.versioning.CommitAnalyzer.Bump, java.util.Set<java.lang.String>>, java.util.List<java.lang.String>, java.lang.String, java.lang.String) calls the exact same VersionResolver methods tagReleaseCandidate(s) itself calls, so the preview can never drift from what tagging would actually do either.
One commit's syntactic parse plus the bump it resolves to - see CommitAnalyzer.
One project's full version-analysis breakdown.
Gradle-facing configuration for explainVersion/explainVersions' structured JSON report, registered by ReleaseFlowPlugin as the versionReport { } extension.
Derives project versions from git history rather than a single nearest tag.