Release with release-please
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 15/100
调研方向
Start with the plan's first item: jwk-loader 1.3.0 must publish through release-please before this setup is copied. The work touches lib/jwt/version.rb (MAJOR/MINOR/TINY annotations), push_gem.yml (adding workflow_call and workflow_dispatch), a new release-please.yml, and CONTRIBUTING.md plus the PR template. Done means the first release-please release PR, tag, GitHub release and RubyGems gem all succeed after the manual steps are removed.
由索引模型根据 Issue 内容生成。
描述
Releasing is manual today: bump version.rb right after each release, add a changelog row in every PR, tag the release by hand, and create the GitHub release by hand. release-please automates all of that from commit messages. It keeps a release PR open, and merging that PR tags the release, creates the GitHub release with its changelog section, and publishes the gem. anakinj/jwk-loader already releases this way, so its config and workflows are the starting point.
Start this after 3.3.1 is released the current way. None of the commits since v3.3.0 use conventional titles, so release-please would generate an empty changelog for them, and releasing first gives a clean cut-over.
Plan
- Wait for jwk-loader 1.3.0 to publish through release-please. That gem's publish job hasn't succeeded on a real release yet. If it fails, fix it there before copying the setup.
- Release 3.3.1 the current way.
- Require conventional PR titles. Pull requests are squash merged with the PR title as the commit message, so the title is what release-please reads. A PR adding a title check is ready, together with a
ciprefix for Dependabot and documentation inCONTRIBUTING.mdand the PR template. Once it's merged, make the check a required status check onmain. - Add the release-please config:
release-type: ruby,include-v-in-tag: trueso tags stayvX.Y.Z, and a manifest set to3.3.1. Usechangelog-sectionsfor the changelog format described under Decisions. - Make the version file updatable.
lib/jwt/version.rbuses separateMAJOR,MINORandTINYconstants, which the Ruby updater most likely doesn't rewrite. Add the genericx-release-please-major,-minorand-patchannotations to those lines and list the file underextra-files, rather than restructuring it. - Publish from the release job. Add
release-please.yml, and givepush_gem.ymlaworkflow_calltrigger so the release job can call it, plusworkflow_dispatchwith a tag input to re-publish an existing tag if publishing fails. Tags created withGITHUB_TOKENdon't trigger other workflows, so the tag trigger alone won't fire. That keeps the existing tag and version check, build, push and wait steps. - Check the RubyGems trusted publishing role. The policy behind
RUBYGEMS_PUSH_ROLEmay only allow tag refs orpush_gem.yml, and publishing from a reusable workflow called onmainmay need it widened. - Dry run before merging with the
release-pleaseCLI's--dry-run, to confirm it bumps the version constants and writes the changelog as intended. - Remove the manual steps: the
NEXTchangelog section and itsYour contribution hereplaceholders, the changelog row requirement inCONTRIBUTING.mdand the PR template, and the manual release steps. release-please adds new sections under# Changelog. - Confirm the first release: the release PR, the tag, the GitHub release and the gem on RubyGems.
Decisions
- Changelog format (decided): release-please's default changelog, with custom sections.
changelog-sectionsmapsfeatto Features,fixandperfto Fixes and enhancements, andrevertto Reverts, and hidesrefactor,docs,test,ci,buildandchore. Entries are taken from PR titles, so titles are worth editing before merging, and a user-visible change needs afeatorfixtitle to appear. Authors are no longer credited in the changelog or the GitHub release. If that's missed,changelog-type: githubbrings credit back with one config change. - Release names. GitHub releases are named
jwt-3.3.0today, and release-please will probably name themv3.4.0. Check whether that matters to anyone, and whether the config can keep the current name. - CI on release PRs. release-please opens them with
GITHUB_TOKEN, so CI won't run on them. They only change the version and changelog, so that's probably fine. Otherwise use a GitHub App token. 2-10-stable. Keep releasing 2.x manually for now. release-please can manage a second branch later if needed.
Posted by Claude on behalf of @anakinj.
- 主要语言
- Ruby
- 星标
- 3.7k
- 派生
- 381
- 平均合并
- 17 小时 10 分钟
- 30 天内合并 PR
- 11
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
jwt/ruby-jwt 的其他 Issue
-
难度 3/5 1-2 天 新手友好度 68/100
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 25/100
维护者通常 1 天内回复
-
feature
难度 5/5 一周以上 新手友好度 35/100
jwt/ruby-jwt#428 · 7 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
enhancement feature help wanted up for grabs
难度 5/5 一周以上 新手友好度 25/100
jwt/ruby-jwt#80 · 11 条评论 · 8 个 reaction ·
维护者通常 1 天内回复
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 70/100
-
Add a dark mode未关闭accessibility enhancement good first issue
难度 2/5 1-3 小时 新手友好度 82/100
samiromer2/Ruby-Consent-Portal#35 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
-
bug detail
难度 2/5 1-3 小时 新手友好度 77/100
keygen-sh/keygen-api#1161 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复