Repository navigation
Build And Release
samatrhea edited this page Oct 18, 2026
·
13 revisions
The solution has two build configurations:
- Debug: used while developing.
- Release: used to build the NuGet packages.
Release builds in CI set ContinuousIntegrationBuild=true, so the packages are deterministic: building the same commit twice gives identical packages.
The two packages version independently and follow Semantic Versioning. Increment the version of a package in its .csproj when it changes. When ReqIFSharp gets a new version, ReqIFSharp.Extensions gets one too, because it depends on it.
The packages are published on nuget.org by the Nuget-Release GitHub Action, which is started by hand with the version number.
- Run all unit tests and check that they pass.
- Increment the
<Version>of each package that changed. - In CHANGELOG.md, rename
## [Unreleased]to## [X.Y.Z] - YYYY-MM-DD, name the ReqIFSharp.Extensions version below the heading, add a new empty## [Unreleased]section and update the links at the bottom of the file. - Copy the entries into the
<PackageReleaseNotes>of the affected.csprojfiles. They are shown on nuget.org and used for the draft GitHub release.
Start the release action with the version number. It:
- updates the version and date in
CITATION.cffand commits that to the default branch - builds the release notes from the
<PackageReleaseNotes> - packs the solution and pushes the packages to nuget.org
- tags the commit with the version
- creates a draft GitHub release
- Review and publish the draft release in the GitHub web interface.
- Rebase master on development and push it.
copyright @ Starion Group S.A.