mirror of
https://github.com/basicmachines-co/basic-memory
synced 2026-06-21 13:47:35 +00:00
6.7 KiB
6.7 KiB
/release - Create Stable Release
Create a stable release using the automated justfile target with comprehensive validation.
Usage
/release <version>
Parameters:
version(required): Release version likev0.13.2
Implementation
You are an expert release manager for the Basic Memory project. When the user runs /release, execute the following steps:
Step 1: Pre-flight Validation
Version Check
- Check current version in
src/basic_memory/__init__.py - Verify new version format matches
v\d+\.\d+\.\d+pattern - Confirm version is higher than current version
Git Status
- Check current git status for uncommitted changes
- Verify we're on the
mainbranch - Confirm no existing tag with this version
Documentation Validation
- Changelog Check
- CHANGELOG.md contains entry for target version
- Entry includes all major features and fixes
- Breaking changes are documented
Step 2: Use Justfile Automation
Execute the automated release process:
just release <version>
The justfile target handles:
- ✅ Version format validation
- ✅ Git status and branch checks
- ✅ Quality checks (
just check- lint, format, type-check, tests) - ✅ Version update in
src/basic_memory/__init__.py - ✅ Automatic commit with proper message
- ✅ Tag creation and pushing to GitHub
- ✅ Release workflow trigger (automatic on tag push)
The GitHub Actions workflow (.github/workflows/release.yml) then:
- ✅ Builds the package using
uv build - ✅ Creates GitHub release with auto-generated notes
- ✅ Publishes to PyPI
- ✅ Updates Homebrew formula (stable releases only)
Step 3: Monitor Release Process
- Verify tag push triggered the workflow (should start automatically within seconds)
- Monitor workflow progress at: https://github.com/basicmachines-co/basic-memory/actions
- Watch for successful completion of both jobs:
release- Builds package and publishes to PyPIhomebrew- Updates Homebrew formula (stable releases only)
- Check for any workflow failures and investigate logs if needed
Step 4: Post-Release Validation
GitHub Release
- Verify GitHub release is created at: https://github.com/basicmachines-co/basic-memory/releases/tag/
- Check that release notes are auto-generated from commits
- Validate release assets (
.whland.tar.gzfiles are attached)
PyPI Publication
- Verify package published at: https://pypi.org/project/basic-memory//
- Test installation:
uv tool install basic-memory - Verify installed version:
basic-memory --version
Homebrew Formula (Stable Releases Only)
- Check formula update at: https://github.com/basicmachines-co/homebrew-basic-memory
- Verify formula version matches release
- Test Homebrew installation:
brew install basicmachines-co/basic-memory/basic-memory
Website Updates
1. basicmachines.co (/Users/drew/code/basicmachines.co)
- Goal: Update version number displayed on the homepage
- Location: Search for "Basic Memory v0." in the codebase to find version displays
- What to update:
- Hero section heading that shows "Basic Memory v{VERSION}"
- "What's New in v{VERSION}" section heading
- Feature highlights array (look for array of features with title/description)
- Process:
- Pull latest from GitHub:
git pull origin main - Create release branch:
git checkout -b release/v{VERSION} - Search codebase for current version number (e.g., "v0.16.1")
- Update version numbers to new release version
- Update feature highlights with 3-5 key features from this release (extract from CHANGELOG.md)
- Commit changes:
git commit -m "chore: update to v{VERSION}" - Push branch:
git push origin release/v{VERSION}
- Pull latest from GitHub:
- Deploy: Follow deployment process for basicmachines.co
2. docs.basicmemory.com (/Users/drew/code/docs.basicmemory.com)
- Goal: Add new release notes section to the latest-releases page
- File:
src/pages/latest-releases.mdx - What to do:
- Pull latest from GitHub:
git pull origin main - Create release branch:
git checkout -b release/v{VERSION} - Read the existing file to understand the format and structure
- Read
/Users/drew/code/basic-memory/CHANGELOG.mdto get release content - Add new release section at the top (after MDX imports, before other releases)
- Follow the existing pattern:
- Heading:
## [v{VERSION}](github-link) — YYYY-MM-DD - Focus statement if applicable
<Info>block with highlights (3-5 key items)- Sections for Features, Bug Fixes, Breaking Changes, etc.
- Link to full changelog at the end
- Separator
---between releases
- Heading:
- Commit changes:
git commit -m "docs: add v{VERSION} release notes" - Push branch:
git push origin release/v{VERSION}
- Pull latest from GitHub:
- Source content: Extract and format sections from CHANGELOG.md for this version
- Deploy: Follow deployment process for docs.basicmemory.com
4. Announce Release
- Post to Discord community if significant changes
- Update social media if major release
- Notify users via appropriate channels
Pre-conditions Check
Before starting, verify:
- All beta testing is complete
- Critical bugs are fixed
- Breaking changes are documented
- CHANGELOG.md is updated (if needed)
- Version number follows semantic versioning
Error Handling
- If
just releasefails, examine the error output for specific issues - If quality checks fail, fix issues and retry
- If changelog entry missing, update CHANGELOG.md and commit before retrying
- If GitHub Actions fail, check workflow logs for debugging
Success Output
🎉 Stable Release v0.13.2 Created Successfully!
🏷️ Tag: v0.13.2
📋 GitHub Release: https://github.com/basicmachines-co/basic-memory/releases/tag/v0.13.2
📦 PyPI: https://pypi.org/project/basic-memory/0.13.2/
🍺 Homebrew: https://github.com/basicmachines-co/homebrew-basic-memory
🚀 GitHub Actions: Completed
Install with pip/uv:
uv tool install basic-memory
Install with Homebrew:
brew install basicmachines-co/basic-memory/basic-memory
Users can now upgrade:
uv tool upgrade basic-memory
brew upgrade basic-memory
Context
- This creates production releases used by end users
- Must pass all quality gates before proceeding
- Uses the automated justfile target for consistency
- Version is automatically updated in
__init__.py - Triggers automated GitHub release with changelog
- Package is published to PyPI for
pipanduvusers - Homebrew formula is automatically updated for stable releases
- Supports multiple installation methods (uv, pip, Homebrew)