mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-01-30 14:22:02 +00:00
- Updated `.gitignore` to include agent context files and user-uploaded images for better organization. - Added "Uncategorized" category to `categories.json` for improved feature classification. - Populated `feature_list.json` with new features, including detailed descriptions and image attachments for better context. - Changed application icon to `icon_gold.png` for a refreshed look. - Enhanced `AutoModeService` to support max concurrency and periodic checks, improving feature execution management. - Updated image handling in `DescriptionImageDropZone` to save images in the project directory. - Improved UI components with better styling and responsiveness, including drag-and-drop functionality for project management. This update significantly enhances the feature management process and user experience within the application.
4.5 KiB
4.5 KiB
Release Command
This command creates a git tag with a version bump and description of changes.
Usage
/release [major|minor|patch] [description]
Examples:
/release minor "✨ Added inventory drag and drop functionality"/release patch "🐛 Fixed bug with item selection"/release major "💥 Breaking: Refactored API endpoints"/release minor "Version 0.20.0: Added new features and improvements"
Steps to Execute
1. Parse Version Type and Description
- Extract the version type from the command:
major,minor, orpatch - Extract the description (rest of the command, if provided)
- If no version type provided or invalid, show usage and exit
- Description is optional - if not provided, will auto-generate from commits
2. Generate Changelog from Commits
- Find the last git tag (version tag):
git describe --tags --abbrev=0 - If no previous tag exists, use the initial commit or handle gracefully
- Get all commits between the last tag and HEAD:
git log <last-tag>..HEAD --pretty=format:"%h %s" --no-merges - Parse commit messages and generate a changelog description:
- Group commits by type (feature, fix, improvement, etc.) based on commit message patterns
- Use emojis to categorize changes (see Emoji Usage section)
- Format as a multi-line changelog with categorized entries
- If user provided a description, prepend it to the auto-generated changelog
- If no commits found, use a default message or prompt user
3. Read Current Version
- Read
app/package.jsonto get the current version (e.g., "0.1.0") - Parse the version into major, minor, and patch components
- Calculate the new version based on the type:
- major:
${major + 1}.0.0(e.g., 0.1.0 → 1.0.0) - minor:
${major}.${minor + 1}.0(e.g., 0.1.0 → 0.2.0) - patch:
${major}.${minor}.${patch + 1}(e.g., 0.1.0 → 0.1.1)
- major:
4. Create Git Tag
- Create an annotated git tag with the new version and description:
git tag -a v<new-version> -m "<description>" - Example:
git tag -a v0.2.0 -m "✨ Added inventory drag and drop functionality"
5. Push Tag to Remote
- Push the tag to remote:
git push origin v<new-version>
Emoji Usage
You can use emojis in release notes to categorize changes:
- ✨ New features - New functionality, features, additions
- 🐛 Bug fixes - Bug fixes and error corrections
- 🔧 Improvements - Refactoring, optimizations, code quality
- ⚡ Performance - Performance improvements
- 💥 Breaking changes - Breaking API changes, major refactors
- 🎨 UI/UX - Visual and user experience updates
- ⚙️ Configuration - Config and environment changes
- 📝 Documentation - Documentation updates
- 🏗️ Infrastructure - Build, deployment, infrastructure
- 🎵 Audio - Sound effects, music, audio changes
Changelog Generation
The release command automatically generates a changelog by analyzing commits between the last tag and HEAD:
- Find Last Tag: Uses
git describe --tags --abbrev=0to find the most recent version tag - Get Commits: Retrieves all commits between the last tag and HEAD using
git log <last-tag>..HEAD - Parse and Categorize: Analyzes commit messages to categorize changes:
- Looks for conventional commit patterns (feat:, fix:, refactor:, etc.)
- Detects emoji prefixes in commit messages
- Groups similar changes together
- Generate Description: Creates a formatted changelog with:
- User-provided description (if any) at the top
- Categorized list of changes with appropriate emojis
- Commit hash references for traceability
Example Generated Changelog
✨ Added inventory drag and drop functionality
Changes since v0.1.0:
✨ Features:
- Add drag and drop support for inventory items (abc1234)
- Implement new sidebar navigation (def5678)
🐛 Bug Fixes:
- Fix item selection bug in list view (ghi9012)
- Resolve memory leak in component cleanup (jkl3456)
🔧 Improvements:
- Refactor API endpoint structure (mno7890)
- Optimize database queries (pqr2345)
Notes
- The tag message should describe what changed in this release
- Use descriptive messages with emojis to categorize changes
- Tags follow semantic versioning (e.g., v0.1.0, v0.2.0, v1.0.0)
- Version is automatically calculated based on the type specified
- If no previous tag exists, all commits from the repository start will be included
- User-provided description (if any) will be prepended to the auto-generated changelog