Skip to content

Build And Release

Alexander van Delft edited this page Aug 6, 2021 · 8 revisions

COMET is the new name for what was previously called the CDP4. We are transitioning the applications and software libraries. The code and documentation will still refer to CDP4 in a number of places while we are updating.

Development Environment

The COMET® SDK libraries are developed using Visual Studio 2019.

The following tools are used by the RHEA development team:

  • Visual Studio 2019 Professional (Community Edtion will work as well)
  • Resharper Ultimate 2019.3 or later
  • Git Extensions

Build

The COMET® SDK solution contains two build configurations:

  • debug: used while developing new features
  • release: used to create a build for release

Release

When new code is pushed to the GitHub repository, an azure pipeline builds the solution and pushes pre-release nugets to a pre-release nuget feed.

https://pkgs.dev.azure.com/RHEAGROUP/CDP-SDK/_packaging/cdp4-sdk-pre-release/nuget/v3/index.json

A manual build can be created as well, follow the steps to create pre-release nugets that are not optimized using the Debug configuration or a release nugets using the Release configuration:

  1. Run all unit tests and verify that they pass (with the exception of those tests that may need a running server)
  2. Make sure the version numbers of the projects are incremented when things have changed; the project makes use of SEMVER.
  3. Update the in the .csproj files; this will be visible on https://nuget.orgnuget.org
  4. Via the GitHub web-ui draft a new release referencing the tag and set the release title to Version MAJOR.MINOR.PATCH. The description of the release shall mention the updates referencing the GitHub issue numbers.

NOTE: The .csproj files contain settings that indicate that a symbols package is created as well. When using dotnet push to publish the packages on https://nuget.org, the symbols packages will be pushed as well.

pre-release

First clean the solution and then pack. The pack command will build and create the nugets. The --version-suffic parameter is used to add a suffix such as rc01.

comet@developer:~$ dotnet clean -c Debug
comet@developer:~$ dotnet pack --version-suffix "rcxy" -c Debug

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.

comet@developer:~$ dotnet nuget push CDP4Common-CE.MAJOR.MINOR.PATCH-rcxy.nupkg -s https://api.nuget.org/v3/index.json --api-key "your-api-key"

Alternative way is to copy all necessary .nupkg files to a temp folder and run the following command in that folder:

comet@developer:~$ dotnet nuget push *.MAJOR.MINOR.PATCH-rcxy.nupkg -s https://api.nuget.org/v3/index.json --api-key "your-api-key"

release

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. The symbols nuget will automatically be pushed to https://nuget.smbsrc.net.

comet@developer:~$ dotnet clean -c Release CDP4-SDK.sln
comet@developer:~$ dotnet pack -c Release CDP4-SDK.sln

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.

comet@developer:~$ dotnet nuget push CDP4Common-CE.MAJOR.MINOR.PATCH.nupkg -s https://api.nuget.org/v3/index.json --api-key "your-api-key"

Alternative way is to copy all the necessary .nupkg files to a temp folder and run the following command in that folder:

comet@developer:~$ dotnet nuget push *.MAJOR.MINOR.PATCH.nupkg -s https://api.nuget.org/v3/index.json --api-key "your-api-key"
Clone this wiki locally