MQL5-Google-Onedrive/RELEASE_QUICK_REF.md
Copilot 3ae9f3f7e7
Add release management infrastructure and automation (#255)
* Initial plan

* Add release infrastructure: CHANGELOG, workflow, and documentation

Co-authored-by: Mouy-leng <199350297+Mouy-leng@users.noreply.github.com>

* Add release checklist and VERSION file

Co-authored-by: Mouy-leng <199350297+Mouy-leng@users.noreply.github.com>

* Fix variable assignment in release preparation script

Co-authored-by: Mouy-leng <199350297+Mouy-leng@users.noreply.github.com>

* Add release quick reference and update documentation

Co-authored-by: Mouy-leng <199350297+Mouy-leng@users.noreply.github.com>

* Add comprehensive release preparation summary

Co-authored-by: Mouy-leng <199350297+Mouy-leng@users.noreply.github.com>

* Add task completion summary

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Mouy-leng <199350297+Mouy-leng@users.noreply.github.com>
2026-02-05 02:53:31 +07:00

4.5 KiB

Release Quick Reference

Quick commands for creating and managing releases.

Creating a Release

# Interactive menu
bash scripts/prepare_release.sh

# Or run full release preparation
bash scripts/prepare_release.sh --full

This will guide you through the entire process.

Option 2: Manual Steps

# 1. Update version in CHANGELOG.md and VERSION file
echo "1.22.0" > VERSION

# 2. Validate
python3 scripts/ci_validate_repo.py
bash scripts/prepare_release.sh --test

# 3. Package
bash scripts/package_mt5.sh

# 4. Commit changes
git add CHANGELOG.md VERSION
git commit -m "Prepare release v1.22.0"
git push

# 5. Create and push tag
git tag -a v1.22.0 -m "Release v1.22.0"
git push origin v1.22.0

GitHub Actions will automatically create the release.

Useful Commands

Check Current Version

cat VERSION
grep "#property version" mt5/MQL5/Experts/SMC_TrendBreakout_MTF_EA.mq5

List Releases

git tag -l
gh release list  # if GitHub CLI is installed

Download Release

# Latest release
wget https://github.com/A6-9V/MQL5-Google-Onedrive/releases/latest/download/Exness_MT5_MQL5.zip

# Specific version
wget https://github.com/A6-9V/MQL5-Google-Onedrive/releases/download/v1.21.0/Exness_MT5_MQL5.zip

Verify Package

# Check contents
unzip -l Exness_MT5_MQL5.zip

# Verify checksum
sha256sum -c Exness_MT5_MQL5.zip.sha256

View Release Workflow Status

# Using GitHub CLI
gh run list --workflow=release.yml

# Or visit
open https://github.com/A6-9V/MQL5-Google-Onedrive/actions

Quick Validation

# All-in-one validation
bash scripts/prepare_release.sh --check && \
bash scripts/prepare_release.sh --validate && \
bash scripts/prepare_release.sh --test && \
bash scripts/prepare_release.sh --package

Release Preparation Script Options

bash scripts/prepare_release.sh --help

Available options:

  • --full - Run complete release preparation
  • --check - Check prerequisites only
  • --validate - Validate repository only
  • --test - Run tests only
  • --package - Package MT5 files only
  • --tag [VER] - Create release tag
  • --help - Show help

Version Format

  • Git tags: v1.21.0 (with 'v' prefix)
  • VERSION file: 1.21.0 (without 'v')
  • MQL5 EA: "1.21" (two digits)

Release Types

Major Release (X.0.0)

Breaking changes or major new features

git tag -a v2.0.0 -m "Release v2.0.0"

Minor Release (0.X.0)

New features, backwards compatible

git tag -a v1.22.0 -m "Release v1.22.0"

Patch Release (0.0.X)

Bug fixes only

git tag -a v1.21.1 -m "Release v1.21.1"

Pre-release

Beta, RC, or alpha versions

git tag -a v1.22.0-beta.1 -m "Release v1.22.0-beta.1"

Docker Images

# Pull latest
docker pull ghcr.io/a6-9v/mql5-google-onedrive:latest

# Pull specific version
docker pull ghcr.io/a6-9v/mql5-google-onedrive:v1.21.0

# List available images
gh api repos/A6-9V/MQL5-Google-Onedrive/packages

Rollback

# Checkout previous version
git checkout v1.20.0

# Or download previous release
wget https://github.com/A6-9V/MQL5-Google-Onedrive/releases/download/v1.20.0/Exness_MT5_MQL5.zip

Hotfix Process

# Create hotfix branch from tag
git checkout -b hotfix/v1.21.1 v1.21.0

# Make fixes
# ... edit files ...

# Update version
echo "1.21.1" > VERSION

# Commit
git commit -am "Fix critical bug"

# Tag hotfix
git tag -a v1.21.1 -m "Hotfix v1.21.1"
git push origin v1.21.1

# Merge back to main
git checkout main
git merge hotfix/v1.21.1
git push

Troubleshooting

Delete and Recreate Tag

# Local
git tag -d v1.21.0

# Remote
git push origin :refs/tags/v1.21.0

# Recreate
git tag -a v1.21.0 -m "Release v1.21.0"
git push origin v1.21.0

Failed Workflow

  1. Check Actions tab for errors
  2. Fix the issue
  3. Delete tag if needed
  4. Recreate and push tag

Package Build Failed

# Check repository
python3 scripts/ci_validate_repo.py

# Verify files exist
ls -R mt5/MQL5/

# Try manual build
bash scripts/package_mt5.sh

Important Files

  • CHANGELOG.md - Version history
  • VERSION - Current version
  • docs/RELEASE_PROCESS.md - Detailed documentation
  • .github/RELEASE_CHECKLIST.md - Release checklist
  • .github/workflows/release.yml - Release workflow
  • scripts/prepare_release.sh - Release tool

Support