SIL.ReleaseTasks 3.0.0

Prefix Reserved
dotnet add package SIL.ReleaseTasks --version 3.0.0                
NuGet\Install-Package SIL.ReleaseTasks -Version 3.0.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SIL.ReleaseTasks" Version="3.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SIL.ReleaseTasks --version 3.0.0                
#r "nuget: SIL.ReleaseTasks, 3.0.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install SIL.ReleaseTasks as a Cake Addin
#addin nuget:?package=SIL.ReleaseTasks&version=3.0.0

// Install SIL.ReleaseTasks as a Cake Tool
#tool nuget:?package=SIL.ReleaseTasks&version=3.0.0                

SIL.ReleaseTasks package

SIL.ReleaseTasks provides several release related tasks that can work with a CHANGELOG.md file.

Tasks in the SIL.ReleaseTasks nuget package:

CreateChangelogEntry task

Given a Changelog file, this task will add an entry to the debian changelog (debian/changelog). The changelog can be a markdown file and can follow the Keep a Changelog conventions.

Properties

  • ChangelogFile: The name (and path) of the markdown-style changelog file (required)

  • VersionNumber: The version number to put in the debian changelog (required)

  • PackageName: The name of the product/package (required)

  • DebianChangelog: The path and name of the debian changelog file (required)

  • Distribution: The name of the distribution to put in the debian changelog entry. Defaults to UNRELEASED

  • Urgency: The value to put in the urgency field in the debian changelog. Defaults to low

  • MaintainerInfo: Name and e-mail of the maintainer. Defaults to Anonymous <anonymous@example.com>

Example

<UsingTask TaskName="CreateChangelogEntry" AssemblyFile="SIL.ReleaseTasks.dll" />

<Target Name="Test">
  <CreateChangelogEntry ChangelogFile="$(RootDir)/CHANGELOG.md" VersionNumber="3.0.1"
    PackageName="myfavoriteapp" DebianChangelog="$(RootDir)/debian/changelog"
    Distribution="stable" Urgency="high" MaintainerInfo="John Doe &lt;john_doe@example.com&gt;" />
</Target>

This uses the markdown file CHANGELOG.md and VersionNumber to generate a changelog entry in the DebianChangeLog file giving the author credit to John Doe.

CreateReleaseNotesHtml task

Given a markdown-style changelog file, this class will generate a release notes HTML file. The changelog can be a markdown file and can follow the Keep a Changelog conventions.

If the HTML file already exists, the task will look for a section with class="releasenotes" and replace it with the current release notes.

Properties

  • ChangelogFile: The name (and path) of the markdown-style changelog file (required)

  • HtmlFile: The name (and path) of the output HTML file (required)

Example

<UsingTask TaskName="CreateReleaseNotesHtml" AssemblyFile="SIL.ReleaseTasks.dll" />

<Target Name="Test">
  <CreateReleaseNotesHtml ChangelogFile="$(RootDir)/CHANGELOG.md"
    HtmlFile="$(OutputDir)/ReleaseNotes.html" />
</Target>

This generates a ReleaseNotes.html file by creating a new file or by replacing the <div class='releasenotes'> in an existing .htm with a generated one.

StampChangelogFileWithVersion task

Replaces the first line in a markdown-style Changelog/Release file with the version and date. The changelog can be a markdown file and can follow the Keep a Changelog conventions.

This assumes that a temporary line is currently at the top: e.g. ## DEV_VERSION_NUMBER: DEV_RELEASE_DATE

Properties

  • ChangelogFile: The name (and path) of the markdown-style changelog file (required)

  • VersionNumber: The version number to put in the changelog file (required)

  • DateTimeFormat: The format string used to output the date. Default: yyyy-MM-dd

Example

<UsingTask TaskName="StampChangelogFileWithVersion" AssemblyFile="SIL.ReleaseTasks.dll" />

<Target Name="Test">
  <StampChangelogFileWithVersion ChangelogFile="$(RootDir)/CHANGELOG.md"
    VersionNumber="1.0.3" DateTimeFormat="dd/MMM/yyyy" />
</Target>

This stamps the CHANGELOG.md file with the version numbers (replacing the first line with '## VERSION_NUMBER DATE').

SetReleaseNotesProperty task

Sets a property to the changes mentioned in the topmost release in a CHANGELOG.md file. This is a markdown file that follows the Keep a Changelog conventions.

Properties

  • ChangelogFile: The name (and path) of the markdown-style changelog file. Defaults to ../CHANGELOG.md.

  • VersionRegex: Regular expression to extract the version number from the subheadings in the changelog file. Default: #+ \[([^]]+)\]

  • AppendToReleaseNotesProperty: Text that gets added to the end of the property

  • Value (output parameter): The name of the property that will be set

  • FilterEntries: Filters out entries that do not belong to a specific nuget package, when enabled.

Example

<UsingTask TaskName="SetReleaseNotesProperty" AssemblyFile="SIL.ReleaseTasks.dll" />

<Target Name="Test">
  <PropertyGroup>
    <TextToAdd><![CDATA[
See full changelog at https://github.com/sillsdev/SIL.BuildTasks/blob/master/CHANGELOG.md]]>
    </TextToAdd>
    <FilterEntries>true</FilterEntries>
  </PropertyGroup>
  <SetReleaseNotesProperty ChangelogFile="$(RootDir)/CHANGELOG.md"
    AppendToReleaseNotesProperty="$(TextToAdd)">
    <Output TaskParameter="Value" PropertyName="ReleaseNotes" />
  </SetReleaseNotesProperty>
</Target>

Automatically create release notes

By adding the SIL.ReleaseTasks nuget package to a project, the PackageReleaseNotes property will be automatically set when creating a nuget package of the .csproj project. This works with the new .csproj format that comes with VS 2017 and that defines the nuget package in the .csproj file.

If you don't want to automatically set the PackageReleaseNotes property, you can set the IgnoreSetReleaseNotesProp property to true.

By default the changelog file is expected in ../CHANGELOG.md. The name and path can be changed by setting the ChangelogFile property.

Keep a Changelog doesn't make any recommendations in what form versions should be put in the changelog. The default for the SetReleaseNotesProperty task follows the example given on the Keep a Changelog website, which puts the version number in square brackets, e.g. ## [1.0.0] - 2017-06-20. However, it's possible to set the VersionRegex property to allow parsing different formats.

NOTE: Due to msbuild bug #3468 the escape character is @ instead of \ (backslash)! To insert @ in the regular expression, double it: @@.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 is compatible.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on SIL.ReleaseTasks:

Package Downloads
GlyssenShared

Interfaces and low-level classes needed by all products that work with Glyssen projects

GlyssenEngine

Library for working with Glyssen project data, including scripts and casting

Lengoo.SDK

The Lengoo SDK is a tool designed for .NET developers to simplify the use of Lengoo's services. It currently supports Lengoo's Connect and Translate REST APIs. This SDK allows for rapid integration of both human and machine translation capabilities into your application.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on SIL.ReleaseTasks:

Repository Stars
getsentry/sentry-dotnet
Sentry SDK for .NET
Version Downloads Last updated
3.0.0 783 11/8/2024
2.6.0-beta0044 70 11/8/2024
2.6.0-beta0042 70 11/7/2024
2.6.0-beta0036 73 11/6/2024
2.6.0-beta0032 134 10/18/2024
2.6.0-beta0030 2,797 8/11/2023
2.6.0-beta0028 131 8/7/2023
2.6.0-beta0024 1,743 11/23/2022
2.6.0-beta0023 154 8/9/2022
2.6.0-beta0022 165 8/9/2022
2.6.0-beta0020 169 8/5/2022
2.6.0-beta0010 154 8/5/2022
2.6.0-beta0008 4,230 8/12/2021
2.6.0-beta0007 212 8/2/2021
2.6.0-beta0006 221 8/2/2021
2.5.1-beta0005 250 5/27/2021
2.5.1-beta0004 259 5/27/2021
2.5.1-beta0003 215 5/18/2021
2.5.1-beta.2 168 3/19/2021
2.5.0 96,843 2/24/2021
2.4.0 466 1/22/2021
2.3.4 5,187 10/5/2020
2.3.3 634 7/31/2020
2.3.2 617 5/22/2020
2.3.1 605 5/19/2020
2.3.0 556 4/16/2020
2.2.0 20,687 12/11/2018
2.1.0 910 7/28/2018
2.0.2 906 7/2/2018
2.0.1 944 6/29/2018
2.0.0 987 6/18/2018

Changes since version 2.5.0

Added:
- Added filter option for project-specific entries (#48)

Changed:
- Target .NET 4.7.2 instead of 4.6.1
- SIL International changed to SIL Global
- BREAKING DEPENDENCY CHANGE: Upgraded to NUnit 4 (see https://docs.nunit.org/articles/nunit/release-notes/breaking-changes.html)

Fixed:
- Exclude links from CHANGELOG.md file when extracting release notes (#46)

See full changelog at https://github.com/sillsdev/SIL.BuildTasks/blob/master/CHANGELOG.md