From 69b229bd60135838d606f5da41831d409d11de2d Mon Sep 17 00:00:00 2001 From: Giuseppe Di Natale Date: Thu, 26 Oct 2017 10:23:58 -0700 Subject: [PATCH] commitcheck: Multiple OpenZFS ports in commit Allow commitcheck.sh to handle multiple OpenZFS ports in a single commit. This is useful in the cases when a change upstream has bug fixes and it makes sense to port them with the original patch. Reviewed-by: Brian Behlendorf Reviewed-by: George Melikov Reviewed-by: Chris Dunlop Signed-off-by: Giuseppe Di Natale Closes #6780 --- .github/CONTRIBUTING.md | 53 ++++++++++++++++++++++++++++++++--------- scripts/commitcheck.sh | 13 ++++++---- 2 files changed, 51 insertions(+), 15 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index ab64c0c0e1..a74eb55355 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -186,23 +186,23 @@ Signed-off-by: Contributor ``` #### OpenZFS Patch Ports -If you are porting an OpenZFS patch, the commit message must meet +If you are porting OpenZFS patches, the commit message must meet the following guidelines: -* The first line must be the summary line from the OpenZFS commit. -It must begin with `OpenZFS dddd - ` where `dddd` is the OpenZFS issue number. -* Provides a `Authored by:` line to attribute the patch to the original author. -* Provides the `Reviewed by:` and `Approved by:` lines from the original +* The first line must be the summary line from the most important OpenZFS commit being ported. +It must begin with `OpenZFS dddd, dddd - ` where `dddd` are OpenZFS issue numbers. +* Provides a `Authored by:` line to attribute each patch for each original author. +* Provides the `Reviewed by:` and `Approved by:` lines from each original OpenZFS commit. * Provides a `Ported-by:` line with the developer's name followed by -their email. -* Provides a `OpenZFS-issue:` line which is a link to the original illumos +their email for each OpenZFS commit. +* Provides a `OpenZFS-issue:` line with link for each original illumos issue. -* Provides a `OpenZFS-commit:` line which links back to the original OpenZFS -commit. +* Provides a `OpenZFS-commit:` line with link for each original OpenZFS commit. * If necessary, provide some porting notes to describe any deviations from -the original OpenZFS commit. +the original OpenZFS commits. -An example OpenZFS patch port commit message is provided below. +An example OpenZFS patch port commit message for a single patch is provided +below. ``` OpenZFS 1234 - Summary from the original OpenZFS commit @@ -218,6 +218,37 @@ OpenZFS-issue: https://www.illumos.org/issues/1234 OpenZFS-commit: https://github.com/openzfs/openzfs/commit/abcd1234 ``` +If necessary, multiple OpenZFS patches can be combined in a single port. +This is useful when you are porting a new patch and its subsequent bug +fixes. An example commit message is provided below. +``` +OpenZFS 1234, 5678 - Summary of most important OpenZFS commit + +1234 Summary from original OpenZFS commit for 1234 + +Authored by: Original Author +Reviewed by: Reviewer Two +Approved by: Approver One +Ported-by: ZFS Contributor + +Provide some porting notes here for 1234 if necessary. + +OpenZFS-issue: https://www.illumos.org/issues/1234 +OpenZFS-commit: https://github.com/openzfs/openzfs/commit/abcd1234 + +5678 Summary from original OpenZFS commit for 5678 + +Authored by: Original Author2 +Reviewed by: Reviewer One +Approved by: Approver Two +Ported-by: ZFS Contributor + +Provide some porting notes here for 5678 if necessary. + +OpenZFS-issue: https://www.illumos.org/issues/5678 +OpenZFS-commit: https://github.com/openzfs/openzfs/commit/efgh5678 +``` + #### Coverity Defect Fixes If you are submitting a fix to a [Coverity defect](https://scan.coverity.com/projects/zfsonlinux-zfs), diff --git a/scripts/commitcheck.sh b/scripts/commitcheck.sh index 1f78dc8a84..927f5e737a 100755 --- a/scripts/commitcheck.sh +++ b/scripts/commitcheck.sh @@ -51,9 +51,14 @@ function check_tagged_line_with_url() return 1 fi - if ! test_url "$foundline"; then - return 1 - fi + OLDIFS=$IFS + IFS=$'\n' + for url in $(echo -e "$foundline"); do + if ! test_url "$url"; then + return 1 + fi + done + IFS=$OLDIFS return 0 } @@ -99,7 +104,7 @@ function openzfs_port_commit() error=0 # subject starts with OpenZFS dddd - subject=$(git log -n 1 --pretty=%s "$REF" | egrep -m 1 '^OpenZFS [[:digit:]]+ - ') + subject=$(git log -n 1 --pretty=%s "$REF" | egrep -m 1 '^OpenZFS [[:digit:]]+(, [[:digit:]]+)* - ') if [ -z "$subject" ]; then echo "error: OpenZFS patch ports must have a subject line that starts with \"OpenZFS dddd - \"" error=1