Automatically stamps .NET assemblies, NuGet packages, and NPM packages with unique, semantic versions derived from git commits.
Nerdbank.GitVersioning is a versioning tool for .NET and Node.js projects that automatically generates unique, semantic version numbers based on git commit history. It solves the problem of manual version management by stamping assemblies, NuGet packages, and NPM packages with reproducible versions derived from a simple configuration file, ensuring every commit has a distinct version for traceability.
Developers and teams working on .NET or Node.js projects who need automated, reproducible versioning for continuous integration, package publishing, or build pipelines.
Developers choose Nerdbank.GitVersioning for its emphasis on build reproducibility without dependencies on git tags or branch names, its seamless integration with MSBuild and NPM, and its ability to provide runtime access to version details through generated code.
Stamp your assemblies, packages and more with a unique version generated from a single, simple version.json file and include git commit IDs for non-official builds.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Prioritizes absolute reproducibility by not depending on git tags or branch names, ensuring every commit produces a unique version that is consistent across clones and environments.
Provides MSBuild and NPM integration to automatically stamp assemblies, NuGet packages, NPM packages, and executables with computed versions, streamlining CI/CD pipelines.
Generates a ThisAssembly class in .NET projects, giving code runtime access to version information, strong name keys, and other build details without manual updates.
Allows control over base version numbers, git height increments, and prerelease labels via a simple version.json file, enabling customized semantic versioning schemes.
Requires the .NET runtime even for Node.js projects, adding an external dependency that can complicate setup in pure JavaScript or non-.NET environments.
Primarily designed for .NET and Node.js, with no native integration for other programming languages or build tools, restricting its use in multi-language projects.
Understanding concepts like git height and semantic versioning rules in version.json may require upfront learning, especially for teams new to automated versioning.