-
Notifications
You must be signed in to change notification settings - Fork 31
Workflows
-
Make a new feature branch using a name starting with
develop-<name>
. This name format is required for docker to validate the branch when commits are pushed. -
Create a "Draft" pull request for the new feature branch to
develop
. Assign the pull request to yourself, set the tags, and project. -
When the work is complete and the pull request validation on GitHub and Docker returns true, set the pull request to "Ready for Review" and assign a reviewer.
-
When the review is approved, merge the pull request to develop using a "Squash" merge.
The release procedure of HiPAS GridLAB-D is as follows:
- Stage
develop
branch in preparation for the merge intomaster
.
-
Merge
master
intodevelop
branch using a normal merge. -
Update
gldcore/version.h
to new version being staged for release. -
List code changes (ie all PRs that are part of this release)
-
List current unresolved issues, if any.
- Validate the
develop
branch on local system, GitHub Workflow and DockerHub.
-
Build, install, and validate the
develop
branch on the local system. -
Build and validate the Docker image of the
develop
branch on the local system. -
All issues noted must be resolved before moving to Step 3.
-
Merge
develop
intomaster
using a "Rebase" merge. -
Manually build docker image
host%: cd docker && docker build .
and tag the imageslacgismo/gridlabd:latest
. -
Re-tag the latest
slacgismo/gridlabd
with the next release name and number on the Docker images page. If the changes are minor, the next image number should be used. The next image name should use if the changes are major. Major changes include:
-
Removal of deprecated functionality.
-
Changes in functionality that are not forward compatible from the previous release. "Compatibility" refers to whether the simulation runs with the same inputs, but not whether the simulation produces the same results.
- Update the release images
-
Push the image to DockerHub with next tag name and update [Docker images]] page.
-
Generate the new AWS image.
- Create a new
develop
branch frommaster
.
-
Update the patch number in
gldcore/version.h
-
Create the pull request to stage the merge from
develop
tomaster
. -
Merge the new
develop
update to all the workingdevelop-*
branches. Verify Github workflow have passed all the checks.
- Merge the new
master
into the existingminor
andmajor
workflows
- Merge the updated
minor
andmajor
branches into the respectedminor-*
andmajor-*
branches.
- Draft the tag/release with the update to master using the version number (e.g., X.Y.Z) and release name (e.g., Name-Z). Don't forget to copy the PR "Code" and "Documentation" change list into the release description.
-
By convention any branch that is not named
master*
ordevelop*
is not considered part of the managed workflows for HiPAS GridLAB-D. Developers are recommended to name their private sandbox branches using the conventionusername/<branch-name>
. -
Team sandboxes can be named similarly by using a team, project, and other conceptual grouping, e.g.,
use-case/<scenario-name>
. -
A sandbox workflow may be turned into a development workflow by creating a new development branch from
develop
and "Squash" merging the sandbox branch into the new branch. After this is completed the sandbox branch is deleted and theDevelopment Workflow
is followed.
There are three types of merges used in HiPAS Workflows. Use of the correct merge is vital to preserving the integrity of the commit history as desired by the development team.
- Normal merge - This is used to merge
master -> develop
-
Keeps all commits history of the feature branch and move them into the master branch
-
Adds an extra dummy commit to the master branch
- Rebase merge - This is used to merge
develop -> master
- Appends all commits history of the feature branch in the front of the master branch
- Squash merge - This is used to merge
develop-*
todevelop
- Groups all feature branch commits into one commit which it adds as a dummy commit to the front of the master branch
Copyright © 2020-2022, Regents of the Leland Stanford Junior University
This site is maintained by SLAC GISMo at SLAC National Accelerator National Laboratory, which is operated by Stanford University for the US Department of Energy under Contract DE-AC02-76RL00515.