You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Description

This page to describe the branching model for ealge development. Basically, we adopt the branching model at http://nvie.com/posts/a-successful-git-branching-model/ with simplify.

 

Branching Model

Eagle branch model is a simplified version of aforementioned model.

Branches

The branches are defined as:

  • Master branch : always stable, the last release version (the release means formal voted in eagle community)
    • E2E test and unit test should all passed
  • Release branches : There will be each branch for one official release. And a tag for each official release. After released, there should only two kind of commits happens in release branch:
    • Release related fix, e.g. want to release a bug fix based on release branch.  This fix would be released as a minor version, and merge to develop.
    • Documentation fix, this might continue after release.
    • E2e test and unit tst should all passed

Learn from calcite, release branch suggested naming : release-${releaseVersoin}, e.g. release-0.3.0-incubating; Tag naming: b, e.g. ealge-0.3.0-incubating

  • Hotfixes: named as hotfix-${issueNumber}, like hotfix-eagle-221. This is forked from master, must be merged to develop.
    • E2E test and unit test should all passed.
  • Develop Branch : all active develop happens on here. Release branch cut out from here.
    • Unit test should all passed
  • Feature Branches : This is optional to apache/incubator-eagle. For most features, suggest contributor to fork code to their own repository, have their feature branch. Then send PR to merge to back to develop. Only long term future feature might be created as feature branch in apache/incubator-eagle repository.


Diagram


Steps for Feature Development

Say user "ralphsu" for "eagle-hdfs-audit-log" feature.

  1. User for the develop branch to his own repository, say from apache/incubator-eagle/tree/dev => ralphsu/incubator-eagle/tree/dev, then create feature branch hdfs-audit-log
  2. User continue add code on ralphsu/incubator-eagle/tree/hdfs-audit-log, and suggest continuously pull from apache/incubator-eagle/tree/dev to keep sync.
  3. User send PR to develop branch at target release cycle.


E2E Test

After setup E2E automation test, it should test master/all release/hotfixed branches when they have new commit.


 

  • No labels