-
Notifications
You must be signed in to change notification settings - Fork 11
Explanation of Git Branches
Graphene development/deployment makes use of a number of different branches with different levels of stability. Depending on your use case, you may wish to utilize one or more of the different branches outlined below.
The binghamton-staging
branch is made up of code commits which Binghamton University is actively testing for deployment in the near future. This branch is often unstable, as it contains bleeding edge features, untested patches, upgrades, and other commits. Once the binghamton-staging
branch reaches a significant level of maturity (through developer QA testing), the code is merged into the binghamton-prod-actual
branch. There is no established time period for moving from binghamton-staging
to binghamton-prod-actual
, but we generally like to keep binghamton-staging
no more than ~30 days behind the binghamton-prod-actual
branch.
The binghamton-prod-actual
branch contains code which is actively running in a production environment, and serves as the backbone for
Binghamton University's my.binghamton.edu portal. This branch is largely stable, though it may contain a few unexpected bugs which were not discovered during testing in the binghamton-staging
branch. If critical bugs are found in the binghamton-staging
branch, they may be fixed within 24-48 hours of being discovered, and committed directly into the binghamton-prod-actual
branch, skipping the binghamton-staging
branch.
The master
branch sits about 2 weeks behind the binghamton-prod-actual
branch, and is the most stable of all the branches. Bugs are typically discovered in the binghamton-prod-actual
branch within the first 2 weeks of being deployed to my.binghamton.edu, so the binghamton-prod-actual
branch includes code which has been tested by developers, followed by 2 weeks of real-world testing by a campus of ~20,000 end users. If bugs are found in the master
branch, depending on severity and complexity, patches will be committed into the binghamton-staging
or binghamton-prod-actual
branches. No bug fixes are ever committed directly into the master
branch without first being tested in one (or both) of the binghamton-*
branches.
Graphene often utilizes other "feature" branches for developing new features. As these features are ready for testing, they are merged into the binghamton-staging
branch. Outside of active development or testing, there should never be a reason to checkout one of these feature branches.