3.6 KiB
✅ XC_VM Release Preparation Checklist
This document describes the process of creating an XC_VM release — a step-by-step guide for developers on updating the version, building archives, and publishing on GitHub.
📚 Navigation
🔢 1. Update Version
- Set the new
XC_VM_VERSIONvalue in the following files:
File to edit:
src/core/Config/AppConfig.php
Auto-update command:
sed -i "s/define('XC_VM_VERSION', *'[0-9]\+\.[0-9]\+\.[0-9]\+');/define('XC_VM_VERSION', 'X.Y.Z');/" src/core/Config/AppConfig.php
Commit the changes with a message:
git add .
git commit -m "Bump version to X.Y.Z"
git push
💡 Tip: Replace
X.Y.Zwith the actual version, e.g.,1.2.3.
🧹 2. Deleted Files
- Generate a list of deleted files:
make delete_files_list
- Open the file
dist/deleted_files.txt. - Copy the contents to
src/cli/Commands/UpdateCommand.phpin the$rCleanupFilesarray inside thepost-updatecase.
⚠️ Important: Ensure paths are correct to avoid deleting critical files.
Commit changes with a message:
git add .
git commit -m "Added deletion of old files before release"
git push
⚙️ 3. Build Archives
🤖 Automated: Building is handled by GitHub Actions workflow
.github/workflows/build-release.ymlwhen a release is published. Assets are automatically attached to the release.
For local builds, run the following commands:
make new
make lb
make main
make main_update
make lb_update
After building, dist/ should contain:
loadbalancer.tar.gz— LB installation archiveloadbalancer_update.tar.gz— LB update archiveXC_VM.zip— MAIN installation archiveupdate.tar.gz— MAIN update archivehashes.md5— file with checksums
🧰 Check: After building, verify archive integrity with
md5sum -c hashes.md5.
📝 4. Changelog
Fetch the previous release tag via GitHub API and generate the changelog:
PREV_TAG=$(curl -s https://api.github.com/repos/Vateron-Media/XC_VM/releases/latest \
| grep -Po '"tag_name":\s*"\K[^"]+')
echo "Previous release: $PREV_TAG"
git log --pretty=format:"- %s (%h)" "$PREV_TAG"..main > dist/changes.md
- Then add current release changes using this JSON:
https://github.com/Vateron-Media/XC_VM_Update/blob/main/changelog.json
- Add current release changes in JSON format:
[
{
"version": "X.Y.Z",
"changes": [
"Description of change 1",
"Description of change 2"
]
}
]
💬 Recommendation: Keep descriptions concise and informative, focusing on key improvements and fixes.
🚀 5. GitHub Release
-
Create a new release on GitHub Releases without attaching files.
-
Include the changelog in the release description.
-
After publishing, GitHub Actions will automatically build and attach:
loadbalancer.tar.gz— LB installation archiveloadbalancer_update.tar.gz— LB update archiveXC_VM.zip— MAIN installation archiveupdate.tar.gz— MAIN update archivehashes.md5— file with checksums
✅ Completion: Wait for the workflow to finish (Actions tab), then verify that all files are downloadable and checksums match.