2
0
mirror of https://github.com/frappe/bench.git synced 2025-01-08 00:04:38 +00:00

[update] release documentation

This commit is contained in:
Saurabh 2017-07-21 19:05:31 +05:30
parent 8faf03988c
commit 85e32346c3
2 changed files with 48 additions and 30 deletions

View File

@ -1,46 +1,56 @@
# Release Policy
We maintain a **staging** branch for erpnext and frappe. On every Wednesday, release team will create a **staging** branch from **develop** (Internal Release). Same on every Tuesday,we will release from **staging** branch to **master** (Community Release). We also maintain **hotfix** branch, to fix bugs from release. Hot fixes release will take place as per the priority and severity.
#### Create staging branch
- On Wednesday morning, we will create a `staging` branch from develop branch. `staging` branch is a release candidate. All new features will first go from `develop` to `staging` and then `staging` to `master`.
**I. Branch Description**
- Use the prepare-staging command to create staging branch
```usage: bench prepare-staging APP```
1. develop: All new feature developments will go in develop branch
2. staging: This branch serves as a release candidate. Before a week, release team will pull feature from develop branch to staging branch.<br> EG: if feature is in 25 July's milestone then it should go in staging on 19th July.
3. master: Community release.
4. hotfix: mainly define for support issues. This will include bugs or any high priority task like security patches.
- Impact on branches ?
- merge all commits from develop branch to staging
- push merge commit back to develop
- QA will use staging for testing.
**II. Where to send PR?**
- Deploy staging branch on frappe.io
1. If you are working on a new feature, then PR should point to develop branch
2. If you are working on support issue / bug / error report, then PR should point to hotfix brach
3. While performing testing on Staging branch, if any fix needed then only send that fix PR to staging.
4. Direct push to master strictly prohibited.
- Only regression and security fixes can be cherry-picked into staging
- Create a discuss post on what all new features or fixes going in next version.
**III. Versioning**
---
1. develop to staging: No release number, cherry-pick or hard push from develop.
2. staging to master:
Patch: Small fixes
Minor: For new features updates.
Major: If any API changes
3. hotfix to master: Patch version release
#### Create release from staging
- On Tuesday, we will release from staging to master.
- Versioning:
- patch: Small fixes
- minor: For new features updates.
- major: If any API changes
**IV. Release Impact on branches:**
- Impact on branches:
- merge staging branch to master
- push merge commit back to staging branch
- push merge commit to develop branch
- push merge commit to hotfix branch
1. Releasing from staging:
staging -> master -> develop -> hotfix
2. Releasing from hotfix:
hotfix -> master -> develop -> staging
- Use release command to create release,
``` usage: bench release APP patch|minor|major --from-branch staging ```
---
**V. Servers/Sites and Branches:**
#### Create release from hotfix
- Depending on priority, hotfix release will take place.
1. Frappe Cloud: master branch (Every Tuesday)
2. Frappe.io and Central: staging Branch (Every Wednesday)
3. demo.erpnext.com: master
4. beta.erpnext.com: staging
- Versioning:
- patch: Small fixes
- Impact on branches:
- merge hotfix branch to master
- push merge commit back to staging branch
- push merge commit to develop branch
- push merge commit to staging branch
- Use release command to create release,
``` usage: bench release APP patch --from-branch hotfix ```

View File

@ -15,6 +15,14 @@ bench get-app erpnext git@github.com:frappe/erpnext.git
"release_bench": true,
```
* Add branches to update in common_site_config.json
```
"branches_to_update": {
"staging": ["develop", "hotfix"],
"hotfix": ["develop", "staging"]
}
```
* Use the release commands to release
```
Usage: bench release [OPTIONS] APP BUMP_TYPE
@ -24,8 +32,8 @@ Usage: bench release [OPTIONS] APP BUMP_TYPE
* _APP_ App name e.g [frappe|erpnext|yourapp]
* _BUMP_TYPE_ [major|minor|patch|stable|prerelease]
* Options:
* --develop git develop branch, default is develop
* --master git master branch, default is master
* --from-branch git develop branch, default is develop
* --to-branch git master branch, default is master
* --remote git remote, default is upstream
* --owner git owner, default is frappe
* --repo-name git repo name if different from app name