- Download the compiler artifact manually, check the actual version.
- Update the
VersionPrefixand theCompilerSha256Hashin thePascalABC.NET.Compiler/PascalABC.NET.Compiler.proj. - Check if the license for the compiler was updated; if so, then update the
LicenseCommitHashand the metadata for everyLicenseArtifactitem in thePascalABC.NET.Compiler/PascalABC.NET.Compiler.proj. - Update the
_PascalABCNETCompilerPackageVersionPrefixin thePascalABC.NET.SDK/Sdk/Sdk.props. - Create a PR with these changes to the
mainbranch. - Ensure the CI works and merge the PR.
- Check if the
fvnever.pascalabc.net.sdk.compiler.githubNuGet key is still valid (see the Rotate NuGet Publishing Keys section if it isn't). - Trigger the Pack the Compiler workflow on GitHub Actions. It will upload the package to nuget.org.
- Update the copyright year in the
LICENSE.md, if required. - Choose a new version according to Semantic Versioning.
- Update the package version in the following places:
PascalABC.NET.SDK/PascalABC.NET.SDK.csproj(theVersionPrefixelement)README.md(the example section, look forSdk=)PascalABC.NET.SDK.Demo/PascalABC.NET.SDK.Demo.pasproj(line 1)
- Make sure there's a properly formed version entry in the
CHANGELOG.md(often it can be created by renaming the Unreleased section). - Merge the changes to the
mainbranch via a pull request. - Check if the
fvnever.pascalabc.net.sdk.githubNuGet key is still valid (see the Rotate NuGet Publishing Keys section if it isn't). - Push a tag named
v<VERSION>to GitHub.
CI relies on NuGet API key being added to the secrets. From time to time, this key requires maintenance: it will become obsolete and will have to be updated.
To update the key:
-
Sign in onto nuget.org.
-
Go to the API keys section.
-
Update the existing or create new keys with the following parameters:
fvnever.pascalabc.net.sdk.compiler.githubwith permission to Push only new package versions and only allowed to publish the package FVNever.PascalABC.NET.Compiler,fvnever.pascalabc.net.sdk.githubwith permission to Push only new package versions and only allowed to publish the package FVNever.PascalABC.NET.SDK.
(If this is the first publication of a new package, upload temporary short-living keys with permission to add new packages, and rotate them afterward.)
-
Paste the generated keys to the variables, correspondingly,
COMPILER_NUGET_TOKENandSDK_NUGET_TOKENon the action secrets section of GitHub settings.