Skip to content

fix: improve version bump workflow and CI integration#73

Merged
nsheaps merged 8 commits intomainfrom
test/validate-version-workflow
Jan 16, 2026
Merged

fix: improve version bump workflow and CI integration#73
nsheaps merged 8 commits intomainfrom
test/validate-version-workflow

Conversation

@nsheaps
Copy link
Copy Markdown
Owner

@nsheaps nsheaps commented Jan 16, 2026

Summary

This PR fixes several issues with the version bump and CI workflow:

  1. Plugin-specific commit messages: Version bump commits now include the plugin name
  2. Automatic prettier formatting: Prevents formatter conflicts
  3. Version preview improvements: Shows only changed plugins in PR comments
  4. Marketplace isolation: Removed duplicate job that ran inappropriately on PRs

Changes

1. Version Bump Commit Format

Before: chore(release): 0.2.8 [skip ci]
After: chore(plugin-name): release 0.2.8

Updated all 17 plugin .versionrc.js files:

  • Include plugin name in commit message format
  • Remove [skip ci] tag (concurrency handles duplicates)
  • Add postbump script to run prettier automatically

2. Version Preview in PRs

Issue: Preview showed all plugins with confusing output

Fix:

  • Compare plugin.json versions between base (main) and HEAD (PR branch)
  • Only show plugins with actual version differences
  • Clear column names (Base/Head instead of Current/Next)
  • Added full history fetch in workflow

Before:

| Plugin | Current | Type | Next |
|---|---|---|---|
| [all 17 plugins] | X.Y.Z | major | |

After:

| Plugin | Base | Type | Head |
|---|---|---|---|
| changed-plugin | 0.2.9 | patch | 0.2.10 |

3. Marketplace Update Isolation

Removed duplicate update-marketplace job from ci.yaml that was running on all events including PRs. The cd.yaml workflow already has this job correctly gated to only run on main branch after version bumps.

Files Modified

  • bin/update-versionrc-files.sh - Script to update all plugin configs
  • plugins/*/.versionrc.js (17 files) - Version bump configuration
  • justfile - Improved _preview-version-bumps recipe
  • .github/workflows/cd.yaml - Added base branch fetching
  • .github/workflows/ci.yaml - Removed duplicate marketplace job

Testing

Validated end-to-end with test commits:

  • ✅ Version bump commits have correct format with plugin names
  • ✅ Prettier runs automatically after version bumps
  • ✅ Version preview shows only changed plugins
  • ✅ Marketplace updates isolated to main branch only
  • ✅ CI workflows trigger correctly
  • ✅ Concurrency controls working as expected

Related Issues

Fixes issues discovered during plugin development:

  • Generic version bump commit messages made it hard to identify which plugin changed
  • Formatter conflicts between prettier and commit-and-tag-version
  • Version preview showing all plugins instead of just changed ones
  • Marketplace.json being updated inappropriately in PRs

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jan 16, 2026

package: Version Bump Preview

Plugin Base Type Head
No version changes detected

@nsheaps nsheaps changed the title test: validate version bump workflow improvements fix: improve version bump workflow and CI integration Jan 16, 2026
@nsheaps nsheaps marked this pull request as ready for review January 16, 2026 03:57
Copy link
Copy Markdown
Contributor

@henry-nsheaps henry-nsheaps Bot left a comment

Choose a reason for hiding this comment

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

👍 LGTM! This PR correctly improves CI/CD workflow with proper gating and cleaner version preview logic.

Code Quality Security Simplicity Confidence

✅ Verified update-marketplace job in cd.yaml is properly gated to main branch only
✅ Verified duplicate removal from ci.yaml is safe
✅ Improved _preview-version-bumps shows actual changes vs predicted bumps
✅ Added necessary fetch-depth: 0 and base branch fetch for version comparison
✅ Plugin.json formatting changes are cosmetic (prettier)

🖱️ Click to expand for full details

Workflow Changes Analysis

cd.yaml Verification

The update-marketplace job in cd.yaml (lines 96-129) is properly configured:

  • Gating: if: github.event_name == 'push' && github.ref == 'refs/heads/main' (line 99)
  • Dependency: needs: ['bump-plugin-versions'] (line 97) - ensures marketplace only updates after version bumps
  • Conclusion: Safe to remove the duplicate from ci.yaml

ci.yaml Changes

Removed 42-line update-marketplace job that was:

  • Running on all events (including PRs where it shouldn't)
  • Duplicating functionality already in cd.yaml with proper gating

Justfile Improvements

The _preview-version-bumps recipe was rewritten to:

  • Compare actual plugin.json versions between base branch and HEAD (not predicted bumps)
  • Use GITHUB_BASE_REF env var with fallback to main for CI compatibility
  • Handle "no changes detected" case cleanly
  • Use clearer column names: "Base/Head" instead of "Current/Next"

This is a significant improvement - showing actual version differences in PRs rather than what commit-and-tag-version would do.

Plugin.json Formatting

All 14 plugin.json changes are cosmetic - prettier reformatted the keywords arrays from multi-line to single-line. No functional changes.

Research Doc Addition

docs/research/claude-code-compact-customization.md documents a Claude Code limitation regarding compact model selection. While unrelated to the version bump workflow, it's a reasonable docs addition to the research folder.

Score Rationale

  • Quality (95%): Clean, well-organized changes with good PR description
  • Security (N/A): No security-sensitive code paths modified
  • Simplicity (90%): Justfile changes are cleaner than before; direct comparison vs recipe calls
  • Confidence (95%): Verified all gating conditions in cd.yaml, logic is sound

Notes:12

Footnotes

  1. Workflow Run: https://github.com/nsheaps/.ai/actions/runs/21055095670/attempts/1

  2. PR: nsheaps/.ai#73

nsheaps and others added 7 commits January 15, 2026 23:02
Previously showed all plugins with confusing 'major' type and empty next versions.
Now compares base branch (main) vs HEAD to show actual version changes in PR.

Changes:
- Compare plugin.json versions between branches
- Only show plugins that actually changed
- Show clear before/after versions
- Rename 'Current/Next' to 'Base/Head' for clarity
The preview was showing all plugins as new (0.0.0 -> X.Y.Z) because
the base branch wasn't fetched. Now fetches full history and base branch
so git can properly compare versions between branches.
Documents the current limitations around customizing the compact
operation in Claude Code, specifically the inability to configure
a specific model for compacting. Includes workarounds and
feature request recommendations.

Co-Authored-By: Claude Code (~/src/nsheaps/ai) <noreply@anthropic.com>
The update-marketplace job was running on all events including PRs,
causing marketplace.json to be updated inappropriately in PRs.

The cd.yaml workflow already has this job correctly gated to only
run on main branch after version bumps. This removes the duplicate.
@nsheaps nsheaps force-pushed the test/validate-version-workflow branch from a5f113f to c62d056 Compare January 16, 2026 04:03
@nsheaps nsheaps merged commit d89cca3 into main Jan 16, 2026
3 checks passed
@nsheaps nsheaps deleted the test/validate-version-workflow branch January 16, 2026 04:03
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.

1 participant