Gum bump-nuget-version
Bump the NuGet package versions for all 12 Gum projects (11 libraries + GumCli). Queries NuGet to check if a version exists for today, then sets the new version to YYYY.M.D.V where V increments from the latest published version today (or starts at 1). Creates a release branch named ReleaseCode_YYYY_M_D_V, commits the changes, and pushes. Run this before triggering the nuget release workflow.
git clone https://github.com/vchelaru/Gum
T=$(mktemp -d) && git clone --depth=1 https://github.com/vchelaru/Gum "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/bump-nuget-version" ~/.claude/skills/vchelaru-gum-bump-nuget-version && rm -rf "$T"
.claude/skills/bump-nuget-version/SKILL.mdInvoking coder agent to bump NuGet package versions.
You are bumping the NuGet
<Version> tag in all 12 Gum .csproj files (11 libraries + GumCli), then creating a release branch and pushing it. Follow these steps in order:
Step 1: Get today's date
The current date is available in your system context. Use the year, month, and day as integers (no leading zeros) to form:
- The version prefix:
(e.g.,YYYY.M.D
)2026.2.23
Step 2: Query NuGet for today's highest V
Fetch the version list for
FlatRedBall.GumCommon from the NuGet flat container API (package ID must be all-lowercase in the URL):
https://api.nuget.org/v3-flatcontainer/flatredball.gumcommon/index.json
The response has a
versions array of strings. Filter for entries starting with {today_prefix}. (e.g., 2026.2.23.). Parse the last segment of each match as an integer and find the maximum. The new version is {today_prefix}.{max+1}. If no versions for today exist, use {today_prefix}.1.
Step 3: Create the release branch
From main, create and check out the new branch. The branch name includes the full version with underscores:
ReleaseCode_YYYY_M_D_V (e.g., ReleaseCode_2026_2_23_2)
git checkout main git checkout -b ReleaseCode_YYYY_M_D_V
Step 4: Update all 13 .csproj files
Read each file first, then use the Edit tool to replace the
<Version>...</Version> line with the new version string.
The repo root is
C:\Users\vchel\Documents\GitHub\Gum. The 12 files are:
GumCommon\GumCommon.csprojMonoGameGum\MonoGameGum.csprojMonoGameGum\KniGum\KniGum.csprojMonoGameGum\FnaGum\FnaGum.csprojRuntimes\SkiaGum\SkiaGum.csprojRuntimes\SkiaGum.Maui\SkiaGum.Maui.csprojRuntimes\GumShapes\MonoGameGumShapes.csprojRuntimes\GumShapes\KniGumShapes.csprojRuntimes\RaylibGum\RaylibGum.csprojRuntimes\GumExpressions\GumExpressions.csprojGum.Cli\Gum.Cli.csprojThemes\Gum.Themes.Editor.MonoGame\Gum.Themes.Editor.MonoGame.csprojThemes\Gum.Themes.Editor.Kni\Gum.Themes.Editor.Kni.csproj
Step 5: Commit and push the branch
Stage only the 12 csproj files and commit:
git add GumCommon/GumCommon.csproj MonoGameGum/MonoGameGum.csproj MonoGameGum/KniGum/KniGum.csproj MonoGameGum/FnaGum/FnaGum.csproj Runtimes/SkiaGum/SkiaGum.csproj Runtimes/SkiaGum.Maui/SkiaGum.Maui.csproj Runtimes/GumShapes/MonoGameGumShapes.csproj Runtimes/GumShapes/KniGumShapes.csproj Runtimes/RaylibGum/RaylibGum.csproj Runtimes/GumExpressions/GumExpressions.csproj Gum.Cli/Gum.Cli.csproj Themes/Gum.Themes.Editor.MonoGame/Gum.Themes.Editor.MonoGame.csproj Themes/Gum.Themes.Editor.Kni/Gum.Themes.Editor.Kni.csproj
Commit message should be
Bump version to {new_version}.
Then push:
git push -u origin ReleaseCode_YYYY_M_D_V
Step 6: Report
Print a summary:
- New version string
- Whether today already had a published version (and what the previous V was) or if this is the first release today
- Branch name
$ARGUMENTS