Skip to content

Packaging metadata, Ruby 4.0 CI, and trusted-publishing release workflow - #29

Merged
vormwald merged 4 commits into
mainfrom
packaging-ci
Aug 22, 2026
Merged

Packaging metadata, Ruby 4.0 CI, and trusted-publishing release workflow#29
vormwald merged 4 commits into
mainfrom
packaging-ci

Conversation

@vormwald

Copy link
Copy Markdown
Owner

Summary

  • Gemspec metadata: changelog/source/bug-tracker URIs, rubygems_mfa_required.
  • CHANGELOG.md now shipped in the gem; removed dead spec.bindir = "exe".
  • CI matrix adds Ruby 4.0; the rm Gemfile.lock hack is removed now that the lockfile is healthy.
  • New release.yml publishes to RubyGems via trusted publishing on v*.*.* tags after tests pass.

One-time setup

On rubygems.org → jekyll-tailwindcss → Trusted Publishers, add a publisher with:

  • Repository: vormwald/jekyll-tailwindcss
  • Workflow: release.yml
  • Environment: release

Test plan

  • specs pass
  • standardrb clean

🤖 Generated with Claude Code

vormwald and others added 2 commits August 16, 2026 06:14
…lease workflow

Add gemspec metadata (changelog/source/bug-tracker URIs,
rubygems_mfa_required), ship CHANGELOG.md in the gem, and remove
the dead `spec.bindir = "exe"`. CI matrix adds Ruby 4.0 and drops
the `rm Gemfile.lock` hack now that the lockfile is healthy. Add
release.yml, which publishes to RubyGems via trusted publishing on
v*.*.* tags after tests pass.

Co-Authored-By: Claude <noreply@anthropic.com>
erb, rdoc, and sass-embedded all shipped releases that bumped their
minimum ruby version to 3.2, breaking bundle install on ruby 3.1
(the oldest ruby CI still tests). Pin them below those releases, and
add logger explicitly since ruby 4.0 dropped it as a default gem.

Co-Authored-By: Claude <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Release tags currently execute the complete CI matrix twice.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Updates gem packaging, Ruby compatibility, CI coverage, and automated trusted publishing.

Changes:

  • Adds gem metadata and ships the changelog.
  • Adds Ruby 4.0 CI and Ruby 3.1-compatible dependency constraints.
  • Adds a tag-triggered trusted-publishing workflow.
File summaries
File Description
jekyll-tailwindcss.gemspec Adds metadata and packages the changelog.
Gemfile Adds compatibility dependencies and constraints.
Gemfile.lock Locks the updated dependency set.
.github/workflows/main.yml Adds Ruby 4.0 and reusable workflow support.
.github/workflows/release.yml Tests and publishes tagged releases.
Review details
  • Files reviewed: 4/5 changed files
  • Comments generated: 1
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

cancel-in-progress: true
on:
workflow_dispatch:
workflow_call:
Release tags enter through release.yml, which calls this workflow via
workflow_call; keeping the push.tags trigger ran the matrix twice.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015kxK16Xgi7P4GeUfkmQNxr

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Release tags need version validation, and the manual release documentation conflicts with the automated workflow.

Review details

Suppressed comments (2)

Previously missed (2) — in code that hasn't changed since the last review.

.github/workflows/release.yml:27

  • Validate that the pushed tag matches the gemspec version before invoking this action. release-gem runs Bundler's rake release; Bundler only checks whether the gem version's tag exists anywhere, not whether it equals github.ref_name. A typo such as tagging v0.8.0 while the gemspec says 0.8.1 can therefore create/push v0.8.1 and publish that unintended version. Add an explicit tag/version check so a mismatch fails closed.
      - uses: rubygems/release-gem@v1

.github/workflows/release.yml:27

  • The new automatic publish conflicts with the existing “Cutting a release” instructions in README.md:207-219, which still tell maintainers to build and gem push manually before pushing the tag. Following those instructions bypasses trusted publishing and then triggers this workflow only to attempt a duplicate push. Update that section to make pushing the version tag the publishing step.
      - uses: rubygems/release-gem@v1
  • Files reviewed: 4/5 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

release-gem runs `rake release`, which builds from the gemspec version
rather than the pushed tag, so a mistyped tag would publish an
unintended version. Fail closed when the tag and VERSION disagree, and
replace the manual `gem push` instructions with the tag-driven flow.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015kxK16Xgi7P4GeUfkmQNxr

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The release trigger can publish tags from commits that have not passed the documented main-branch review path.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details

Suppressed comments (1)

Previously missed (1) — in code that hasn't changed since the last review.

Gemfile:20

  • The compatibility note is off by one major version: ERB 5 already requires Ruby 3.2, which is why the < 5 constraint preserves Ruby 3.1 support. Update the comment so future dependency maintenance does not incorrectly treat ERB 5 as compatible.
gem "erb", "< 5" # erb >= 6 requires ruby >= 3.2
  • Files reviewed: 5/6 changed files
  • Comments generated: 1
  • Review effort level: Balanced

Comment on lines +4 to +6
push:
tags:
- v*.*.*
@vormwald
vormwald merged commit 119dd67 into main Aug 22, 2026
6 checks passed
@vormwald
vormwald deleted the packaging-ci branch August 22, 2026 16:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants