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
<PackageReference Include="SIL.ReleaseTasks" Version="3.0.0" />
paket add SIL.ReleaseTasks --version 3.0.0
#r "nuget: SIL.ReleaseTasks, 3.0.0"
// 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 toUNRELEASED
Urgency
: The value to put in the urgency field in the debian changelog. Defaults tolow
MaintainerInfo
: Name and e-mail of the maintainer. Defaults toAnonymous <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 <john_doe@example.com>" />
</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 propertyValue
(output parameter): The name of the property that will be setFilterEntries
: 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 | Versions 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. |
-
.NETFramework 4.7.2
- Markdig.Signed (>= 0.37.0)
-
.NETStandard 2.0
- Markdig.Signed (>= 0.37.0)
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