Ionide.KeepAChangelog 0.2.0

dotnet add package Ionide.KeepAChangelog --version 0.2.0                
NuGet\Install-Package Ionide.KeepAChangelog -Version 0.2.0                
本命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块版本的 Install-Package.
<PackageReference Include="Ionide.KeepAChangelog" Version="0.2.0" />                
对于支持 PackageReference 的项目,请将此 XML 节点复制到项目文件中,以引用该包。
paket add Ionide.KeepAChangelog --version 0.2.0                
#r "nuget: Ionide.KeepAChangelog, 0.2.0"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将其复制到交互工具或脚本的源代码中以引用包。
// Install Ionide.KeepAChangelog as a Cake Addin
#addin nuget:?package=Ionide.KeepAChangelog&version=0.2.0

// Install Ionide.KeepAChangelog as a Cake Tool
#tool nuget:?package=Ionide.KeepAChangelog&version=0.2.0                

Ionide.KeepAChangelog

该项目实现了一个根据 KeepAChangelog 中指定的规范进行的变更日志解析器。它还提供 MSBuild 任务和目标来自动设置您的 NuGet 包的 版本包发布说明,以便变更日志是您的真相来源。

配置此包后,它将使用来自最新变更日志发布中匹配的数据设置可打包项目的 VersionPackageVersionPackageReleaseNotes,以及添加 BuildDate 的 AssemblyMetadata,格式为 YYYY-mm-dd

安装

MSBuild 包编写为一组任务和目标,这些任务和目标会被自动使用。您只需安装 Ionide.KeepAChangelog.Tasks 包即可!

<ItemGroup>
    <PackageReference Include="Ionide.KeepAChangelog.Tasks" Version="<insert here>" PrivateAssets="all" />
</ItemGroup>

示例

看看这个库如何帮助您可能很有帮助。想象您有一个这样的项目文件

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="Main.fs" />
  </ItemGroup>
</Project>

和一个像这样的 CHANGELOG.md 文件

# Changelog

## 1.0.0 - 2022-01-14

### Added

* Initial release

使用此库打包项目将产生与打包如下所示的项目相同的结果

<Project Sdk="Microsoft.NET.Sdk">
 <PropertyGroup>
   <TargetFramework>netstandard2.0</TargetFramework>
   <GenerateDocumentationFile>true</GenerateDocumentationFile>
   <Version>1.0.0</Version>
   <PackageVersion>1.0.0</PackageVersion>
   <ReleaseNotes>
## 1.0.0 - 2022-01-14

### Added

* Initial release
   </ReleaseNotes>
 </PropertyGroup>
 <ItemGroup>
   <Compile Include="Main.fs" />
 </ItemGroup>
</Project>

如果您的变更日志有多个版本,将使用最新版本。

自定义

对于这些目标,只有一个属性是重要的,那就是 ChangelogFile。它需要指向您要读取的变更日志文件,但默认情况下该文件位于默认项目根目录的 CHANGELOG.md,以防您想遵守默认设置。

API

在任务运行时,它将写入几个输出项和属性

名称 类型 描述
UnreleasedChangelog UnreleasedChangelogData 选项 如果存在,版本变更日志中会包含一个“未发布”的部分。此结构将包含所有存在的部分。
CurrentReleaseChangelog ReleaseChangelogData选项 如果存在,版本变更日志中至少有一个发布记录。此结构将包含每个记录的详细信息。
AllReleasedChangelogs ReleaseChangelogData列表 包含在ChangelogFile中所有已发布的按降序排列的有序列表。
LatestReleaseNotes string选项 如果存在,包含最新发布的所有Changelog部分连接后的列表。这是一个方便属性,这样您就不必自行使用String.Join连接所有的ReleaseChangelogData中的行!

ChangelogData

该TaskItem具有对Changelog中每个已知部分的元数据

  • 新增
  • 修改
  • 弃用
  • 移除
  • 修复
  • 安全

在每种情况下,元数据的值是该部分的全部Changelog条目换行连接的列表。

UnreleasedChangelogData

此结构是具有"Unreleased"标识符的ChangelogData

ReleaseChangelogData

此结构与ChangelogData相同,但它包含两个额外的元数据项

  • TaskItemIdentity是发布的语义版本
  • TaskItemDate是发布日期的YYYY-MM-DD格式日期

如何贡献

冒名顶替综合症免责声明:我希望得到您的帮助。真的,我是。

可能有一个小声音在告诉你你还没有准备好;你需要做更多的教程,或学习另一个框架,或再写几篇博客,然后你才能帮助我完成这个项目。

我向您保证,事实并非如此。

该项目有一些明确的贡献指南和期望,您可以在这里阅读。

贡献指南概述了您需要遵循的过程,以便合并补丁。通过明确说明期望和过程,我希望这将使您更容易做出贡献。

而您不仅需要编写代码。您可以通过编写文档、测试,甚至通过提供关于此工作的反馈来提供帮助。(是的,这包括提供关于贡献指南的反馈。)

感谢您的贡献!

该项目托管在GitHub上,您可以在那里报告问题、复制项目并提交_pull请求。

该库可在MIT许可下使用,该许可允许修改和商业及非商业目的的分发。

请注意,该项目以Contributor Code of Conduct发布。您参与该项目即表示同意遵守其条款。

产品 兼容和额外的计算目标框架版本。
.NET net5.0 已计算。 net5.0-windows 已计算。 net6.0 已计算。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
.NET Core netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。
.NET Standard netstandard2.0 兼容。 netstandard2.1 已计算。
.NET Framework net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容目标框架
包括的目标框架(在包中)
了解更多关于 目标框架.NET Standard 的信息。

NuGet 包

此包未由任何 NuGet 包使用。

GitHub 仓库

此包未由任何流行的 GitHub 仓库使用。

版本 下载 最后更新
0.2.0 235 12/5/2023
0.1.8 6,498 4/15/2022
0.1.7 407 4/15/2022
0.1.6 400 3/31/2022
0.1.5 396 3/31/2022
0.1.4 394 3/20/2022
0.1.3 393 3/20/2022
0.1.2 412 2/14/2022
0.1.1 392 1/15/2022
0.1.0 246 1/14/2022

### 更改

* [更新了解析器以支持每个主要部分下的任意内容](https://github.com/ionide/KeepAChangelog/pull/22)(感谢 @nojaf!)