Good Morning Everyone,
While testing something in dist-git two days ago, we found out that there is a piece of code missing to the alternativearch git hook.
Here is the error we saw: Counting objects: 3, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 384 bytes | 384.00 KiB/s, done. Total 3 (delta 2), reused 0 (delta 0) remote: sh: /usr/lib/python2.7/site-packages/pagure/hooks/files/fedmsg_hook.py: No such file or directory remote: Emitting a message to the fedmsg bus. remote: * Publishing information for 1 commits remote: Traceback (most recent call last): remote: File "/usr/share/git-core/post-receive-alternativearch", line 206, in <module> remote: run_as_post_receive_hook() remote: File "/usr/share/git-core/post-receive-alternativearch", line 163, in run_as_post_receive_hook remote: new_commits_list = get_revs_between(oldrev, newrev, abspath, refname) remote: File "/usr/share/git-core/post-receive-alternativearch", line 96, in get_revs_between remote: head = get_default_branch(abspath) remote: NameError: global name 'get_default_branch' is not defined remote: Sending to redis to send commit notification emails remote: * Publishing information for 1 commits remote: remote: Create a pull-request for f27 remote: https://src.stg.fedoraproject.org/rpms/guake/diff/master..f27 remote: To ssh://pkgs.stg.fedoraproject.org/rpms/guake * [new branch] f27 -> f27
And here is the patch I would like to apply to fix it: diff --git a/roles/git/hooks/files/post-receive-alternativearch b/roles/git/hooks/files/post-receive-alternativearch index 7bc4a9a6a..8d93137e4 100755 --- a/roles/git/hooks/files/post-receive-alternativearch +++ b/roles/git/hooks/files/post-receive-alternativearch @@ -100,6 +100,15 @@ def get_revs_between(oldrev, newrev, abspath, refname): return read_git_lines(cmd, abspath)
+def get_default_branch(abspath): + """ Return the default branch of a repo. """ + cmd = ['rev-parse', '--abbrev-ref', 'HEAD'] + out = read_git_lines(cmd, abspath) + if out: + return out[0] + else: + return 'master' +
def send_email(text, subject, to_mail): # pragma: no cover ''' Send an email with the specified information.
Thoughts?
Pierre
Hi Pierre,
Pierre-Yves Chibon wrote:
Good Morning Everyone,
While testing something in dist-git two days ago, we found out that there is a piece of code missing to the alternativearch git hook.
Here is the error we saw: Counting objects: 3, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 384 bytes | 384.00 KiB/s, done. Total 3 (delta 2), reused 0 (delta 0) remote: sh: /usr/lib/python2.7/site-packages/pagure/hooks/files/fedmsg_hook.py: No such file or directory
What about this separate error? It looks like fedmsg_hook.py was merged into default_hook.py in 638bb48d ("Merge the fedmsg notifications on commit logic into the default hook", 2018-03-07)¹.
¹ https://pagure.io/pagure/c/638bb48d
remote: Emitting a message to the fedmsg bus. remote: * Publishing information for 1 commits remote: Traceback (most recent call last): remote: File "/usr/share/git-core/post-receive-alternativearch", line 206, in <module> remote: run_as_post_receive_hook() remote: File "/usr/share/git-core/post-receive-alternativearch", line 163, in run_as_post_receive_hook remote: new_commits_list = get_revs_between(oldrev, newrev, abspath, refname) remote: File "/usr/share/git-core/post-receive-alternativearch", line 96, in get_revs_between remote: head = get_default_branch(abspath) remote: NameError: global name 'get_default_branch' is not defined remote: Sending to redis to send commit notification emails remote: * Publishing information for 1 commits remote: remote: Create a pull-request for f27 remote: https://src.stg.fedoraproject.org/rpms/guake/diff/master..f27 remote: To ssh://pkgs.stg.fedoraproject.org/rpms/guake
- [new branch] f27 -> f27
And here is the patch I would like to apply to fix it: diff --git a/roles/git/hooks/files/post-receive-alternativearch b/roles/git/hooks/files/post-receive-alternativearch index 7bc4a9a6a..8d93137e4 100755 --- a/roles/git/hooks/files/post-receive-alternativearch +++ b/roles/git/hooks/files/post-receive-alternativearch @@ -100,6 +100,15 @@ def get_revs_between(oldrev, newrev, abspath, refname): return read_git_lines(cmd, abspath)
+def get_default_branch(abspath):
- """ Return the default branch of a repo. """
- cmd = ['rev-parse', '--abbrev-ref', 'HEAD']
- out = read_git_lines(cmd, abspath)
- if out:
return out[0]
- else:
return 'master'
def send_email(text, subject, to_mail): # pragma: no cover ''' Send an email with the specified information.
I don't count for +1, but the change looks good to me.
This could also work to drop the if/else return clause.
branch = out and out[0] or 'master' return branch
On Wed, Apr 25, 2018 at 10:17:39AM -0400, Todd Zullinger wrote:
Hi Pierre,
Pierre-Yves Chibon wrote:
Good Morning Everyone,
While testing something in dist-git two days ago, we found out that there is a piece of code missing to the alternativearch git hook.
Here is the error we saw: Counting objects: 3, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 384 bytes | 384.00 KiB/s, done. Total 3 (delta 2), reused 0 (delta 0) remote: sh: /usr/lib/python2.7/site-packages/pagure/hooks/files/fedmsg_hook.py: No such file or directory
What about this separate error? It looks like fedmsg_hook.py was merged into default_hook.py in 638bb48d ("Merge the fedmsg notifications on commit logic into the default hook", 2018-03-07)¹.
That is expected in staging today since staging runs a beta of 4.0 while production still runs 3.13.2, I will adjust this once production is updated, it can simply be ignored for the moment. But it reminds me that this is something I wanted to address in 4.0 before I release it, so thanks :)
Pierre
infrastructure@lists.fedoraproject.org