Artdaq development workflow - art-daq/artdaq GitHub Wiki
All development for artdaq packages should follow this pattern:
- Create Issue detailing why work is being performed
- Determine branch name: Use gitflow-based branch names (feature/ bugfix/ working/) and Issue#_Description (i.e. feature/21145_SMEM_ChangesToTraces or support/21146_ReformatUsingClangFormat)
- Update artdaq repository branches wiki page
git checkout develop;git checkout -b $branchName
- Make/test code changes
- All commit messages should include the issue number so that
Redmine can associate them with the appropriate issue (i.e.
“Reformat files using clang-format
`find . -type f -name *.cc -o -name *.cpp -o -name *.h -o -name *.hh`
. Part of Issue #21146”). (Note that Redmine recognizes the ‘#’ character followed immediately by the issue number; “# 21146” or “Issue 21146” will not work) - When issue has been resolved, change Issue state to “Resolved”
- All commit messages should include the issue number so that
Redmine can associate them with the appropriate issue (i.e.
“Reformat files using clang-format
- Get another artdaq developer to validate (review) code changes
-
Other developer (reviewer) should do
git checkout $branchName;git merge develop
##* Do not rebase. -
if there are anything other than trivial conflicts, abort merge and talk to issue resolver
-
relevant commits can been seen via: on_branch=
git status | awk '/^On branch/{print$3}'
;
git log develop..$on_branch --no-mergesTo look at the commits: for cc in
git log develop..$on_branch --no-merges | grep ^commit | awk '{print$2}'
;do git show $cc|cat done|less -
review should be done on this branch (with develop merged in)
-
- Reviewer should merge changes into develop via:
git checkout develop; git merge $branchName; git push --all
#* If there are problems with the merge, abort the merge, checkout the branch and merge/resolve there (with help as appropriate) and re-review (i.e. goto 6).* - Reviewer should update artdaq repository branches wiki page, filling in the review methods used and the date the develop merge was performed.
- Reviewer should mark the Issue as “Reviewed”, and put their name in the “Co-Assignees” field
- During the next release, the release manager will perform the
following steps for all reviewed branches:
- Associate the Issue with the release version
- Include the link to the Issue on the Release notes page, see Artdaq_Release_Notes_Pages
- Change the Issue to the “Closed” state
- Remove the branch from the repository
(
git push --delete <branch>
) Note the final commit hash output by git - Move the table line from artdaq repository branches to Branch Graveyard, including the hash from the previous step
Branches which have been merged into development and working branches which are no longer used will be cleaned up at release time, when related Issues are set to the “Closed” state.