--- Begin Message ---
Package: tracker.debian.org
Severity: normal
Tags: patch
Dear Maintainer,
since version 7:2.5.4-1 ffmpeg is listed as "reproducible" in
reproducible.json [1], but the package tracker [2] still claims:
"Fails to build during reproducibility testing"
The info popup shows, that the action item hasn't been updated since
ffmpeg builds reproducibly:
"Severity: normal
Created: 2015-01-29
Last Updated: 2015-02-21"
So it seems the tracker doesn't delete obsolete action items.
The following patch might fix this:
--- a/distro_tracker/vendor/debian/tracker_tasks.py
+++ b/distro_tracker/vendor/debian/tracker_tasks.py
@@ -2349,5 +2349,5 @@ class UpdateBuildReproducibilityTask(BaseTask):
extracted_info.append(reproducibility_info)
ActionItem.objects.delete_obsolete_items([self.action_item_type],
- packages)
+ [])
PackageExtractedInfo.objects.bulk_create(extracted_info)
The rationale for this change is that the second argument of
delete_obsolete_items is the list of non_obsolete_packages, whose items are not
to be removed. But packages contains a list of all packages with a
reproducibility status.
However, I haven't tested this patch.
Best regards,
Andreas
1: https://reproducible.debian.net/reproducible.json
2: https://tracker.debian.org/pkg/ffmpeg
--- End Message ---
--- Begin Message ---
Hello Andreas,
On Wed, 25 Feb 2015, Andreas Cadhalpun wrote:
> So it seems the tracker doesn't delete obsolete action items.
Thanks for the report.
> The following patch might fix this:
> --- a/distro_tracker/vendor/debian/tracker_tasks.py
> +++ b/distro_tracker/vendor/debian/tracker_tasks.py
> @@ -2349,5 +2349,5 @@ class UpdateBuildReproducibilityTask(BaseTask):
> extracted_info.append(reproducibility_info)
>
> ActionItem.objects.delete_obsolete_items([self.action_item_type],
> - packages)
> + [])
> PackageExtractedInfo.objects.bulk_create(extracted_info)
>
> The rationale for this change is that the second argument of
> delete_obsolete_items is the list of non_obsolete_packages, whose items are
> not to be removed. But packages contains a list of all packages with a
> reproducibility status.
The diagnosis is right but the fix is wrong. The correct fix is to fill
"packages" with only relevant packages. Something like this:
diff --git a/distro_tracker/vendor/debian/tracker_tasks.py b/distro_tracker/vendor/debian/tracker_tasks.py
index 8727981..2e87b55 100644
--- a/distro_tracker/vendor/debian/tracker_tasks.py
+++ b/distro_tracker/vendor/debian/tracker_tasks.py
@@ -2308,8 +2308,8 @@ class UpdateBuildReproducibilityTask(BaseTask):
def update_action_item(self, package, status):
description = self.ITEM_DESCRIPTION.get(status)
- if not (status and description):
- return
+ if not description: # Not worth an action item
+ return False
action_item = package.get_action_item_for_type(
self.action_item_type.type_name)
@@ -2322,6 +2322,7 @@ class UpdateBuildReproducibilityTask(BaseTask):
url = "{}/rb-pkg/{}.html".format(self.BASE_URL, package.name)
action_item.short_description = description.format(url=url)
action_item.save()
+ return True
def execute(self):
reproducibilities = self.get_build_reproducibility()
@@ -2337,8 +2338,8 @@ class UpdateBuildReproducibilityTask(BaseTask):
for name, status in reproducibilities.items():
try:
package = SourcePackageName.objects.get(name=name)
- packages.append(package)
- self.update_action_item(package, status)
+ if self.update_action_item(package, status):
+ packages.append(package)
except SourcePackageName.DoesNotExist:
continue
I have added a non-regression test and pushed a fix.
Cheers,
--
Raphaël Hertzog ◈ Debian Developer
Support Debian LTS: http://www.freexian.com/services/debian-lts.html
Learn to master Debian: http://debian-handbook.info/get/
--- End Message ---