diff --git a/CHANGELOG.md b/CHANGELOG.md index ae23a0d..29e0570 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### New features - A new property `CompletePublishFolderMetadataDependsOn` has been added. The `CompletePublishFolderMetadata` target will depend on targets listed in this property. This is useful to separate concerns among alternate pack methods. +- The new `ReleaseAssetList` module allows for creation of lists of assets to associate with a release, useful when releases are created externally (GitHub, etc.) and associated assets are the only way to retrieve published artifacts. + - release asset list generation is enabled by the `GenerateReleaseAssetList` boolean property, defaulting to `true` except in libraries and test projects; + - to include a file in the release asset list for a project, just add one or more `ReleaseAsset` items; + - the `Description` metadata of `ReleaseAsset` items can be used to add a textual description of each asset, for CI systems that can use it; + - release assets without a `Description` metadata are given a default description according to the `DefaultReleaseAssetDescription` property, whose default value is "(no description given)"; + - release asset lists are UTF-8 text files; + - each row of a release asset list contains the full path of an asset, a tab character (Unicode U+0009), and the asset's description; + - rows are separated by the build system's line separator (CR+LF on Windows, LF otherwise); + - each project in a solution generates its own release asset list, whose name can be set via the `ReleaseAssetListFileName` property, defaulting to `$(MSBuildProjectName).assets.txt`; + - all release asset lists for a solution are placed in the artifacts directory, `$(ArtifactsDirectory)$(Configuration)`. - New metadata in `PublishFolder` items allow for zipping a published folder: - `CreateZipFile` (boolean) enables the creation of a ZIP file with the contents of the published folder; - `ZipFileName` (string) is the name (complete with extension) of the created ZIP file; @@ -21,7 +31,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `$(MSBuildProjectName)-%(PublishFolder.Identity)_$(BuildVersion).zip` if the `BuildVersion` property is set (such as when using Nerdbank.GitVersioning); - `$(MSBuildProjectName)-%(PublishFolder.Identity).zip` otherwise. - ### Changes to existing features - The minimum supported version of Roslyn is now 4.7 diff --git a/docs/Diagnostics.md b/docs/Diagnostics.md index 2606478..7d896cc 100644 --- a/docs/Diagnostics.md +++ b/docs/Diagnostics.md @@ -12,6 +12,7 @@ - [XmlDocumentation module (1800-1899)](#xmldocumentation-module-1800-1899) - [AlternatePack module (1900-1999)](#alternatepack-module-1900-1999) - [NerdbankGitVersioning module (2000-2099)](#nerdbankgitversioning-module-2000-2099) +- [ReleaseAssetList module (2100-2199)](#releaseassetlist-module-2100-2199) ## Overview @@ -100,3 +101,9 @@ Each module is assigned a contiguous range of 100 diagnostics, as listed below. | Code | Severity | Message | Description | | -----| :------: | ------- | ----------- | | BVSDK2000 | Error | Version specification JSON file not found. | A `version.json` or `.version.json` file for the project was not found within the repository root. | + +## ReleaseAssetList module (2100-2199) + +| Code | Severity | Message | Description | +| -----| :------: | ------- | ----------- | +| This module has no associated diagnostics. | | | | diff --git a/src/Buildvana.Sdk/Modules/ReleaseAssetList/Module.Core.targets b/src/Buildvana.Sdk/Modules/ReleaseAssetList/Module.Core.targets new file mode 100644 index 0000000..bc541a7 --- /dev/null +++ b/src/Buildvana.Sdk/Modules/ReleaseAssetList/Module.Core.targets @@ -0,0 +1,50 @@ + + + + + + (no description given) + + + + + + + + + + + + + + + + + $(MSBuildProjectName).assets.txt + $(ArtifactsDirectory)$(Configuration)\$(ReleaseAssetListFileName) + + + + + + + + + + + + + diff --git a/src/Buildvana.Sdk/Modules/ReleaseAssetList/Module.targets b/src/Buildvana.Sdk/Modules/ReleaseAssetList/Module.targets new file mode 100644 index 0000000..1725d88 --- /dev/null +++ b/src/Buildvana.Sdk/Modules/ReleaseAssetList/Module.targets @@ -0,0 +1,17 @@ + + + + + true + false + + + + + false + + + + +