Exceptions from the Fork/Feature-Branch workflow¶
Projects that require very extensive code modifications and are expected to be long-lived are somewhat excepted from the workflow described before. Extensive changes, e.g. adding impurity species, easily break the code and affect the work done in a majority of other projects. Therefore, those long-lived, extensive projects are allowed to have their own feature branches in the XGC parent repository. The general workflow is the same as described above with the exception that code modifications that are ready to be merged are not pulled into the “master” branch in the XGC parent repo, but in the feature branch for the project in the parent repo. Pull requests are to be used for this purpose as explained above. Once the code developed for a long-lived project is ready for being merged into the master branch, the lead developer of the project needs to coordinate the merge with the other developers to assess what projects may be affected by the merge and how to time the merge. After merging, the feature branch in the parent repo is to be closed!