Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Master is the dev branch.  If a new release was just cut, master might be the current release.  
  • Once work is needed on the next release a branch will be created.  
  • Branch names must follow the convention: GROUPER_2_3_0
  • Commits on released branches should only be made when a fix is ready for the next build number (2.5+) or patch (2.4)  

    • (2.4 only) After patch is made, tag the branch with this convention: grouper_X_Y_Z-aWW-uV-wU-pT e.g. grouper_2_4_0-a21-u9-w2-p2

      Code Block
      (master) $ git tag grouper_2_4_0-a25-u11-w2-p2
      (master) $ git push --tags


  • When committing (pull request or direct commit), you should have one JIRA associated with the commit.  

    Code Block
    GRP-1279: grouper installer should set sql logging to on so we can see progress of DDL on install or upgrade
     
    If there are more commits on the same issue, number them:
     
    GRP-1279: grouper installer should set sql logging to on so we can see progress of DDL on install or upgrade (commit 2)
    GRP-1279: grouper installer should set sql logging to on so we can see progress of DDL on install or upgrade (commit 3)


  • Every commit must have a unique comment (from all other commits).  This is so we can go back and see what hasnt been merged
  • Every commit in a non-master branch that should be merged forward must be cherry picked by the developer into all newer branches including master at the time of the commit
  • Pull requests must be on a recent pull of the branch the request is destined for so there are no conflicts
  • (2.4 only) All new/edited junit tests should be included in patches (CH I think we need to change the installer to make this happen, its not that simple...)

  • file names should be unique across grouper to make patching easier (e.g. dont have two classes with same name in different package, dont have two JSPs with same name in different dir, etc).  (even across projects, and being in a different package or folder doesnt count)

Git Tips

Github SSH keys

After August 2021, Github will stop allowing password logins for commits. By then, developers will need to generate an SSH key to authenticate for commits. To generate the key, follow this page. You will be generating a key called id_ed25519 and id_ed25519.pub. Then, change the repository URL in the project's git config (this is less well documented). On the project's homepage, click on the Code button to bring up the clone urls. Change from HTTPS to SSH and copy the URL (i.e., git@github.com:Internet2/grouper.git). Then edit your local .git/config file and change the project URL to it. After that, you will be asked for the ssh passphrase for commits instead of username and password.

Branches

Developers must create a separate (local) branch for a specific feature if a commit is not for an immediate patch.  That dev local branch should be named something like: GRP-1966-ui-visualization,  During development, multiple interim commits can be made.  Several options to merged back:

...