← Back to team overview

ubuntu-bugcontrol team mailing list archive

[Merge] ~octagalland/ubuntu-qa-tools:unembargo_check_esm_versions into ubuntu-qa-tools:master

 

Octavio Galland has proposed merging ~octagalland/ubuntu-qa-tools:unembargo_check_esm_versions into ubuntu-qa-tools:master.

Commit message:
unembargo: require --force to release esm package version to archive

Requested reviews:
  Marc Deslauriers (mdeslaur)
  Ubuntu Security Team (ubuntu-security)
  Ubuntu Bug Control (ubuntu-bugcontrol)

For more details, see:
https://code.launchpad.net/~octagalland/ubuntu-qa-tools/+git/ubuntu-qa-tools/+merge/488854
-- 
Your team Ubuntu Bug Control is requested to review the proposed merge of ~octagalland/ubuntu-qa-tools:unembargo_check_esm_versions into ubuntu-qa-tools:master.
diff --git a/security-tools/unembargo b/security-tools/unembargo
index c92bb7e..ca10fa5 100755
--- a/security-tools/unembargo
+++ b/security-tools/unembargo
@@ -300,22 +300,35 @@ for pkg_name in args:
             seen[series_name] = sorted(seen[series_name], cmp=lambda x, y: apt_pkg.version_compare(
                 x.source_package_version, y.source_package_version), reverse=True)
 
+        source_item = seen[series_name][0]
+
         # lookup series milestones and warn if any are approaching
+        approaching_milestone = False
         milestone = pending_milestone(ubuntu, series_name)
-        if milestone is None:
-            unembargo.append(seen[series_name][0])
-        else:
+        is_milestone_approaching = milestone is not None
+        if is_milestone_approaching:
             print("WARNING: %s is approaching milestone %s (due %s)" %
                   (series_name, milestone.name,
                   time.strftime("%Y-%m-%d", milestone.date_targeted.timetuple())))
             print("NOTE: Please coordinate with the #ubuntu-release team before releasing.")
-            if opt.force:
-                print("NOTE: unembargo for %s will continue due to use of --force." % (series_name))
-                unembargo.append(seen[series_name][0])
-            else:
-                print("NOTE: To override this check and publish anyway please use the --force.")
-                print("NOTE: unembargo for %s will be skipped." % (series_name))
 
+        # perform consistency check on packages with esm versions
+        name = source_item.source_package_name
+        version = source_item.source_package_version
+        version_matches_destination = True
+        if 'esm' in version and not 'esm' in opt.destination:
+            version_matches_destination = False
+            print("WARNING: package %s has ESM version: %s, but it is being published to non-ESM destination: %s." % (name, version, opt.destination))
+
+        # add item to unembargo list if it either matches all criteria or is forced
+        if not is_milestone_approaching and version_matches_destination:
+            unembargo.append(source_item)
+        elif opt.force:
+            print("NOTE: unembargo of %s for %s will continue due to the use of --force." % (name, series_name))
+            unembargo.append(source_item)
+        else:
+            print("NOTE: To override checks and publish anyway please use the --force.")
+            print("NOTE: unembargo of %s for %s will be skipped." % (name, series_name))
 
     # Publish
     for source_item in unembargo: