NowAround.DevOps.Versioning.Cli 1.2.1

NowAround.DevOps.Versioning.Cli

Private .NET tool for generating NowAround build metadata from stable git tags, Azure DevOps PR labels, build identity, and commit identity.

nowaround-versioning pipelines --mode pr|main|release
nowaround-versioning local

Build Metadata Model

Every command produces one metadata result containing:

BaseVersion
ProductVersion
PackageVersion
BuildChannel
BuildId
CommitSha
ShortCommitSha
AssemblyVersion
FileVersion
InformationalVersion
VersionBump
PullRequestId
LastStableTag

ProductVersion is the stable semantic product version:

1.1.0

PackageVersion is the NuGet and Docker distribution version:

pr      -> 1.1.0-pr.11.126
main    -> 1.1.0-ci.127
release -> 1.1.0
local   -> 1.1.0-dev.abc123def456

InformationalVersion is the runtime observability identity:

1.1.0+channel.ci.sha.abc123def456.build.127
1.1.0+channel.pr.pr.11.sha.abc123def456.build.126

PackageVersion is not the full build identity. ProductVersion is the stable product identity. InformationalVersion is the full runtime build identity.

Output

--output text prints all metadata.

--output json serializes the central metadata model.

--output value prints only PackageVersion.

--output azure-pipelines preserves:

BaseVersion
NextVersion
PackageVersion
VersionBump
LastStableTag

and adds:

NowAroundProductVersion
NowAroundPackageVersion
NowAroundBuildChannel
NowAroundBuildId
NowAroundCommitSha
NowAroundShortCommitSha
NowAroundAssemblyVersion
NowAroundFileVersion
NowAroundInformationalVersion

Artifact decision and dependency channel variables are still supported.

MSBuild Props

Generate props before restore/build/test/pack:

nowaround-versioning pipelines \
  --mode main \
  --output azure-pipelines \
  --write-msbuild-props .version/NowAround.Version.props

The props file contains every NowAround* metadata property and maps the standard properties:

Version
PackageVersion
AssemblyVersion
FileVersion
InformationalVersion

Import it from Directory.Build.props:

<Project>
  <Import Project="$(MSBuildThisFileDirectory).version/NowAround.Version.props"
          Condition="Exists('$(MSBuildThisFileDirectory).version/NowAround.Version.props')" />
</Project>

Docker Build Contract

Pass these values to service Docker builds:

NOWAROUND_PRODUCT_VERSION
NOWAROUND_PACKAGE_VERSION
NOWAROUND_BUILD_CHANNEL
NOWAROUND_BUILD_ID
NOWAROUND_COMMIT_SHA
NOWAROUND_SHORT_COMMIT_SHA
NOWAROUND_ASSEMBLY_VERSION
NOWAROUND_FILE_VERSION
NOWAROUND_INFORMATIONAL_VERSION

Use the product, package, assembly, file, and informational values as the corresponding dotnet build properties.

Local Development

nowaround-versioning local \
  --output value \
  --cache-file .version/cache.json \
  --write-msbuild-props .version/NowAround.Version.props \
  --access-token "$AZURE_DEVOPS_PAT" \
  --access-token-type pat

A valid cache avoids Azure DevOps calls. Stale or incompatible caches are recalculated, and --refresh-cache forces recalculation.

The intended local flow is:

dotnet build
  -> Directory.Build.targets
  -> local version script
  -> nowaround-versioning local
  -> .version/NowAround.Version.props
  -> generated assembly/package metadata

.version/ is generated, gitignored build state.

Version Decisions

PR mode may infer and persist a missing bump label. Main and release mode use persisted labels from completed PRs since the latest stable tag:

semver:major
semver:minor
semver:patch
semver:none

Fetch full history and tags in pipelines:

- checkout: self
  fetchDepth: 0
  persistCredentials: true

This package has no dependencies.

Version Downloads Last updated
2.0.0 24 06/15/2026
1.2.1 4 06/15/2026
1.2.0 42 06/01/2026
1.2.0-ci.251 1 06/01/2026
1.2.0-ci.216 1 05/23/2026
1.1.0 42 05/23/2026
1.1.0-ci.211 1 05/23/2026
1.1.0-ci.209 1 05/23/2026
1.0.3 5 05/23/2026
1.0.2 3 05/23/2026
1.0.1 33 05/15/2026
1.0.0 6 05/14/2026
0.1.1 5 05/14/2026
0.1.0 5 05/14/2026
0.0.3 8 05/14/2026
0.0.2 3 05/14/2026
0.0.1 4 05/14/2026