-
Notifications
You must be signed in to change notification settings - Fork 3
Build And Release
uml4net is developed using Visual Studio 2022.
The following tools are used by the Starion Group development team:
- Visual Studio 2022 Professional (Community Edtion will work as well)
- Resharper Ultimate 2024.2.1 or later
- Git Extensions
Follow the steps to create pre-release nugets that are not optimized using the Debug configuration or a release nugets using the Release configuration:
- Run all unit tests and verify that they pass
- Make sure the version numbers of the projects are incremented when things have changed; the project makes use of SEMVER.
- Update the
<PackageReleaseNotes>in the .csproj files; this will be visible on https://nuget.org - Via the GitHub web-ui
draft a new releasereferencing the tag and set therelease titletoVersion MAJOR.MINOR.PATCH. The description of the release shall mention the updates referencing the GitHub issue numbers.
NOTE: The
.csprojfiles contain settings that indicate that a symbols package is created as well. When usingdotnet pushto publish the packages on https://nuget.org, the symbols packages will be pushed as well.
First clean the solution and then pack. The pack command will build and create the nugets. The --include-source parameter is used to add the symbols and the source code to a specific symbols nuget.
dotnet clean -c Release uml4net.sln
dotnet pack --include-source -c Release uml4net.sln -o ReleaseBuilds
In case you want to push the new nugets to https://nuget.org use the following command. You will require an API Key. This needs to be repeated for each nuget that needs to be published.
dotnet nuget push uml4net.MAJOR.MINOR.PATCH.nupkg --source https://api.nuget.org/v3/index.json --api-key "your-api-key"
dotnet nuget push uml4net.Extensions.MAJOR.MINOR.PATCH.nupkg --source https://api.nuget.org/v3/index.json --api-key "your-api-key"
dotnet nuget push uml4net.xmi.MAJOR.MINOR.PATCH.nupkg --source https://api.nuget.org/v3/index.json --api-key "your-api-key"
dotnet nuget push uml4net.HandleBars.MAJOR.MINOR.PATCH.nupkg --source https://api.nuget.org/v3/index.json --api-key "your-api-key"
dotnet nuget push uml4net.Reporting.MAJOR.MINOR.PATCH.nupkg --source https://api.nuget.org/v3/index.json --api-key "your-api-key"
dotnet nuget push uml4net.Tools.MAJOR.MINOR.PATCH.nupkg --source https://api.nuget.org/v3/index.json --api-key "your-api-key"
the release.bat file automates these steps, execute it from the commandline using your nuget API key:
./release.bat <your-api-key>
The release.bat includes the uml4net.Tools package tool and publishes that to nuget. For windows users that do not have access to nuget.org to install the application a self-contained executable is made available. Run the following command from the solution folder.
dotnet publish -c Release uml4net.Tools\uml4net.Tools.csproj -r win-x64 --self-contained true -p:PublishSingleFile=true -o ReleaseBuilds
Compute the SHA-256 of the uml4net.Tools.Exe file. Upload the file to the release notes page and include the hash in the text.
copyright @ Starion Group S.A.