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 - [email protected]
+
+- Update to version 20220330.1114fbdd:
+ * Add new aggregation periods to Grafana dashboard
+
+-------------------------------------------------------------------
+Wed Mar 30 09:29:04 UTC 2022 - [email protected]
+
+- 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 - [email protected]
+
+- 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 - [email protected]
+
+- 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 <[email protected]>
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 <[email protected]>
-: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