2
0
mirror of https://github.com/frappe/bench.git synced 2024-06-03 08:50:54 +00:00
bench/docs/release_policy.md
2017-07-24 15:26:34 +05:30

2.4 KiB

Release Policy

Definitions:

  • develop Branch: All new feature developments will go in develop branch
  • staging Branch: This branch serves as a release candidate. Before a week, release team will pull the feature from develop branch to staging branch. EG: if the feature is in 25 July's milestone then it should go in staging on 19th July.
  • master Branch: master branch serves as a stable branch. This will use as production deployment.
  • hotfix Branch: mainly define for support issues. This will include bugs or any high priority task like security patches.

Create release from staging

  • On Tuesday, we will release from staging to master.

  • Versioning: Given a version number MAJOR.MINOR.PATCH, increment the:

    • MAJOR version when you make incompatible API changes,
    • MINOR version when you add functionality in a backwards-compatible manner, and
    • PATCH version when you make backwards-compatible bug fixes.
  • 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
  • Use release command to create release, usage: bench release APP patch|minor|major --from-branch staging


Create staging branch

  • On Wednesday morning, develop will be merge into staging. staging branch is a release candidate. All new features will first go from develop to staging and then staging to master.

  • Use the prepare-staging command to create staging branch usage: bench prepare-staging APP

  • Impact on branches?

    • merge all commits from develop branch to staging
    • push merge commit back to develop
  • QA will use staging for testing.

  • Deploy staging branch on frappe.io, erpnext.org, frappe.erpnext.com.

  • 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.


Create release from hotfix

  • Depending on priority, hotfix release will take place.

  • Versioning:

    • PATCH version when you make backwards-compatible bug 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