这是一个使用Turborepo管理的单体仓库,包含以下包:
-
生成器:这是一个工具,您可以使用它基于AsyncAPI规范文件作为输入来生成任何您想要的内容。
-
Nunjucks过滤器:该库包含可在多个模板中重复使用的生成器过滤器,有助于避免重复工作。这些过滤器专为Nunjucks模板设计,默认包含在生成器中,因此无需单独添加到依赖项中。
警告:此包不再支持AsyncAPI 1.x。我们建议使用AsyncAPI转换器升级到最新的AsyncAPI版本(您可以参考安装指南)。如果您需要即时转换文档,可以使用Node.js或Go转换器。
概述
生成器是一个工具,您可以使用它基于AsyncAPI规范文件作为输入来生成任何您想要的内容。更多信息请阅读文档。
有大量现成可用的模板,并得到AsyncAPI Initiative的官方支持。
官方生成器模板列表
模板名称 | 描述 | 源代码 |
---|---|---|
@asyncapi/nodejs-template | 生成使用Hermes包的Nodejs服务 | 点击这里 |
@asyncapi/nodejs-ws-template | 生成仅支持WebSockets协议的Nodejs服务 | 点击这里 |
@asyncapi/java-template | 生成Java JMS应用程序 | 点击这里 |
@asyncapi/java-spring-template | 生成Java Spring服务 | 点击这里 |
@asyncapi/java-spring-cloud-stream-template | 生成Java Spring Cloud Stream服务 | 点击这里 |
@asyncapi/python-paho-template | 生成使用Paho库的Python服务 | 点击这里 |
@asyncapi/html-template | 生成HTML文档站点 | 点击这里 |
@asyncapi/markdown-template | 生成Markdown文件格式的文档 | 点击这里 |
@asyncapi/ts-nats-template | 生成TypeScript NATS客户端 | 点击这里 |
@asyncapi/go-watermill-template | 生成使用Watermill的Go客户端 | 点击这里 |
@asyncapi/dotnet-nats-template | 生成使用NATS的.NET C#客户端 | 点击这里 |
@asyncapi/php-template | 生成使用RabbitMQ的PHP客户端 | 点击这里 |
@asyncapi/dotnet-rabbitmq-template | 生成使用RabbitMQ的.NET C#客户端 | 点击这里 |
您可以在**此列表**中找到上述模板以及社区提供的模板
生成器过滤器
该库包含可在多个模板中重复使用的生成器过滤器,有助于避免重复工作。这些过滤器专为Nunjucks模板设计,默认包含在生成器中,因此无需单独添加到依赖项中。
该库包括:
发布流程
要发布主要/次要/补丁版本:
约定式提交:
为了保持清晰的git提交历史,并轻松识别每个提交更改了什么以及是否触发了发布,我们使用约定式提交。feat和fix前缀尤其重要,因为它们需要触发changesets。使用这些前缀可确保正确分类更改并使版本控制系统按预期运行。
例如:
feat: 添加新功能
手动
-
在
.changeset
目录中创建一个新的发布markdown文件。文件名应该表明更改的内容。 -
按照以下特定格式将内容添加到文件中:
--- "@package-name-1": [类型] (major/minor/patch) "@package-name-2": [类型] --- [提供更改的简要描述。例如:为Turborepo添加了新的GitHub发布流程。未引入新功能或错误修复。]
例如:
--- "@asyncapi/generator": minor --- 为Turborepo添加新的GitHub发布流程。未引入新功能或错误修复。
-
将文件包含在您的拉取请求中。
使用CLI
-
使用changeset CLI创建新的发布markdown文件。以下命令将触发一个交互式提示,您可以使用它来指定发布类型和受影响的包。
npx -p @changesets/cli@2.27.7 changeset
-
将文件包含在您的拉取请求中。
[!提示] 有关更详细的说明,您可以参考创建changeset的官方文档: 添加changeset
发布流程:
-
添加Changeset:
- 当您进行需要发布的更改时,在
.changeset
目录中创建一个markdown文件,说明包名称和更改级别(major/minor/patch)。
- 当您进行需要发布的更改时,在
-
开启拉取请求:
- 推送您的更改并开启拉取请求(PR)。PR合并后,changeset文件有助于传达更改类型(major、minor、patch)。
-
CI处理Changeset:
-
PR合并后,专用的GitHub Actions发布工作流使用changeset操作运行,
-
此操作读取
.changeset
文件夹中的markdown文件,并创建一个包含更新版本的包和删除markdown文件的PR。例如:之前:
"name": "@asyncapi/generator", "version": "2.0.1",
之后:
"name": "@asyncapi/generator", "version": "3.0.1",
-
新的PR还将包含markdown文件中的描述,
-
AsyncAPI机器人自动合并此类发布PR。
-
-
发布包:
- PR合并后,CI/CD流程再次触发。
changesets/action
步骤识别PR是由自身创建的。然后验证包的当前版本是否大于之前发布的版本。如果检测到差异,它将执行publish命令发布更新后的包。
- PR合并后,CI/CD流程再次触发。
贡献
阅读贡献指南。
贡献者 ✨
感谢这些优秀的人(表情符号键):
本项目遵循all-contributors规范。欢迎任何形式的贡献!