Feature: Enforce conventional commits and use it to set ArtifactHub.io annotations
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 25/100
调研方向
先从 Helm Chart 文件和 GitHub Actions 发布工作流开始,然后查看 issue 中链接的 conventional commits 和 ArtifactHub 注解格式。比较 Python 和 Bash 示例,并在选择方案之前确定仓库的发布节点。完成的标准是提交已通过验证,并且发布版本包含所请求的 ArtifactHub 注解和 issue 链接。
由索引模型根据 Issue 内容生成。
描述
Feature
Artifact Hub supports annotations in the Helm Chart file. This allows additional information to be provided to users.
Changes
Changes can be summarized and defined as annotation. This can be archived via artifacthub.io/changes.
annotations:
artifacthub.io/changes: |
- kind: added
description: Cool feature
links:
- name: GitHub Issue
url: https://github.com/issue-url
- name: GitHub PR
url: https://github.com/pr-url
This would provide a changelog on ArtifactHub.io. Subscribers to the chart will be informed of the changes in an email sent by ArtifactHub.io when a new version is released. Similar to the changelog on the ArtifactHub.io website. The figure below shows the changelogs provided by the Gitea project.
Forward to GitHub Issues
Furthermore, an URL can be defined to forward users from ArtifactHub.io to GitHub issues if they want to report an issue:
annotations:
artifacthub.io/links: |
- name: support
url: https://github.com/nextcloud/helm/issues
I think this is a great feature for directing users to the right place to report bugs. ArtifactHub.io then displays a special badge on your website with the name Report Issue.
Further annotations
A complete list of supported annotations and the structure can be found on their website.
Implementation
conventional commits
I think the API is clear. The annotations must be set in the chart. Except for the changelog, this should also be quite simple.
For the changelog, however, a diff between the last and current release must be created for each release. Based on the git commits, a changelog must be generated and defined as an annotation in the specified format.
Therefore, I propose introducing conventional commits so that the git changelog can be parsed. I think conventional commits have already become established among many developers and should therefore cause less pain. It is advisable to extend the CI and throw an error if conventional commits are ignored.
I'm completely open-minded when it comes to tools, but based on my experience, I would suggest commitlint. As I mentioned above, my colleagues and I have been using Gitea for quite some time now. The corresponding configuration can be found in the project under .commitlintrc.
add changelog annotation
Currently, I don't know of any tool that can be easily integrated into GitHub Actions to add the annotation. For this reason, there are approaches to solve this using Python, as is done in the x509-certificate exporter, or using a Bash script with the help of yq in the Gitea project.
I have no preference. Once the data basis for conventional commits is available, it should be no problem to generate a changelog from it.
upload changelog
Once the changelog is available, it can also be used optionally to generate a release.
Conclusion
I look forward to your feedback. Please interpret the Implementation section as an example only, to gather ideas and inspiration.
Volker
- 主要语言
- Go Template
- 星标
- 536
- 派生
- 316
- 平均合并
- 4 天 16 小时
- 30 天内合并 PR
- 2
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
nextcloud/helm 的其他 Issue
-
No native support for REDIS_USER enviroment var可能已有人在做 @jholmes802 于 1 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 2/5 1-3 小时 新手友好度 72/100
-
难度 2/5 1-3 小时 新手友好度 68/100
-
nextcloud.openmetrics.allowedClients is silently ignored unless nextcloud.configs is set可能已有人在做 @JanWelker 于 17 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 78/100
-
External Redis not working: redis-session.ini: Permission denied可能已有人在做 @antoinetran 于 22 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 55/100
相似的 Issue
-
lens:agent lens:process process
难度 2/5 1-3 小时 新手友好度 78/100
thebristolsound/birdbrain#1771 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
area:ops priority:P2 type:chore
难度 1/5 1 小时以内 新手友好度 82/100
skaiy/wild_agentos#407 ·
维护者通常 1 天内回复
-
ci-install-db-tools stall-case tests flake: stalled apt-get can be killed before it logs its call未关闭effort:low model:light plan planner:opus-5-5 tests
难度 2/5 1-3 小时 新手友好度 86/100
维护者通常 1 天内回复
-
component/test-automation work/tech-debt
难度 2/5 1-3 小时 新手友好度 78/100
bcgov/bc-wallet-mobile#4845 ·
维护者通常 1 天内回复