[SCM] pkg-kde-jenkins packaging branch, master, updated. d811dd13490c8b97d4a79be80e4cfa992874630d
Maximiliano Curia
maxy at moszumanska.debian.org
Mon Jun 6 22:10:45 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/pkg-kde-jenkins.git;a=commitdiff;h=d8bff57
The following commit has been merged in the master branch:
commit d8bff57a7c0bb46a8e06e0113639115c8f57b622
Author: Maximiliano Curia <maxy at gnuservers.com.ar>
Date: Tue May 17 17:02:00 2016 +0200
tools.py, check deps version in a second pass
---
tools.py | 77 ++++++++++++++++++++++++++++++++++++++++++----------------------
1 file changed, 51 insertions(+), 26 deletions(-)
diff --git a/tools.py b/tools.py
index 707739d..c62e78e 100755
--- a/tools.py
+++ b/tools.py
@@ -162,7 +162,20 @@ def tests_unstable(package):
def check_deps(package, packages, distribution):
for dep in package.get('deps', set()):
at_distribution = packages.get(dep, {}).get(distribution, {})
- if not status(at_distribution):
+ if not (status(at_distribution) or tests_unstable(at_distribution)):
+ return False
+ return True
+
+
+def check_deps_version(package, packages, distribution):
+ for dep in package.get('deps', set()):
+ dep_package = packages.get(dep, {})
+ at_distribution = dep_package.get(distribution, {})
+ if 'version' not in at_distribution:
+ return False
+
+ new_version = debian_support.Version(at_distribution['version'])
+ if new_version.upstream_version > dep_package['debian_version'].upstream_version:
return False
return True
@@ -205,9 +218,12 @@ def version_at_distribution(source_name):
def get_ready(packages, distribution):
ready = {}
+ # process packages and collect the packages for the second_phase
+ second_phase = set()
for package_name, package in packages.items():
# print(package_name, package)
- if 'unreleased' not in package or not status(package['unreleased']):
+ if not (status(package.get('unreleased', {})) or
+ tests_unstable(package.get('unreleased', {}))):
continue
# print(package_name)
if not check_deps(package, packages, distribution):
@@ -217,32 +233,41 @@ def get_ready(packages, distribution):
epochless = debian_support.Version(version)
epochless.epoch = None
# print(version, epochless)
+ package['debian_version'] = epochless
- if not status(package.get(distribution, {})):
- if tests_unstable(package.get(distribution, {})):
- new_version = debian_support.Version(
- package[distribution]['version'])
- if new_version > epochless:
- ready.setdefault('unstable', set()).add(package_name)
- print('{} {}={} UNSTABLE, currently: {}'.format(
- package_name, package['source_name'], new_version,
- version))
- else:
- new_version = debian_support.Version(
- package['unreleased']['version'])
- if new_version > epochless:
- ready.setdefault('build', set()).add(package_name)
- print('{} {}={} BUILD, currently: {}'.format(
- package_name, package['source_name'], new_version,
- version))
+ second_phase.add(package_name)
+
+ for package_name in second_phase:
+ package = packages[package_name]
+
+ new_version = debian_support.Version(package['unreleased']['version'])
+ if new_version <= package['debian_version']:
+ continue
+
+ if not check_deps_version(package, packages, distribution):
+ continue
+
+ status_ok = status(package.get(distribution, {}))
+ status_unstable = tests_unstable(package.get(distribution, {}))
+ newer = (status_ok or status_unstable) and (debian_support.Version(
+ package[distribution]['version']) > epochless)
+
+ if status_ok and newer:
+ ready.setdefault('upload', set()).add(package_name)
+ print('{} {}={} UPLOAD, currently: {}'.format(
+ package_name, package['source_name'], new_version,
+ version))
+ elif status_unstable and newer:
+ ready.setdefault('unstable', set()).add(package_name)
+ print('{} {}={} UNSTABLE, currently: {}'.format(
+ package_name, package['source_name'], new_version,
+ version))
else:
- new_version = debian_support.Version(
- package[distribution]['version'])
- if new_version > epochless:
- ready.setdefault('upload', set()).add(package_name)
- print('{} {}={} UPLOAD, currently: {}'.format(
- package_name, package['source_name'], new_version,
- version))
+ ready.setdefault('build', set()).add(package_name)
+ print('{} {}={} BUILD, currently: {}'.format(
+ package_name, package['source_name'], new_version,
+ version))
+
return ready
--
pkg-kde-jenkins packaging
More information about the pkg-kde-commits
mailing list