set-version

Updates version numbers across Cargo.toml, package.json, Tauri.toml, and CHANGELOG.md for GG releases.

857|49|Updated Feb 8, 2024
One-click install
npx skills add https://github.com/gulbanana/gg --skill set-version
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: set-version
Source: https://github.com/gulbanana/gg/tree/main/.claude/skills/set-version
Command: npx skills add https://github.com/gulbanana/gg --skill set-version

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

GG ships as a Rust crate, a Node package, and a Tauri application, so every release requires manually synchronizing version numbers across multiple manifest files plus the changelog. This Skill automates that multi-step version bump procedure and enforces the project's 0.xx.y versioning scheme tied to the Jujutsu version.

Core Features & Use Cases

  • Cross-component version sync: Updates package.version in Cargo.toml, the version field in package.json, and the version in Tauri.toml, then runs cargo update and npm update to refresh lockfiles.
  • Changelog management: Follows the keepachangelog.com standard, replacing the [Unreleased] header with a linked version tag and adding the Jujutsu base-version line for .0 releases.
  • Release commit: Finishes by creating a jj commit with the version number message.
  • Use Case: When preparing GG 0.38.1 for release, invoke this Skill to bump all three manifests, regenerate lockfiles, rewrite the CHANGELOG.md header, and commit the result in one guided flow.

Quick Start

Update GG's version to 0.38.1 and prepare the release commit.

Frequently Asked Questions about set-version

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I update the version number for a GG release?

Set package.version in Cargo.toml, run cargo update, set the version in package.json, run npm update, set the version in Tauri.toml, update CHANGELOG.md, then commit with jj commit using the version number as the message.

What versioning scheme does GG use for releases?

GG uses a 0.xx.y scheme where xx matches the Jujutsu version number and y is the GG release number for that JJ version. For example, the first GG release for JJ 0.37.0 was GG 0.38.0.

How should CHANGELOG.md be updated for a new release?

Replace the [Unreleased] second-level header with [0.xx.y](releases/tag/v0.xx.y) following keepachangelog.com. For .0 releases, add a line stating the release is based on the corresponding Jujutsu version.

What happens if CHANGELOG.md has no entries for the release?

If the first second-level header is neither [Unreleased] nor the expected version pattern, the procedure stops and notifies the user, since this means the release has no changelog entries.

Which files must stay in sync when releasing a Tauri app with Rust and Node components?

For GG, the version must be updated in Cargo.toml for the Rust crate, package.json for the Node package, and Tauri.toml for the Tauri application, with lockfiles refreshed via cargo update and npm update.