ReleaseTools.ScalVer 1.20260906.10

dotnet tool install --global ReleaseTools.ScalVer --version 1.20260906.10
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local ReleaseTools.ScalVer --version 1.20260906.10
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=ReleaseTools.ScalVer&version=1.20260906.10
                    
nuke :add-package ReleaseTools.ScalVer --version 1.20260906.10
                    

Scalable Calendar Versioning (ScalVer)

Overview

ReleaseTools.ScalVer is a .NET tool that combines a manually controlled major version with a date and commit count. It prints the version to stdout, making it suitable for local scripts and release pipelines.

ScalVer combines Semantic and Calendar Versioning:

{MAJOR}.{DATE}.{PATCH}
  • MAJOR — reserved for breaking changes, bumped manually via -m
  • DATE — calendar component from the effective HEAD commit date in UTC (YYYY, YYYYMM or YYYYMMDD)
  • PATCH — number of commits within the current date window (like CalVer)

Every ScalVer version is syntactically valid SemVer, so package managers and version comparison work unchanged:

1.2025.0 < 1.202502.0 < 1.20250223.0 < 2.2025.0

Installation

dotnet tool install --global ReleaseTools.ScalVer

The installed command is scalver. To upgrade an existing installation:

dotnet tool update --global ReleaseTools.ScalVer

Requirements

  • The .NET 10 SDK
  • Git available on PATH
  • A Git repository with at least one commit
  • Full Git history; shallow clones can undercount commits in the selected date window

In GitHub Actions, configure actions/checkout with fetch-depth: 0 so the full commit history is available.

Usage

scalver -m <MAJOR> [options]

Options

Option Description
-m, --major <N> Major version (required); bump it yourself for breaking changes
-d, --date-format <FMT> YYYY, YYYYMM or YYYYMMDD (default: YYYYMM)
-f, --folder <PATH> Use a tracked repository-relative folder's history and effective HEAD
-p, --prerelease <ID> Append prerelease identifier (e.g. alpha, rc)
-b, --buildmetadata Append short commit SHA as build metadata
-o, --output <text\|json> Output format (default: text)

Date Formats and PATCH Windows

Format Renders (Feb 23, 2025) PATCH counts commits in
YYYY 1.2025.3 the year
YYYYMM 1.202502.3 the month
YYYYMMDD 1.20250223.3 the day

The DATE segment may lengthen over time within a MAJOR line (YYYY → YYYYMM → YYYYMMDD) but should never shrink — shrink requires a MAJOR bump. The tool does not enforce this; it's a convention you follow by choosing -m and -d deliberately.

Breaking Changes

There is no commit-message analysis: when you make a breaking change, bump -m yourself. The date window's commit count keeps PATCH meaningful without any tags.

Examples

# Monthly cadence, 3 commits this month
scalver -m 1
# 1.202502.3

# Daily cadence
scalver -m 1 -d YYYYMMDD
# 1.20250223.1

# Breaking change: you decide
scalver -m 2
# 2.202502.3

# Prerelease + build metadata
scalver -m 1 -p rc -b
# 1.202502.3-rc+a1b2c3d

When to Use ScalVer

  • Projects needing time-based clarity (when was this released?)
  • Projects needing SemVer compatibility (does this break my API?)
  • Projects with varying release cadence (yearly → monthly → daily)
  • Projects with both stable and rapidly-changing components
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.20260906.10 127 9/6/2026