We request that Grouper developers adhere to the standards below and also review the page on the Development Environment:
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
(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.
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) |
(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...)
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.
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:
# Get the latest main branch code before starting the feature (master) $ git pull (master) $ git checkout -b grp-1279 (grp-1279) #do work, make commits (grp-1279) #squash multiple commits together to a single new commit; e.g. here merge (grp-1279) #the last two commits by changing all but the first commit (grp-1279) #from "pick" to either "squash" (retain message) or "fixup" (ignore message) (grp-1279) $ git rebase -i HEAD~~ (grp-1279) $ git checkout master (master) #get any new commits (master) $ git pull (master) #if any new commits, go back to the feature branch and rebase (master) $ git checkout grp-1279 (grp-1279) $ git rebase master (grp-1279) #Retest. Fix any conflicts that occurred during the rebase. Then continue below (grp-1279) $ git checkout master (master) #merge should be a clean fast-forward merge (master) $ git merge grp-1279 (master) $ git push (master) #the branch is merged, can delete it now (master) $ git branch -d grp-1279 |
Intellij
groovy:000> edu.internet2.middleware.grouper.helper.LoadData.main() Wed Dec 22 13:08:05 EST 2021, stem: duke:siss:courses:SUBJECT1:100:10, stems: 6, Groups: 0, Memberships: 28 Wed Dec 22 13:08:06 EST 2021, stem: duke:siss:courses:SUBJECT1:100:11, stems: 7, Groups: 0, Memberships: 56 Wed Dec 22 13:08:06 EST 2021, stem: duke:siss:courses:SUBJECT1:100:12, stems: 8, Groups: 0, Memberships: 84 Wed Dec 22 13:08:07 EST 2021, stem: duke:siss:courses:SUBJECT1:100:13, stems: 9, Groups: 0, Memberships: 112 |
Refer to objects