| name | publish-deep-yellow |
| description | Publish a new release of Deep Yellow to itch.io and GitHub. Use when Drew says "let's publish", "release this", "push to itch", or wants to do a full release of the deep_yellow project. Handles export, butler push, git tagging, and GitHub release creation.
|
Publish Deep Yellow
Full publish workflow for the Deep Yellow Godot game. All commands run from the project root.
Prerequisites
- Must be on
master branch with all changes merged
- Previous version tag exists (workflow auto-increments)
- Butler installed at
/home/drew/.local/bin/butler
- Godot export presets configured (Linux, Windows Desktop, Web)
Workflow
Step 1: Determine version
cd /home/drew/projects/deep_yellow
git tag --sort=-v:refname | head -1
Ask Drew what version to tag (patch, minor, or major bump), or infer from the scope of changes since last tag.
Step 2: Export all platforms (headless)
cd /home/drew/projects/deep_yellow
godot --headless --export-release "Linux"
godot --headless --export-release "Windows Desktop"
godot --headless --export-release "Web"
Step 3: Push to itch.io with butler
VERSION=v0.X.Y
/home/drew/.local/bin/butler push build/linux aebrer/deep-yellow:linux --userversion $VERSION
/home/drew/.local/bin/butler push build/windows aebrer/deep-yellow:windows --userversion $VERSION
/home/drew/.local/bin/butler push build/web aebrer/deep-yellow:html5 --userversion $VERSION
Step 4: Verify uploads
/home/drew/.local/bin/butler status aebrer/deep-yellow
Step 5: Create tar.gz archives for GitHub release
cd /home/drew/projects/deep_yellow/build
tar czf deep_yellow_${VERSION}_linux.tar.gz -C linux .
tar czf deep_yellow_${VERSION}_windows.tar.gz -C windows .
tar czf deep_yellow_${VERSION}_web.tar.gz -C web .
Step 6: Create git tag and push
cd /home/drew/projects/deep_yellow
git tag $VERSION
git push origin $VERSION
Step 7: Create GitHub release
gh release create $VERSION \
/home/drew/projects/deep_yellow/build/deep_yellow_${VERSION}_linux.tar.gz \
/home/drew/projects/deep_yellow/build/deep_yellow_${VERSION}_windows.tar.gz \
/home/drew/projects/deep_yellow/build/deep_yellow_${VERSION}_web.tar.gz \
--title "$VERSION — Release Title" \
--notes "Release notes here"
Use a HEREDOC for multi-line release notes. Include a link to the itch.io page:
[aebrer.itch.io/deep-yellow](https://aebrer.itch.io/deep-yellow)
Step 8: Generate itch.io devlog post
Butler can't post devlogs — Drew will paste this manually. Generate a devlog markdown file at /tmp/deep-yellow-devlog-${VERSION}.md for copy-pasting into itch.io.
Process:
- Read the GitHub release notes just created in Step 7
- Read the commit log since the previous tag:
git log --oneline <prev_tag>..<new_tag>
- Write a devlog post that:
- Uses the release title as the heading
- Rewrites the changelog into player-facing language (not commit messages)
- Groups changes into sections like "New Features", "Improvements", "Bug Fixes" as appropriate
- Keeps the tone consistent with previous devlogs (conversational, technical but accessible)
- Omits internal/chore changes that don't affect players (dead code removal, doc updates, CI changes)
- Ends with a brief "What's Next" sentence or two if there are obvious open issues to mention
- Save to
/tmp/deep-yellow-devlog-${VERSION}.md
- Suggest tags for the post
Drew will review, edit if needed, and paste into the itch.io devlog form.
Notes
- Export preset names are case-sensitive: "Linux", "Windows Desktop", "Web"
- Butler uses delta compression — subsequent pushes are fast
- Use absolute paths for
gh release create asset arguments
- Archives go in
build/ alongside the platform directories
gh pr edit may fail with GraphQL error — use gh api directly if needed (see CLAUDE.md)