Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package openSUSE-release-tools for 
openSUSE:Factory checked in at 2022-03-31 17:18:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
 and      /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.1900 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "openSUSE-release-tools"

Thu Mar 31 17:18:36 2022 rev:415 rq:966127 version:20220330.1114fbdd

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes
    2022-03-30 20:36:04.949323780 +0200
+++ 
/work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.1900/openSUSE-release-tools.changes
  2022-03-31 17:19:08.060970467 +0200
@@ -1,0 +2,26 @@
+Wed Mar 30 14:22:36 UTC 2022 - opensuse-releaset...@opensuse.org
+
+- Update to version 20220330.1114fbdd:
+  * Add new aggregation periods to Grafana dashboard
+
+-------------------------------------------------------------------
+Wed Mar 30 09:29:04 UTC 2022 - opensuse-releaset...@opensuse.org
+
+- Update to version 20220330.68fa08aa:
+  * Remove obsolete Leap 15.2 announcer config
+  * Remove obsolete Leap 15.2 scheduling
+
+-------------------------------------------------------------------
+Wed Mar 30 09:16:56 UTC 2022 - opensuse-releaset...@opensuse.org
+
+- Update to version 20220330.a2fa6583:
+  * dist: no longer package check_source_in_factory
+  * Fix adi projects having no archs
+
+-------------------------------------------------------------------
+Wed Mar 30 07:57:37 UTC 2022 - opensuse-releaset...@opensuse.org
+
+- Update to version 20220330.adef152c:
+  * Merge check_source_in_factory into check_tags_in_requests.py
+
+-------------------------------------------------------------------

Old:
----
  openSUSE-release-tools-20220330.39d635d6.obscpio

New:
----
  openSUSE-release-tools-20220330.1114fbdd.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.ZVbvKR/_old  2022-03-31 17:19:09.524953953 +0200
+++ /var/tmp/diff_new_pack.ZVbvKR/_new  2022-03-31 17:19:09.532953863 +0200
@@ -20,7 +20,7 @@
 %define source_dir openSUSE-release-tools
 %define announcer_filename factory-package-news
 Name:           openSUSE-release-tools
-Version:        20220330.39d635d6
+Version:        20220330.1114fbdd
 Release:        0
 Summary:        Tools to aid in staging and release work for openSUSE/SUSE
 License:        GPL-2.0-or-later AND MIT
@@ -356,7 +356,6 @@
 %{_bindir}/osrt-build-fail-reminder
 %{_bindir}/osrt-checknewer
 %{_bindir}/osrt-check_bugowner
-%{_bindir}/osrt-check_source_in_factory
 %{_bindir}/osrt-check_tags_in_requests
 %{_bindir}/osrt-compare_pkglist
 %{_bindir}/osrt-container_cleaner

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.ZVbvKR/_old  2022-03-31 17:19:09.572953412 +0200
+++ /var/tmp/diff_new_pack.ZVbvKR/_new  2022-03-31 17:19:09.576953367 +0200
@@ -1,7 +1,7 @@
 <servicedata>
   <service name="tar_scm">
     <param 
name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param>
-    <param 
name="changesrevision">c4af75db585d384f660153b1c1f3867bc92fcda1</param>
+    <param 
name="changesrevision">1114fbdd30d0d4506ca3767d2e5d563bf076304f</param>
   </service>
 </servicedata>
 

++++++ openSUSE-release-tools-20220330.39d635d6.obscpio -> 
openSUSE-release-tools-20220330.1114fbdd.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openSUSE-release-tools-20220330.39d635d6/CONTENTS.md 
new/openSUSE-release-tools-20220330.1114fbdd/CONTENTS.md
--- old/openSUSE-release-tools-20220330.39d635d6/CONTENTS.md    2022-03-30 
09:07:58.000000000 +0200
+++ new/openSUSE-release-tools-20220330.1114fbdd/CONTENTS.md    2022-03-30 
16:20:50.000000000 +0200
@@ -224,17 +224,6 @@
 * Package: openSUSE-release-tools-abichecker
 * Usage: gocd?
 
-#### check_source_in_factory
-
-Checks if the sources of a submission are either in Factory or a request for 
Factory with the same
-sources exist. Not used as a standalone bot anymore, but called internally from
-check_tags_in_requests.
-
-* Sources: [check_source_in_factory.py](check_source_in_factory.py)
-* Documentation: [docs/factory-source.asciidoc](docs/factory-source.asciidoc)
-* Package: openSUSE-release-tools
-* Usage: used from other bots (check_tags_in_requests)
-
 #### openqa-maintenance
 
 OpenQA stuff, not sure about the details.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20220330.39d635d6/check_maintenance_incidents.py 
new/openSUSE-release-tools-20220330.1114fbdd/check_maintenance_incidents.py
--- old/openSUSE-release-tools-20220330.39d635d6/check_maintenance_incidents.py 
2022-03-30 09:07:58.000000000 +0200
+++ new/openSUSE-release-tools-20220330.1114fbdd/check_maintenance_incidents.py 
2022-03-30 16:20:50.000000000 +0200
@@ -113,11 +113,6 @@
 
         self._check_maintainer_review_needed(req, a)
 
-        if a.tgt_releaseproject.startswith("openSUSE:Backports:") \
-            and not 
a.tgt_releaseproject.startswith("openSUSE:Backports:SLE-15-SP3") \
-                and not 
a.tgt_releaseproject.startswith("openSUSE:Backports:SLE-15-SP4"):
-            self.add_factory_source = True
-
         return True
 
     def check_action_submit(self, req, a):
@@ -132,23 +127,10 @@
         return True
 
     def check_one_request(self, req):
-        self.add_factory_source = False
         self.needs_maintainer_review = set()
 
         ret = ReviewBot.ReviewBot.check_one_request(self, req)
 
-        # check if factory-source is already a reviewer
-        if self.add_factory_source:
-            for r in req.reviews:
-                if r.by_user == 'factory-source':
-                    self.add_factory_source = False
-                    self.logger.debug("factory-source already is a reviewer")
-                    break
-
-        if self.add_factory_source:
-            self.logger.debug("%s needs review by factory-source" % req.reqid)
-            self.add_review(req, by_user='factory-source')
-
         if self.needs_maintainer_review:
             for p in self.needs_maintainer_review:
                 self.add_devel_project_review(req, p)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20220330.39d635d6/check_source_in_factory.py 
new/openSUSE-release-tools-20220330.1114fbdd/check_source_in_factory.py
--- old/openSUSE-release-tools-20220330.39d635d6/check_source_in_factory.py     
2022-03-30 09:07:58.000000000 +0200
+++ new/openSUSE-release-tools-20220330.1114fbdd/check_source_in_factory.py     
1970-01-01 01:00:00.000000000 +0100
@@ -1,170 +0,0 @@
-#!/usr/bin/python3
-
-import sys
-import osc.conf
-import osc.core
-from urllib.error import HTTPError, URLError
-import ReviewBot
-
-
-class FactorySourceChecker(ReviewBot.ReviewBot):
-    """ This review bot is obsolete since the introduction of better
-    alternatives like origin-manager. But it's kept because other bots like
-    TagChecker (check_tags_in_request) still call this bot as part of their
-    implementation.
-
-    This review bot was used in the past to check if the sources of a 
submission
-    are either in Factory or a request for Factory with the same sources exist.
-    If the latter a request is only accepted if the Factory request is reviewed
-    positive."""
-
-    def __init__(self, *args, **kwargs):
-        ReviewBot.ReviewBot.__init__(self, *args, **kwargs)
-        self.factory = ["openSUSE:Factory"]
-        self.review_messages = {'accepted': 'ok', 'declined': 'the package 
needs to be accepted in Factory first'}
-        self.history_limit = 5
-
-    def check_source_submission(self, src_project, src_package, src_rev, 
target_project, target_package):
-        super(FactorySourceChecker, self).check_source_submission(
-            src_project, src_package, src_rev, target_project, target_package)
-        src_srcinfo = self.get_sourceinfo(src_project, src_package, src_rev)
-        if src_srcinfo is None:
-            # source package does not exist?
-            # handle here to avoid crashing on the next line
-            self.logger.info("Could not get source info for %s/%s@%s" % 
(src_project, src_package, src_rev))
-            return False
-        projects = self._package_get_upstream_projects(target_package)
-        if projects is None:
-            self.logger.error("no upstream project found for {}, can't 
check".format(target_package))
-            return False
-
-        self.review_messages['declined'] = 'the package needs to be accepted 
in {} first'.format(' or '.join(projects))
-        for project in projects:
-            self.logger.info("Checking in project %s" % project)
-            good = self._check_matching_srcmd5(project, target_package, 
src_srcinfo.verifymd5, self.history_limit)
-            if good:
-                self.logger.info("{} is in {}".format(target_package, project))
-                return good
-
-            good = self._check_requests(project, target_package, 
src_srcinfo.verifymd5)
-            if good:
-                self.logger.info("{} already reviewed for 
{}".format(target_package, project))
-
-        if not good:
-            self.logger.info('{} failed source submission 
check'.format(target_package))
-
-        return good
-
-    def _package_get_upstream_projects(self, package):
-        """ return list of projects where the specified package is supposed to 
come
-        from. Either by lookup table or self.factory """
-        projects = []
-        for prj in self.factory:
-            r = self.lookup.get(prj, package)
-            if r:
-                projects.append(r)
-
-        if not projects:
-            projects = self.factory
-
-        return projects
-
-    def _check_requests(self, project, package, rev):
-        self.logger.debug("checking requests")
-        prjprefix = ''
-        apiurl = self.apiurl
-        sr = 'sr'
-        try:
-            if self.config.project_namespace_api_map:
-                for prefix, url, srprefix in 
self.config.project_namespace_api_map:
-                    if project.startswith(prefix):
-                        apiurl = url
-                        prjprefix = prefix
-                        project = project[len(prefix):]
-                        sr = srprefix
-                        break
-            requests = osc.core.get_request_list(apiurl, project, package, 
None, ['new', 'review'], 'submit')
-        except (HTTPError, URLError):
-            self.logger.error("caught exception while checking %s/%s", 
project, package)
-            return None
-
-        def srref(reqid):
-            return '#'.join((sr, reqid))
-
-        for req in requests:
-            for a in req.actions:
-                si = self.get_sourceinfo(prjprefix + a.src_project, 
a.src_package, a.src_rev)
-                self.logger.debug("rq %s: %s/%s@%s" % (req.reqid, prjprefix +
-                                  a.src_project, a.src_package, si.verifymd5))
-                if si.verifymd5 == rev:
-                    if req.state.name == 'new':
-                        self.logger.info("%s ok", srref(req.reqid))
-                        return True
-                    elif req.state.name == 'review':
-                        self.logger.debug("%s still in review", 
srref(req.reqid))
-                        if not req.reviews:
-                            self.logger.error("%s in state review but no 
reviews?", srref(req.reqid))
-                            return False
-                        for r in req.reviews:
-                            if r.state == 'new':
-                                if r.by_project and 
r.by_project.startswith('openSUSE:Factory:Staging:'):
-                                    self.logger.info("%s review by %s ok", 
srref(req.reqid), r.by_project)
-                                    continue
-
-                                if r.by_user == 'repo-checker':
-                                    self.logger.info('%s review by %s ok', 
srref(req.reqid), r.by_user)
-                                    continue
-
-                            if r.state != 'accepted':
-                                if r.by_user:
-                                    self.logger.info("%s waiting for review by 
%s", srref(req.reqid), r.by_user)
-                                elif r.by_group:
-                                    self.logger.info("%s waiting for review by 
%s", srref(req.reqid), r.by_group)
-                                elif r.by_project:
-                                    if r.by_package:
-                                        self.logger.info("%s waiting for 
review by %s/%s",
-                                                         srref(req.reqid), 
r.by_project, r.by_package)
-                                    else:
-                                        self.logger.info("%s waiting for 
review by %s", srref(req.reqid), r.by_project)
-                                return None
-                        return True
-                    else:
-                        self.logger.error("%s in state %s not expected", 
srref(req.reqid), req.state.name)
-                        return None
-                else:
-                    self.logger.info("%s to %s has different sources", 
srref(req.reqid), project)
-        return False
-
-
-class CommandLineInterface(ReviewBot.CommandLineInterface):
-
-    def __init__(self, *args, **kwargs):
-        ReviewBot.CommandLineInterface.__init__(self, args, kwargs)
-        self.clazz = FactorySourceChecker
-
-    def get_optparser(self):
-        parser = ReviewBot.CommandLineInterface.get_optparser(self)
-        parser.add_option("--factory", metavar="project", action="append",
-                          help=("Project to check source against. Use multiple 
times to check more than one project. "
-                                "[default: openSUSE:Factory]"))
-        parser.add_option("--lookup", metavar="project", help="use lookup 
file")
-        parser.add_option("--limit", metavar="limit", help="how many revisions 
back to check. [default: 5]")
-
-        return parser
-
-    def setup_checker(self):
-        bot = ReviewBot.CommandLineInterface.setup_checker(self)
-
-        if self.options.factory:
-            bot.factory = self.options.factory
-        if self.options.lookup:
-            bot.parse_lookup(self.options.lookup)
-        if self.options.limit:
-            bot.history_limit = self.options.limit
-
-        return bot
-
-
-if __name__ == "__main__":
-    app = CommandLineInterface()
-    sys.exit(app.main())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20220330.39d635d6/check_tags_in_requests.py 
new/openSUSE-release-tools-20220330.1114fbdd/check_tags_in_requests.py
--- old/openSUSE-release-tools-20220330.39d635d6/check_tags_in_requests.py      
2022-03-30 09:07:58.000000000 +0200
+++ new/openSUSE-release-tools-20220330.1114fbdd/check_tags_in_requests.py      
2022-03-30 16:20:50.000000000 +0200
@@ -9,7 +9,137 @@
 
 import ReviewBot
 
-import check_source_in_factory
+
+class FactorySourceChecker(ReviewBot.ReviewBot):
+    """ This review bot is obsolete since the introduction of better
+    alternatives like origin-manager. But it's kept because other bots like
+    TagChecker (check_tags_in_request) still call this bot as part of their
+    implementation.
+
+    This review bot was used in the past to check if the sources of a 
submission
+    are either in Factory or a request for Factory with the same sources exist.
+    If the latter a request is only accepted if the Factory request is reviewed
+    positive."""
+
+    def __init__(self, *args, **kwargs):
+        ReviewBot.ReviewBot.__init__(self, *args, **kwargs)
+        self.factory = ["openSUSE:Factory"]
+        self.review_messages = {'accepted': 'ok', 'declined': 'the package 
needs to be accepted in Factory first'}
+        self.history_limit = 5
+
+    def check_source_submission(self, src_project, src_package, src_rev, 
target_project, target_package):
+        super(FactorySourceChecker, self).check_source_submission(
+            src_project, src_package, src_rev, target_project, target_package)
+        src_srcinfo = self.get_sourceinfo(src_project, src_package, src_rev)
+        if src_srcinfo is None:
+            # source package does not exist?
+            # handle here to avoid crashing on the next line
+            self.logger.info("Could not get source info for %s/%s@%s" % 
(src_project, src_package, src_rev))
+            return False
+        projects = self._package_get_upstream_projects(target_package)
+        if projects is None:
+            self.logger.error("no upstream project found for {}, can't 
check".format(target_package))
+            return False
+
+        self.review_messages['declined'] = 'the package needs to be accepted 
in {} first'.format(' or '.join(projects))
+        for project in projects:
+            self.logger.info("Checking in project %s" % project)
+            good = self._check_matching_srcmd5(project, target_package, 
src_srcinfo.verifymd5, self.history_limit)
+            if good:
+                self.logger.info("{} is in {}".format(target_package, project))
+                return good
+
+            good = self._check_requests(project, target_package, 
src_srcinfo.verifymd5)
+            if good:
+                self.logger.info("{} already reviewed for 
{}".format(target_package, project))
+
+        if not good:
+            self.logger.info('{} failed source submission 
check'.format(target_package))
+
+        return good
+
+    def _check_requests(self, project, package, rev):
+        self.logger.debug("checking requests")
+        prjprefix = ''
+        apiurl = self.apiurl
+        sr = 'sr'
+        try:
+            if self.config.project_namespace_api_map:
+                for prefix, url, srprefix in 
self.config.project_namespace_api_map:
+                    if project.startswith(prefix):
+                        apiurl = url
+                        prjprefix = prefix
+                        project = project[len(prefix):]
+                        sr = srprefix
+                        break
+            requests = osc.core.get_request_list(apiurl, project, package, 
None, ['new', 'review'], 'submit')
+        except (HTTPError, URLError):
+            self.logger.error("caught exception while checking %s/%s", 
project, package)
+            return None
+
+        def srref(reqid):
+            return '#'.join((sr, reqid))
+
+        for req in requests:
+            for a in req.actions:
+                si = self.get_sourceinfo(prjprefix + a.src_project, 
a.src_package, a.src_rev)
+                self.logger.debug("rq %s: %s/%s@%s" % (req.reqid, prjprefix +
+                                  a.src_project, a.src_package, si.verifymd5))
+                if si.verifymd5 != rev:
+                    self.logger.info("%s to %s has different sources", 
srref(req.reqid), project)
+                    continue
+
+                if req.state.name == 'new':
+                    self.logger.info("%s ok", srref(req.reqid))
+                    return True
+                if req.state.name != 'review':
+                    self.logger.error("%s in state %s not expected", 
srref(req.reqid), req.state.name)
+                    return None
+
+                self.logger.debug("%s still in review", srref(req.reqid))
+                if not req.reviews:
+                    self.logger.error("%s in state review but no reviews?", 
srref(req.reqid))
+                    return False
+                for r in req.reviews:
+                    if r.state == 'new':
+                        if r.by_project and 
r.by_project.startswith('openSUSE:Factory:Staging:'):
+                            self.logger.info("%s review by %s ok", 
srref(req.reqid), r.by_project)
+                            continue
+
+                        if r.by_user == 'repo-checker':
+                            self.logger.info('%s review by %s ok', 
srref(req.reqid), r.by_user)
+                            continue
+
+                    if r.state == 'accepted':
+                        continue
+                    if r.by_user:
+                        self.logger.info("%s waiting for review by %s", 
srref(req.reqid), r.by_user)
+                    elif r.by_group:
+                        self.logger.info("%s waiting for review by %s", 
srref(req.reqid), r.by_group)
+                    elif r.by_project:
+                        if r.by_package:
+                            self.logger.info("%s waiting for review by %s/%s",
+                                             srref(req.reqid), r.by_project, 
r.by_package)
+                        else:
+                            self.logger.info("%s waiting for review by %s", 
srref(req.reqid), r.by_project)
+                    return None
+                return True
+
+        return False
+
+    def _package_get_upstream_projects(self, package):
+        """ return list of projects where the specified package is supposed to 
come
+        from. Either by lookup table or self.factory """
+        projects = []
+        for prj in self.factory:
+            r = self.lookup.get(prj, package)
+            if r:
+                projects.append(r)
+
+        if not projects:
+            projects = self.factory
+
+        return projects
 
 
 class TagChecker(ReviewBot.ReviewBot):
@@ -82,11 +212,11 @@
         # already in Factory with the same revision,
         # and the package is being introduced, not updated
         # 2) A new package must have an issue tag
-        factory_checker = 
check_source_in_factory.FactorySourceChecker(apiurl=self.apiurl,
-                                                                       
dryrun=self.dryrun,
-                                                                       
logger=self.logger,
-                                                                       
user=self.review_user,
-                                                                       
group=self.review_group)
+        factory_checker = FactorySourceChecker(apiurl=self.apiurl,
+                                               dryrun=self.dryrun,
+                                               logger=self.logger,
+                                               user=self.review_user,
+                                               group=self.review_group)
         factory_checker.factory = self.factory
         factory_ok = factory_checker.check_source_submission(a.src_project, 
a.src_package, a.src_rev,
                                                              a.tgt_project, 
a.tgt_package)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20220330.39d635d6/config/announcer/openSUSE:Leap:15.2.yml
 
new/openSUSE-release-tools-20220330.1114fbdd/config/announcer/openSUSE:Leap:15.2.yml
--- 
old/openSUSE-release-tools-20220330.39d635d6/config/announcer/openSUSE:Leap:15.2.yml
        2022-03-30 09:07:58.000000000 +0200
+++ 
new/openSUSE-release-tools-20220330.1114fbdd/config/announcer/openSUSE:Leap:15.2.yml
        1970-01-01 01:00:00.000000000 +0100
@@ -1,33 +0,0 @@
-bodytemplate: '
-
-  Please note that this mail was generated by a script.
-
-  The described changes are computed based on the x86_64 DVD.
-
-  The full online repo contains too many changes to be listed here.
-
-
-  Please check the known defects of this snapshot before upgrading:
-
-  
https://openqa.opensuse.org/tests/overview?distri=opensuse&version=15.2&build={version}&groupid=50
-
-  
https://bugzilla.opensuse.org/buglist.cgi?product=openSUSE%20Distribution&query_format=advanced&resolution=---&version=Leap%2015.2
-
-
-  When you reply to discuss some issues, make sure to change the subject.
-
-  Please use the test plan at
-
-  
https://docs.google.com/spreadsheets/d/1AGKijKpKiJCB616-bHVoNQuhWHpQLHPWCb3m1p6gXPc/edit#gid=801313279
-
-  to record your testing efforts and use bugzilla to report bugs.
-
-
-  {text}
-
-  '
-iso: openSUSE-Leap-15.2-DVD-x86_64-Current.iso
-name: openSUSE:Leap:15.2
-subject: Leap 15.2 Build {version} released!
-url: http://download.opensuse.org/distribution/leap/15.2/iso/
-sender: openSUSE release team <opensuse-releaset...@opensuse.org>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20220330.39d635d6/data/apimap.json 
new/openSUSE-release-tools-20220330.1114fbdd/data/apimap.json
--- old/openSUSE-release-tools-20220330.39d635d6/data/apimap.json       
2022-03-30 09:07:58.000000000 +0200
+++ new/openSUSE-release-tools-20220330.1114fbdd/data/apimap.json       
2022-03-30 16:20:50.000000000 +0200
@@ -1,9 +1,4 @@
 {
-  "openSUSE:Leap:15.2:Update" : {
-    "version": "15.2",
-    "flavor": "DVD-Incidents",
-    "distri": "opensuse"
-  },
   "openSUSE:Leap:15.3:Update" : {
     "version": "15.3",
     "flavor": "DVD-Incidents",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20220330.39d635d6/data/incidents.json 
new/openSUSE-release-tools-20220330.1114fbdd/data/incidents.json
--- old/openSUSE-release-tools-20220330.39d635d6/data/incidents.json    
2022-03-30 09:07:58.000000000 +0200
+++ new/openSUSE-release-tools-20220330.1114fbdd/data/incidents.json    
2022-03-30 16:20:50.000000000 +0200
@@ -1,10 +1,4 @@
 {
-  "openSUSE:Leap:15.2:Update": {
-     "DISTRI": "opensuse",
-     "FLAVOR": "DVD-Incidents",
-     "VERSION": "15.2",
-     "ARCH": "x86_64"
-  },
   "openSUSE:Leap:15.3:Update": {
      "DISTRI": "opensuse",
      "FLAVOR": "DVD-Incidents",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20220330.39d635d6/data/repos.json 
new/openSUSE-release-tools-20220330.1114fbdd/data/repos.json
--- old/openSUSE-release-tools-20220330.39d635d6/data/repos.json        
2022-03-30 09:07:58.000000000 +0200
+++ new/openSUSE-release-tools-20220330.1114fbdd/data/repos.json        
2022-03-30 16:20:50.000000000 +0200
@@ -1,19 +1,5 @@
 {
    "https://openqa.opensuse.org"; : {
-      "openSUSE:Leap:15.2:Update" : {
-         "settings" : {
-            "OS_TEST_ISSUES" : "",
-            "FLAVOR" : "DVD-Updates",
-            "DISTRI" : "opensuse",
-            "VERSION" : "15.2",
-            "ARCH" : "x86_64"
-         },
-         "test" : "kde",
-         "repos" : [
-            "http://download.opensuse.org/update/leap/15.2/oss/";,
-            "http://download.opensuse.org/update/leap/15.2/non-oss/";
-         ]
-      },
       "openSUSE:Leap:15.3:Update" : {
          "settings" : {
             "OS_TEST_ISSUES" : "",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20220330.39d635d6/dist/package/openSUSE-release-tools.spec
 
new/openSUSE-release-tools-20220330.1114fbdd/dist/package/openSUSE-release-tools.spec
--- 
old/openSUSE-release-tools-20220330.39d635d6/dist/package/openSUSE-release-tools.spec
       2022-03-30 09:07:58.000000000 +0200
+++ 
new/openSUSE-release-tools-20220330.1114fbdd/dist/package/openSUSE-release-tools.spec
       2022-03-30 16:20:50.000000000 +0200
@@ -356,7 +356,6 @@
 %{_bindir}/osrt-build-fail-reminder
 %{_bindir}/osrt-checknewer
 %{_bindir}/osrt-check_bugowner
-%{_bindir}/osrt-check_source_in_factory
 %{_bindir}/osrt-check_tags_in_requests
 %{_bindir}/osrt-compare_pkglist
 %{_bindir}/osrt-container_cleaner
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20220330.39d635d6/docs/factory-source.asciidoc 
new/openSUSE-release-tools-20220330.1114fbdd/docs/factory-source.asciidoc
--- old/openSUSE-release-tools-20220330.39d635d6/docs/factory-source.asciidoc   
2022-03-30 09:07:58.000000000 +0200
+++ new/openSUSE-release-tools-20220330.1114fbdd/docs/factory-source.asciidoc   
1970-01-01 01:00:00.000000000 +0100
@@ -1,42 +0,0 @@
-Factory Source Check
-====================
-:author: Ludwig Nussel <ludwig.nus...@suse.de>
-:toc:
-
-
-Introduction
-------------
-[id="intro"]
-
-A review bot that checks if the sources of a submission are either in Factory
-or a request for Factory with the same sources exist. If the latter a request
-is only accepted if the Factory request is reviewed positive.
-
-It's based on the generic ReviewBot.py
-
-Installation
-------------
-[id="install"]
-
-No installation. The bot can run directly from git.
-
-Command line
-------------
-[id="cli"]
-
-Check all requests that have "factory-source" as reviewer:
-
--------------------------------------------------------------------------------
-./check_source_in_factory.py review
--------------------------------------------------------------------------------
-
-Checks done
------------
-[id="checks"]
-
-
-This bot accepts review requests if sources for a request are accepted in
-factory. Either at top, in the history or due to a submit request with the same
-sources in state new. If not the request is rejected unless a submission with
-the same sources in state review exists. In that case the bot doesn't touch the
-request.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20220330.39d635d6/docs/maintbot.asciidoc 
new/openSUSE-release-tools-20220330.1114fbdd/docs/maintbot.asciidoc
--- old/openSUSE-release-tools-20220330.39d635d6/docs/maintbot.asciidoc 
2022-03-30 09:07:58.000000000 +0200
+++ new/openSUSE-release-tools-20220330.1114fbdd/docs/maintbot.asciidoc 
2022-03-30 16:20:50.000000000 +0200
@@ -36,5 +36,3 @@
 This bot accepts review requests if the author of the request is a known
 maintainer of the package in Factory. If not the devel project/package is set
 as reviewer.
-Furthermore the bot checks if the submission is for the Backports project. In 
that
-case it adds factory-source as reviewer.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20220330.39d635d6/metrics/grafana/access.json 
new/openSUSE-release-tools-20220330.1114fbdd/metrics/grafana/access.json
--- old/openSUSE-release-tools-20220330.39d635d6/metrics/grafana/access.json    
2022-03-30 09:07:58.000000000 +0200
+++ new/openSUSE-release-tools-20220330.1114fbdd/metrics/grafana/access.json    
2022-03-30 16:20:50.000000000 +0200
@@ -2415,9 +2415,19 @@
             "selected": true,
             "text": "month",
             "value": "month"
+          },
+          {
+            "selected": false,
+            "text": "FQ",
+            "value": "FQ"
+          },
+          {
+            "selected": false,
+            "text": "FY",
+            "value": "FY"
           }
         ],
-        "query": "day, week, month",
+        "query": "day, week, month, FQ, FY",
         "type": "custom"
       },
       {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20220330.39d635d6/osclib/stagingapi.py 
new/openSUSE-release-tools-20220330.1114fbdd/osclib/stagingapi.py
--- old/openSUSE-release-tools-20220330.39d635d6/osclib/stagingapi.py   
2022-03-30 09:07:58.000000000 +0200
+++ new/openSUSE-release-tools-20220330.1114fbdd/osclib/stagingapi.py   
2022-03-30 16:20:50.000000000 +0200
@@ -1441,6 +1441,7 @@
         for arch in self.cstaging_archs:
             a = ET.SubElement(repository, 'arch')
             a.text = arch
+        meta = ET.tostring(root)
         url = make_meta_url('prj', name, self.apiurl)
         http_PUT(url, data=meta)
         # put twice because on first put, the API adds useless maintainer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20220330.39d635d6/tests/factory_source_tests.py 
new/openSUSE-release-tools-20220330.1114fbdd/tests/factory_source_tests.py
--- old/openSUSE-release-tools-20220330.39d635d6/tests/factory_source_tests.py  
2022-03-30 09:07:58.000000000 +0200
+++ new/openSUSE-release-tools-20220330.1114fbdd/tests/factory_source_tests.py  
1970-01-01 01:00:00.000000000 +0100
@@ -1,300 +0,0 @@
-import os
-import unittest
-import logging
-import httpretty
-from osclib.cache import Cache
-from . import OBSLocal
-
-from urllib.parse import urlparse, parse_qs
-from check_source_in_factory import FactorySourceChecker
-
-APIURL = 'http://testhost.example.com'
-FIXTURES = os.path.join(os.getcwd(), 'tests/fixtures')
-
-
-class TestFactorySourceAccept(OBSLocal.TestCase):
-
-    def tearDown(self):
-        httpretty.disable()
-        httpretty.reset()
-
-    def setUp(self):
-        """
-        Initialize the configuration
-        """
-        super().setUp()
-
-        Cache.last_updated[APIURL] = {'__oldest': '2016-12-18T11:49:37Z'}
-        httpretty.reset()
-        httpretty.enable(allow_net_connect=False)
-
-        logging.basicConfig()
-        self.logger = logging.getLogger(__file__)
-        self.logger.setLevel(logging.DEBUG)
-
-        self.checker = FactorySourceChecker(apiurl=APIURL,
-                                            user='factory-source',
-                                            logger=self.logger)
-        self.checker.override_allow = False  # Test setup cannot handle.
-
-    def test_accept_request(self):
-
-        httpretty.register_uri(httpretty.GET,
-                               APIURL + 
'/source/openSUSE:Factory/00Meta/lookup.yml',
-                               status=404)
-
-        httpretty.register_uri(httpretty.GET,
-                               APIURL + "/request/770001",
-                               body="""
-                <request id="770001" creator="chameleon">
-                  <action type="submit">
-                    <source project="Base:System" package="timezone" 
rev="481ecbe0dfc63ece3a1f1b5598f7d96c"/>
-                    <target project="openSUSE:13.2" package="timezone"/>
-                  </action>
-                  <state name="new" who="factory-source" 
when="2014-10-08T12:06:07">
-                    <comment>...</comment>
-                  </state>
-                  <review state="new" by_user="factory-source"/>
-                  <description>...</description>
-                </request>
-            """)
-
-        httpretty.register_uri(httpretty.GET,
-                               APIURL + 
"/source/Base:System/timezone?view=info&rev=481ecbe0dfc63ece3a1f1b5598f7d96c",
-                               match_querystring=True,
-                               body="""
-                <sourceinfo package="timezone"
-                    rev="481ecbe0dfc63ece3a1f1b5598f7d96c"
-                    srcmd5="481ecbe0dfc63ece3a1f1b5598f7d96c"
-                    verifymd5="67bac34d29d70553239d33aaf92d2fdd">
-                  <filename>timezone.spec</filename>
-                </sourceinfo>
-            """)
-
-        httpretty.register_uri(httpretty.GET,
-                               APIURL + 
"/source/openSUSE:Factory/timezone/_meta",
-                               body="""
-               <package name="timezone" project="openSUSE:Factory">
-                 <title>timezone</title>
-                 <description></description>
-               </package>
-            """)
-
-        httpretty.register_uri(httpretty.GET,
-                               APIURL + "/source/Base:System/timezone/_meta",
-                               body="""
-               <package name="timezone" project="Base:System">
-                 <title>timezone</title>
-                 <description></description>
-               </package>
-            """)
-
-        httpretty.register_uri(httpretty.GET,
-                               APIURL + 
"/source/openSUSE:Factory/timezone?view=info",
-                               match_querystring=True,
-                               body="""
-                <sourceinfo package="timezone"
-                    rev="89"
-                    vrev="1"
-                    srcmd5="a36605617cbeefa8168bf0ccf3058074"
-                    verifymd5="a36605617cbeefa8168bf0ccf3058074">
-                  <filename>timezone.spec</filename>
-                </sourceinfo>
-            """)
-
-        httpretty.register_uri(httpretty.GET,
-                               APIURL + 
"/source/openSUSE:Factory/timezone/_history?limit=5",
-                               match_querystring=True,
-                               body="""
-                <sourceinfo package="timezone"
-                    rev="89"
-                    vrev="1"
-                    srcmd5="a36605617cbeefa8168bf0ccf3058074"
-                    verifymd5="a36605617cbeefa8168bf0ccf3058074">
-                  <filename>timezone.spec</filename>
-                </sourceinfo>
-            """)
-
-        httpretty.register_uri(httpretty.GET,
-                               APIURL + '/search/request',
-                               responses=[
-                                   httpretty.Response(body="""
-                    <collection matches="1">
-                      <request id="254684" creator="chameleon">
-                        <action type="submit">
-                          <source project="Base:System" package="timezone" 
rev="481ecbe0dfc63ece3a1f1b5598f7d96c"/>
-                          <target project="openSUSE:Factory" 
package="timezone"/>
-                        </action>
-                        <state name="review" who="factory-auto" 
when="2014-10-08T11:55:56">
-                          <comment>...</comment>
-                        </state>
-                        <review state="new" by_group="opensuse-review-team">
-                          <comment/>
-                        </review>
-                        <description> ... </description>
-                      </request>
-                    </collection>
-                    """),
-                                   httpretty.Response(body="""
-                    <collection matches="1">
-                      <request id="254684" creator="chameleon">
-                        <action type="submit">
-                          <source project="Base:System" package="timezone" 
rev="481ecbe0dfc63ece3a1f1b5598f7d96c"/>
-                          <target project="openSUSE:Factory" 
package="timezone"/>
-                        </action>
-                        <state name="new" who="factory-auto" 
when="2014-10-08T11:55:56">
-                          <comment>...</comment>
-                        </state>
-                        <description> ... </description>
-                      </request>
-                    </collection>
-                    """)
-                               ])
-
-        result = {'status': None}
-
-        def change_request(result, method, uri, headers):
-            query = parse_qs(urlparse(uri).query)
-            if query == {'by_user': ['factory-source'], 'cmd': 
['changereviewstate'], 'newstate': ['accepted']}:
-                result['status'] = True
-            else:
-                result['status'] = 'ERROR'
-            return (200, headers, '<status code="blah"/>')
-
-        httpretty.register_uri(httpretty.POST,
-                               APIURL + "/request/770001",
-                               body=lambda method, uri, headers: 
change_request(result, method, uri, headers))
-
-        # first time request is in in review
-        self.checker.set_request_ids(['770001'])
-        self.checker.check_requests()
-
-        self.assertEqual(result['status'], None)
-
-        # second time request is in state new so we can accept
-        self.checker.set_request_ids(['770001'])
-        self.checker.check_requests()
-
-        self.assertTrue(result['status'])
-
-    def test_source_not_in_factory(self):
-        url = 
'/search/request?match=state%2F%40name%3D%27review%27+and+review%5B%40by_user%3D'
-        url += 
'%27factory-source%27+and+%40state%3D%27new%27%5D&withfullhistory=1'
-        httpretty.register_uri(httpretty.GET,
-                               APIURL + url,
-                               match_querystring=True,
-                               body="""
-                <collection matches="1">
-                    <request id="261411" creator="lnussel">
-                      <action type="maintenance_incident">
-                        <source 
project="home:lnussel:branches:openSUSE:Backports:SLE-12" package="plan"
-                                rev="71e76daf2c2e9ddb0b9208f54a14f608"/>
-                        <target project="openSUSE:Maintenance" 
releaseproject="openSUSE:Backports:SLE-12"/>
-                      </action>
-                      <state name="review" who="maintbot" 
when="2014-11-13T13:22:02">
-                        <comment></comment>
-                      </state>
-                      <review state="accepted" when="2014-11-13T13:22:02" 
who="maintbot" by_user="maintbot">
-                        <comment>accepted</comment>
-                        <history who="maintbot" when="2014-11-13T16:43:09">
-                          <description>Review got accepted</description>
-                          <comment>accepted</comment>
-                        </history>
-                      </review>
-                      <review state="new" by_user="factory-source"/>
-                      <history who="lnussel" when="2014-11-13T13:22:02">
-                        <description>Request created</description>
-                        <comment>test update</comment>
-                      </history>
-                      <history who="maintbot" when="2014-11-13T16:43:08">
-                        <description>Request got a new review 
request</description>
-                      </history>
-                      <description>test update</description>
-                    </request>
-                </collection>
-            """)
-
-        httpretty.register_uri(httpretty.GET,
-                               APIURL + "/request/261411",
-                               body="""
-                <request id="261411" creator="lnussel">
-                  <action type="maintenance_incident">
-                    <source 
project="home:lnussel:branches:openSUSE:Backports:SLE-12" package="plan"
-                            rev="71e76daf2c2e9ddb0b9208f54a14f608"/>
-                    <target project="openSUSE:Maintenance" 
releaseproject="openSUSE:Backports:SLE-12"/>
-                  </action>
-                  <state name="review" who="maintbot" 
when="2014-11-13T13:22:02">
-                    <comment></comment>
-                  </state>
-                  <review state="accepted" when="2014-11-13T13:22:02" 
who="maintbot" by_user="maintbot">
-                    <comment>accepted</comment>
-                    <history who="maintbot" when="2014-11-13T16:43:09">
-                      <description>Review got accepted</description>
-                      <comment>accepted</comment>
-                    </history>
-                  </review>
-                  <review state="new" by_user="factory-source"/>
-                  <history who="lnussel" when="2014-11-13T13:22:02">
-                    <description>Request created</description>
-                    <comment>test update</comment>
-                  </history>
-                  <history who="maintbot" when="2014-11-13T16:43:08">
-                    <description>Request got a new review request</description>
-                  </history>
-                  <description>test update</description>
-                </request>
-            """)
-
-        httpretty.register_uri(httpretty.GET,
-                               APIURL + 
"/source/home:lnussel:branches:openSUSE:Backports:SLE-12/plan",
-                               body="""
-                <directory name="plan" rev="1" vrev="1" 
srcmd5="b4ed19dc30c1b328168bc62a81ec6998">
-                  <linkinfo project="home:lnussel:plan" package="plan" 
srcmd5="7a2353f73b29dba970702053229542a0"
-                            baserev="7a2353f73b29dba970702053229542a0" 
xsrcmd5="71e76daf2c2e9ddb0b9208f54a14f608"
-                            lsrcmd5="b4ed19dc30c1b328168bc62a81ec6998" />
-                  <entry name="_link" md5="91f81d88456818a18a7332999fb2da18" 
size="125" mtime="1415807350" />
-                  <entry name="plan.spec" 
md5="b6814215f6d2e8559b43de9a214b2cbd" size="8103" mtime="1413627959" />
-                </directory>
-            """)
-
-        httpretty.register_uri(httpretty.GET,
-                               APIURL + "/source/openSUSE:Factory/plan/_meta",
-                               status=404,
-                               body="""
-                <status code="unknown_package">
-                    <summary>openSUSE:Factory/plan</summary>
-                </status>
-            """)
-
-        httpretty.register_uri(httpretty.GET,
-                               APIURL + 
'/source/openSUSE:Factory/00Meta/lookup.yml',
-                               status=404)
-
-        httpretty.register_uri(httpretty.GET,
-                               APIURL + '/search/request',
-                               body="""
-                <collection matches="0">
-                </collection>
-            """)
-
-        result = {'factory_source_declined': None}
-
-        def change_request(result, method, uri, headers):
-            query = parse_qs(urlparse(uri).query)
-            if query == {'by_user': ['factory-source'], 'cmd': 
['changereviewstate'], 'newstate': ['declined']}:
-                result['factory_source_declined'] = True
-            return (200, headers, '<status code="ok"/>')
-
-        httpretty.register_uri(httpretty.POST,
-                               APIURL + "/request/261411",
-                               body=lambda method, uri, headers: 
change_request(result, method, uri, headers))
-
-        self.checker.requests = []
-        self.checker.set_request_ids_search_review()
-        self.checker.check_requests()
-
-        self.assertTrue(result['factory_source_declined'])
-
-
-if __name__ == '__main__':
-    unittest.main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20220330.39d635d6/tests/maintenance_tests.py 
new/openSUSE-release-tools-20220330.1114fbdd/tests/maintenance_tests.py
--- old/openSUSE-release-tools-20220330.39d635d6/tests/maintenance_tests.py     
2022-03-30 09:07:58.000000000 +0200
+++ new/openSUSE-release-tools-20220330.1114fbdd/tests/maintenance_tests.py     
2022-03-30 16:20:50.000000000 +0200
@@ -281,89 +281,6 @@
 
         self.assertFalse(result['devel_review_added'])
 
-    def test_backports_submit(self):
-
-        httpretty.register_uri(httpretty.GET,
-                               APIURL + '/search/request',
-                               body="""
-                <collection matches="1">
-                    <request id="261411" creator="lnussel">
-                      <action type="maintenance_incident">
-                        <source 
project="home:lnussel:branches:openSUSE:Backports:SLE-12"
-                                package="plan" 
rev="71e76daf2c2e9ddb0b9208f54a14f608"/>
-                        <target project="openSUSE:Maintenance" 
releaseproject="openSUSE:Backports:SLE-12"/>
-                      </action>
-                      <state name="review" who="lnussel" 
when="2014-11-13T13:22:02">
-                        <comment></comment>
-                      </state>
-                      <review state="new" by_user="maintbot"/>
-                      <history who="lnussel" when="2014-11-13T13:22:02">
-                        <description>Request created</description>
-                        <comment>test update</comment>
-                      </history>
-                      <description>test update</description>
-                    </request>
-                </collection>
-            """)
-
-        httpretty.register_uri(httpretty.GET,
-                               APIURL + "/request/261411",
-                               body="""
-                <request id="261411" creator="lnussel">
-                  <action type="maintenance_incident">
-                    <source 
project="home:lnussel:branches:openSUSE:Backports:SLE-12"
-                            package="plan" 
rev="71e76daf2c2e9ddb0b9208f54a14f608"/>
-                    <target project="openSUSE:Maintenance" 
releaseproject="openSUSE:Backports:SLE-12"/>
-                  </action>
-                  <state name="review" who="lnussel" 
when="2014-11-13T13:22:02">
-                    <comment></comment>
-                  </state>
-                  <review state="new" by_user="maintbot"/>
-                  <history who="lnussel" when="2014-11-13T13:22:02">
-                    <description>Request created</description>
-                    <comment>test update</comment>
-                  </history>
-                  <description>test update</description>
-                </request>
-            """)
-
-        httpretty.register_uri(httpretty.GET,
-                               APIURL + 
"/source/home:lnussel:branches:openSUSE:Backports:SLE-12/plan",
-                               body="""
-                <directory name="plan" rev="1" vrev="1" 
srcmd5="b4ed19dc30c1b328168bc62a81ec6998">
-                  <linkinfo project="home:lnussel:plan" package="plan" 
srcmd5="7a2353f73b29dba970702053229542a0"
-                     baserev="7a2353f73b29dba970702053229542a0" 
xsrcmd5="71e76daf2c2e9ddb0b9208f54a14f608"
-                     lsrcmd5="b4ed19dc30c1b328168bc62a81ec6998" />
-                  <entry name="_link" md5="91f81d88456818a18a7332999fb2da18" 
size="125" mtime="1415807350" />
-                  <entry name="plan.spec" 
md5="b6814215f6d2e8559b43de9a214b2cbd" size="8103" mtime="1413627959" />
-                </directory>
-
-            """)
-
-        httpretty.register_uri(httpretty.GET,
-                               APIURL + '/search/owner',
-                               body="""
-                <collection/>
-            """)
-
-        result = {'factory_review_added': None}
-
-        def change_request(result, method, uri, headers):
-            query = parse_qs(urlparse(uri).query)
-            if query == {'cmd': ['addreview'], 'by_user': ['factory-source']}:
-                result['factory_review_added'] = True
-            return (200, headers, '<status code="ok"/>')
-
-        httpretty.register_uri(httpretty.POST,
-                               APIURL + "/request/261411",
-                               body=lambda method, uri, headers: 
change_request(result, method, uri, headers))
-
-        self.checker.requests = []
-        self.checker.set_request_ids_search_review()
-        self.checker.check_requests()
-
-        self.assertTrue(result['factory_review_added'])
-
 
 if __name__ == '__main__':
     unittest.main()

++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.ZVbvKR/_old  2022-03-31 17:19:10.152946870 +0200
+++ /var/tmp/diff_new_pack.ZVbvKR/_new  2022-03-31 17:19:10.156946825 +0200
@@ -1,5 +1,5 @@
 name: openSUSE-release-tools
-version: 20220330.39d635d6
-mtime: 1648624078
-commit: 39d635d6de83bbdba1a319b7b73d0de6cfac5aa3
+version: 20220330.1114fbdd
+mtime: 1648650050
+commit: 1114fbdd30d0d4506ca3767d2e5d563bf076304f
 

Reply via email to