Development Workflow - GCMLab/GCMLab-FEM GitHub Wiki

Understanding Branches

The repository has two main branches, master and develop, and an unlimited number of feature branches.

The master branch contains the latest release of the program. The code in the master branch has been tested and is ready for use.

The develop branch serves as an integration branch for features. All new features are merged into this branch. The develop branch must go through a series of tests before getting merged to the master branch.

Feature branches are created on an as-need basis by the developers. Any time a new issue is being resolved, a feature branch is created. The developer performs the work in the feature branch, tests the changes to the code, creates a pull request for other developers to review the work and comment, and once the changes are approved the feature branch is merged into the develop branch.

Workflow

  1. New issues are raised at any time to keep track of future contributions to the project. Issues may be new enhancements to the code, additional test cases, bugs that need to be addressed, documentation that needs to be added to the wiki, etc.

  2. Any time a new contribution or modification is initiated for the code, a new feature branch is created. At this time, the developer(s) should assign themselves the specific issue that they are working on.

  3. The developer performs all code modifications in this feature branch. The changes should be related to a single purpose. For multiple unrelated modifications, multiple feature branches should be created.

  4. The developer should create or select a test case that checks whether the implemented feature is working. The test case should be well-documented in the Wiki.

  5. The developer should frequently merge the develop branch into the feature branch to ensure the latest updates are incorporated into the code.

  6. Once the feature branch has been developed and tested, the developer can initiate a pull request.

  7. A code review is required by at least one other developer. Details on the code review process can be found here.

  8. Once approved, the feature branch is merged into the develop branch and forms a part of the main code.

⚠️ **GitHub.com Fallback** ⚠️