2
0
mirror of https://github.com/frappe/bench.git synced 2025-02-02 19:08:24 +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 # 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 - Impact on branches ?
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. - merge all commits from develop branch to staging
3. master: Community release. - push merge commit back to develop
4. hotfix: mainly define for support issues. This will include bugs or any high priority task like security patches.
- 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 - Only regression and security fixes can be cherry-picked into staging
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.
- 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. #### Create release from staging
2. staging to master: - On Tuesday, we will release from staging to master.
Patch: Small fixes
Minor: For new features updates.
Major: If any API changes
3. hotfix to master: Patch version release
- 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: - Use release command to create release,
staging -> master -> develop -> hotfix ``` usage: bench release APP patch|minor|major --from-branch staging ```
2. Releasing from hotfix:
hotfix -> master -> develop -> 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) - Versioning:
2. Frappe.io and Central: staging Branch (Every Wednesday) - patch: Small fixes
3. demo.erpnext.com: master
4. beta.erpnext.com: staging
- 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, "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 * Use the release commands to release
``` ```
Usage: bench release [OPTIONS] APP BUMP_TYPE 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] * _APP_ App name e.g [frappe|erpnext|yourapp]
* _BUMP_TYPE_ [major|minor|patch|stable|prerelease] * _BUMP_TYPE_ [major|minor|patch|stable|prerelease]
* Options: * Options:
* --develop git develop branch, default is develop * --from-branch git develop branch, default is develop
* --master git master branch, default is master * --to-branch git master branch, default is master
* --remote git remote, default is upstream * --remote git remote, default is upstream
* --owner git owner, default is frappe * --owner git owner, default is frappe
* --repo-name git repo name if different from app name * --repo-name git repo name if different from app name