Hello community, here is the log from the commit of package pagure for openSUSE:Factory checked in at 2018-12-14 20:54:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pagure (Old) and /work/SRC/openSUSE:Factory/.pagure.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pagure" Fri Dec 14 20:54:23 2018 rev:4 rq:657847 version:5.1.4 Changes: -------- --- /work/SRC/openSUSE:Factory/pagure/pagure.changes 2018-10-15 09:40:08.507555518 +0200 +++ /work/SRC/openSUSE:Factory/.pagure.new.28833/pagure.changes 2018-12-14 20:56:55.960760385 +0100 @@ -1,0 +2,14 @@ +Thu Dec 13 14:43:19 UTC 2018 - Neal Gompa <ngomp...@gmail.com> + +- Update to 5.1.4 + + Fix the alembic migration creating the hook_mirror table + + Close the DB session in one place for all hooks + + Add more logging to the pagure_logcom service + + Configure SMTP info for git_multimail + + Use the PR UID previously read from environment +- Backport fix from master to add compatibility with Markdown 3.0+ + + Patch: 0001-Port-pagure-to-markdown-3.0-while-remaining-backward.patch +- Backport fix from master to properly skip legacy hooks + + Patch: 0002-Bypass-old-hooks-rather-than-using-non-existing-syml.patch + +------------------------------------------------------------------- Old: ---- pagure-5.1.3.tar.gz New: ---- 0001-Port-pagure-to-markdown-3.0-while-remaining-backward.patch 0002-Bypass-old-hooks-rather-than-using-non-existing-syml.patch pagure-5.1.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pagure.spec ++++++ --- /var/tmp/diff_new_pack.qQx15M/_old 2018-12-14 20:56:56.960759143 +0100 +++ /var/tmp/diff_new_pack.qQx15M/_new 2018-12-14 20:56:56.964759138 +0100 @@ -23,7 +23,7 @@ Name: pagure -Version: 5.1.3 +Version: 5.1.4 Release: 0 Summary: A git-centered forge Group: Development/Tools/Version Control @@ -40,6 +40,13 @@ # SUSE-specific README providing a quickstart guide Source10: pagure-README.SUSE +# Backports from upstream +# Port pfmarkdown to Markdown v3 while remaining v2 compatible +# From: https://pagure.io/pagure/c/8ed43b1f9581fd81a29cb2902baf92a80d19bfb8 +Patch0001: 0001-Port-pagure-to-markdown-3.0-while-remaining-backward.patch +# Avoid the need for non-existent symlinks to trigger migration to new hooks +# From: https://pagure.io/pagure/c/4937c4e266b2d1a2583b793128f87c66c96a7d5e +Patch0002: 0002-Bypass-old-hooks-rather-than-using-non-existing-syml.patch # SUSE-specific fixes # Change the defaults in the example config to match packaging @@ -65,8 +72,7 @@ BuildRequires: python3-docutils BuildRequires: python3-Flask BuildRequires: python3-Flask-WTF -# Pagure is currently not compatible with Markdown v3 -BuildRequires: python3-Markdown < 3 +BuildRequires: python3-Markdown BuildRequires: python3-nose BuildRequires: python3-Pillow BuildRequires: python3-psutil @@ -97,8 +103,7 @@ Requires: python3-docutils Requires: python3-Flask Requires: python3-Flask-WTF -# Pagure is currently not compatible with Markdown v3 -Requires: python3-Markdown < 3 +Requires: python3-Markdown Requires: python3-Pillow Requires: python3-psutil Requires: python3-pygit2 >= 0.24.0 ++++++ 0001-Port-pagure-to-markdown-3.0-while-remaining-backward.patch ++++++ >From 8ed43b1f9581fd81a29cb2902baf92a80d19bfb8 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon <pin...@pingoured.fr> Date: Wed, 12 Dec 2018 14:50:48 +0100 Subject: [PATCH] Port pagure to markdown 3.0+ while remaining backward compatible Lift the restriction in the requirements.txt Fixes https://pagure.io/pagure/issue/3668 Signed-off-by: Pierre-Yves Chibon <pin...@pingoured.fr> --- pagure/pfmarkdown.py | 26 ++++++++++++++++++++++---- requirements.txt | 2 +- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/pagure/pfmarkdown.py b/pagure/pfmarkdown.py index 39820ab2..6e5355d9 100644 --- a/pagure/pfmarkdown.py +++ b/pagure/pfmarkdown.py @@ -34,6 +34,16 @@ import pagure.lib.query from pagure.config import config as pagure_config +try: + from markdown.inlinepatterns import ImagePattern as ImagePattern + + MK_VERSION = 2 +except ImportError: + from markdown.inlinepatterns import ImageInlineProcessor as ImagePattern + + MK_VERSION = 3 + + # the (?<!\w) (and variants) we use a lot in all these regexes is a # negative lookbehind assertion. It means 'match when the preceding # character is not in the \w class'. This stops us from starting a @@ -325,11 +335,15 @@ class AutolinkPattern2(markdown.inlinepatterns.Pattern): return el -class ImagePatternLazyLoad(markdown.inlinepatterns.ImagePattern): +class ImagePatternLazyLoad(ImagePattern): """ Customize the image element matched for lazyloading. """ - def handleMatch(self, m): - el = super(ImagePatternLazyLoad, self).handleMatch(m) + def handleMatch(self, m, *args): + out = super(ImagePatternLazyLoad, self).handleMatch(m, *args) + if MK_VERSION == 3: + el = out[0] + else: + el = out # Add a noscript tag with the untouched img tag noscript = markdown.util.etree.Element("noscript") @@ -348,7 +362,11 @@ class ImagePatternLazyLoad(markdown.inlinepatterns.ImagePattern): outel.append(img) outel.append(noscript) - return outel + output = outel + if MK_VERSION == 3: + output = (outel, out[1], out[2]) + + return output class PagureExtension(markdown.extensions.Extension): diff --git a/requirements.txt b/requirements.txt index 95dab43e..15475f68 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,7 +14,7 @@ enum34;python_version<"3.4" flask flask-wtf kitchen -markdown < 3.0 +markdown munch Pillow psutil -- 2.17.2 ++++++ 0002-Bypass-old-hooks-rather-than-using-non-existing-syml.patch ++++++ >From 99cafd173c40d83e06110621ee5f2d3bef82d2c0 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon <pin...@pingoured.fr> Date: Mon, 26 Nov 2018 12:02:10 +0100 Subject: [PATCH] Bypass old hooks rather than using non-existing symlinks When we moved to the runner architecture, we changed the way hooks are called. During this move, we changed all of our existing hooks into non-existing symlinks pointing to '/does/not/exists' and we were checking if the files on disk were matching this target or not. This created a few issue when releasing pagure: - python setup.py sdist resolve symlinks as part of the archive creation process Reported in https://pagure.io/pagure/issue/3782 - Building pagure failed on some system because these symlinks does not exist Reported in https://pagure.io/pagure/issue/3706 So in this commit we are dropping the use of symlink and just making pagure ignore all the hook it could have created. Fixes https://pagure.io/pagure/issue/3782 Fixes https://pagure.io/pagure/issue/3706 Signed-off-by: Pierre-Yves Chibon <pin...@pingoured.fr> --- pagure/hooks/__init__.py | 7 +++---- pagure/lib/__init__.py | 20 +++++++++++++++++--- pagure/lib/tasks.py | 4 +--- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/pagure/hooks/__init__.py b/pagure/hooks/__init__.py index 027f5822..d7409460 100644 --- a/pagure/hooks/__init__.py +++ b/pagure/hooks/__init__.py @@ -411,10 +411,9 @@ def run_project_hooks( if hook.startswith(hooktype + "."): hookfile = os.path.join(hookdir, hook) - # Determine if this is an actual hook, or if it's a remnant - # from a hook that was installed before it was moved to the - # runner system. - if os.path.realpath(hookfile) == pagure.lib.HOOK_DNE_TARGET: + # By-pass all the old hooks that pagure may have created before + # moving to the runner architecture + if hook in pagure.lib.ORIGINAL_PAGURE_HOOK: continue # Execute diff --git a/pagure/lib/__init__.py b/pagure/lib/__init__.py index 0284201b..aebd07d4 100644 --- a/pagure/lib/__init__.py +++ b/pagure/lib/__init__.py @@ -70,9 +70,23 @@ REDIS = None PAGURE_CI = None REPOTYPES = ("main", "docs", "tickets", "requests") _log = logging.getLogger(__name__) -# The target for hooks migrated to the Runner system, to be able to detect -# whether a hook was migrated without having to open and read the file -HOOK_DNE_TARGET = "/does/not/exist" +# List of all the possible hooks pagure could generate before it was moved +# to the runner architecture we now use. +# This list is kept so we can ignore all of these hooks. +ORIGINAL_PAGURE_HOOK = [ + "post-receive.default", + "post-receive.fedmsg", + "post-receive.irc", + "post-receive.mail", + "post-receive.mirror", + "post-receive.pagure", + "post-receive.pagure-requests", + "post-receive.pagure-ticket", + "post-receive.rtd", + "pre-receive.pagure_no_new_branches", + "pre-receive.pagureforcecommit", + "pre-receive.pagureunsignedcommit", +] class Unspecified(object): diff --git a/pagure/lib/tasks.py b/pagure/lib/tasks.py index 74c03291..2e73121f 100644 --- a/pagure/lib/tasks.py +++ b/pagure/lib/tasks.py @@ -651,7 +651,6 @@ def move_to_repospanner(self, session, name, namespace, user, region): raise Exception("Project is already on repoSpanner") # Make sure that no non-runner hooks are enabled for this project - compatible_targets = [pagure.lib.HOOK_DNE_TARGET] incompatible_hooks = [] for repotype in pagure.lib.REPOTYPES: path = project.repopath(repotype) @@ -666,8 +665,7 @@ def move_to_repospanner(self, session, name, namespace, user, region): if hook.endswith(".sample"): # Ignore the samples that Git inserts continue - hookfile = os.path.join(hookpath, hook) - if os.path.realpath(hookfile) not in compatible_targets: + if hook not in pagure.lib.ORIGINAL_PAGURE_HOOK: incompatible_hooks.append((repotype, hook)) if incompatible_hooks: -- 2.17.2 ++++++ pagure-5.1.3.tar.gz -> pagure-5.1.4.tar.gz ++++++ /work/SRC/openSUSE:Factory/pagure/pagure-5.1.3.tar.gz /work/SRC/openSUSE:Factory/.pagure.new.28833/pagure-5.1.4.tar.gz differ: char 5, line 1