Meshtastic-Apple/RELEASING.md

45 lines
1.5 KiB
Markdown
Raw Normal View History

# Releasing Meshtastic
This document outlines the process for preparing and making a release for Meshtastic.
## Table of Contents
1. [Branching Strategy](#branching-strategy)
2. [Preparing for a Release](#preparing-for-a-release)
3. [Creating a Release Branch](#creating-a-release-branch)
4. [Finalizing the Release](#finalizing-the-release)
## Branching Strategy
- **Main Branch (`main`)**: This is the main development branch where daily development occurs.
- **Release Branch (`X.YY.ZZ-release`)**: This branch is created from `main` for preparing a specific release version.
## Preparing for a Release
1. Ensure all desired features and fixes are merged into the `main` branch.
2. Update the version number in the relevant files.
3. Update the project documentation to reflect the upcoming release.
## Creating a Release Branch
1. Create a release branch from `main`.
```sh
./scripts/create-release-branch.sh
```
## Finalizing the Release
1. Perform final testing and quality checks on the `X.YY.ZZ-release` branch.
a. If any hotfix changes are required, merge those changes into `X.YY.ZZ-release`.
b. After merging these changes into the release branch, cherry-pick the changes onto `main`.
2. Once everything is ready, create a final tag for the release:
```sh
git tag -a X.YY.ZZ -m "Release version X.Y.Z"
git push origin X.YY.ZZ
```
Thank you for following the release process and helping to ensure the stability and quality of Meshtastic!
---
Feel free to modify this template to better fit your project's specific needs.