DiffPal uses SemVer for user-facing releases.
The CLI version is built into release binaries with Omnidist ldflags:
VersionGitCommitBuildDate
diffpal version prints:
diffpal <version>+<git-commit> (<build-date>)
The npm package @diffpal/diffpal is the public CLI package. Omnidist also
builds platform-specific packages and release binaries from the same version.
Consumers should pin exact versions in credentialed CI jobs when repeatability
matters.
GitHub Action users can use the stable major tag, for example
diffpal/action@v1, or pin a more specific release. Azure users can use the
published DiffPal extension task version.
Configuration files use version: v1. DiffPal accepts an empty version or
v1; any other config version is rejected.
Minor releases should preserve v1 compatibility. New optional fields may be
added without requiring existing configs to change.
New findings writes use bundle version: v3. DiffPal readers accept v1,
v2, and v3 findings bundles.
Consumers should:
- treat
findings.jsonas the canonical artifact; - ignore unknown fields;
- use
versionandprompt.schema_versionwhen they need compatibility branching; - avoid depending on host-specific publishing plan files unless they are part of the selected integration.
- Pin the DiffPal CLI, provider CLI, and CI wrapper versions in credentialed jobs.
- Upgrade in a branch and run
diffpal doctor --mode <host>. - Run a same-repository PR/MR review before enabling gates on the new version.
- Keep uploaded artifacts for the first upgraded runs so schema or publisher differences are easy to inspect.