[Toaster] [review-request v3] [Patch 1/1] toaster: add rev dep column to image detail pages

Lerner, Dave dave.lerner at windriver.com
Mon Apr 4 06:55:53 PDT 2016


Actually I have not seen this duplication with rev dep list, but I did see this with the normal dependency list a few times, that is until I spent some effort trying to reproduce the conditions cleanly, 2 projects, 2 custom-images;  but I wasn't able to after a rebase.  Note again, this was for the dependency, not the reverse dependency list.  

I will be trying to duplicate the 'duplication' symptoms today, dep or rev-dep.  Feel free to hold off submitting to give me more time to try and find the steps, and then the root-cause.  I will try a systematic approach and publish the positive or negative findings later today.
Dave

> -----Original Message-----
> From: Smith, Elliot [mailto:elliot.smith at intel.com]
> Sent: Monday, April 04, 2016 3:31 AM
> To: Lerner, Dave
> Cc: toaster at yoctoproject.org; Belen Barros Pena (Intel); AVERY, BRIAN
> Subject: Re: [Toaster] [review-request v3] [Patch 1/1] toaster: add rev dep column to
> image detail pages
> 
> Hello Dave.
> 
> I've had a look at this, but have noticed an issue where there are some repeats of
> packages in the reverse dependencies list (and in the dependencies list). Several other
> team members have seen the same thing.
> 
> Consequently, I'm not sure whether to put your patches in for now. I've cc'd Brian for
> his opinion.
> 
> However, I am confident that this issue has nothing to do with your patches. I just
> didn't want to muddy the issue further in case anyone is already dealing with this.
> 
> Elliot
> 
> On 31 March 2016 at 19:56, Dave Lerner <dave.lerner at windriver.com> wrote:
> 
> 
> 	Add a column to the custom image pages that shows the reverse
> 	dependencies in a format matching the dependencies column:
> 	  - either blank or a button showing the count of reverse dependencies,
> 	  - when the button is clicked, a popover appears showing the list
> 	    of reverse dependencies, with each package's size, and the total
> 	    size of all of the reverse dependencies.
> 
> 	The implementation adds a packages table method to retreive the reverse
> 	dependency total size, and adds a separate 'popover' html template. Both
> 	of these changes follow the pattern for the dependencies column.
> 
> 	[YOCTO #9163]
> 
> 	Signed-off-by: Dave Lerner <dave.lerner at windriver.com>
> 	---
> 	 bitbake/lib/toaster/orm/models.py                         |  7 +++++++
> 	 bitbake/lib/toaster/toastergui/tables.py                  |  6 ++++++
> 	 .../templates/snippets/pkg_revdependencies_popover.html   | 15 +++++++++++++++
> 	 3 files changed, 28 insertions(+)
> 
> 	diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py
> 	index 6ae6316..cfab7b7 100644
> 	--- a/bitbake/lib/toaster/orm/models.py
> 	+++ b/bitbake/lib/toaster/orm/models.py
> 	@@ -813,6 +813,13 @@ class Package_DependencyManager(models.Manager):
> 	         """
> 	         return self.all().aggregate(Sum('depends_on__size'))
> 
> 	+    def get_total_revdeps_size(self):
> 	+        """ Returns the total file size of all the packages that depend on
> 	+        this package.
> 	+        """
> 	+        return self.all().aggregate(Sum('package_id__size'))
> 	+
> 	+
> 	     def all_depends(self):
> 	         """ Returns just the depends packages and not any other dep_type """
> 	         return self.filter(Q(dep_type=Package_Dependency.TYPE_RDEPENDS) |
> 	diff --git a/bitbake/lib/toaster/toastergui/tables.py
> b/bitbake/lib/toaster/toastergui/tables.py
> 	index 67a6592..c677ec5 100644
> 	--- a/bitbake/lib/toaster/toastergui/tables.py
> 	+++ b/bitbake/lib/toaster/toastergui/tables.py
> 	@@ -725,6 +725,12 @@ class PackagesTable(ToasterTable):
> 	                         static_data_template='\
> 	                         {% include "snippets/pkg_dependencies_popover.html" %}')
> 
> 	+        self.add_column(title="Reverse dependencies",
> 	+                        static_data_name="reverse_dependencies",
> 	+                        static_data_template='\
> 	+                        {% include "snippets/pkg_revdependencies_popover.html"
> %}',
> 	+                        hidden=True)
> 	+
> 	         self.add_column(title="Recipe",
> 	                         field_name="recipe__name",
> 	                         orderable=True,
> 	diff --git
> a/bitbake/lib/toaster/toastergui/templates/snippets/pkg_revdependencies_popover.html
> b/bitbake/lib/toaster/toastergui/templates/snippets/pkg_revdependencies_popover.html
> 	new file mode 100644
> 	index 0000000..04fd2d3
> 	--- /dev/null
> 	+++
> b/bitbake/lib/toaster/toastergui/templates/snippets/pkg_revdependencies_popover.html
> 	@@ -0,0 +1,15 @@
> 	+{# Popover that displays the reverse dependencies and sizes of a package 'data'
> used in the Packages table #}
> 	+{% with data.package_dependencies_target.all_depends.count as dep_count %}
> 	+{% load projecttags %}
> 	+{% if dep_count %}
> 	+ <a data-content="<ul class='unstyled'>
> 	+   {% for dep in
> data.package_dependencies_target.all_depends|dictsort:'package.name' %}
> 	+  <li>{{dep.package.name}} {% if dep.package.size > 0
> %}({{dep.package.size|filtered_filesizeformat}}){% endif %}</li>
> 	+    {% endfor %}
> 	+  </ul>" title="" class="btn" data-original-title="
> 	+  <strong>{{data.name}}</strong> reverse dependencies -
> <strong>{{data.package_dependencies_target.get_total_revdeps_size.package_id__size__sum|
> filtered_filesizeformat}}</strong>">
> 	+    {{dep_count}}
> 	+</a>
> 	+{% endif %}
> 	+{% endwith %}
> 	+
> 	--
> 	2.7.4
> 
> 
> 
> 
> 
> 
> --
> 
> Elliot Smith
> Software Engineer
> Intel Open Source Technology Centre


More information about the toaster mailing list