bsiegert / BulkTracker

Track bulk build status in pkgsrc
Other
8 stars 1 forks source link

Inconsistent logic for results.failed_deps #56

Closed riastradh closed 2 months ago

riastradh commented 2 months ago

When ingesting reports, bulktracker stores results.failed_deps as a space-separated string:

https://github.com/bsiegert/BulkTracker/blob/7ad7e84f22a800ef7c3105a504c08610538ef3b5/bulk/bulk.go#L207

But when generating pages, bulktracker parses results.failed_deps as a comma-separated string:

https://github.com/bsiegert/BulkTracker/blob/7ad7e84f22a800ef7c3105a504c08610538ef3b5/pages/bulktracker.go#L238

This mismatch means that a result with more than one failed dependency shows nothing, because the space-separated string doesn't appear in any results.pkg_name, like in this example:

https://releng.netbsd.org/bulktracker/pkg/17257784

This should show mutt-2.2.13 and libreoffice-24.2.1.2nb2, but instead it's blank right now.


All that said, it might be better to use a separate table to obviate the need for formatting and parsing and make queries easier to write (with indices to speed up both directions -- find who's breaking a package, find which packages are broken by a package): (suggestion moved to https://github.com/bsiegert/BulkTracker/issues/60 to track it separately)

CREATE TABLE failed_deps (
    dependent INTEGER REFERENCES results,
    dependency INTEGER REFERENCES results,
    PRIMARY KEY(dependent, dependency)
) WITHOUT ROWID;
CREATE INDEX failed_deps_i_dependent ON failed_deps (dependent);
CREATE INDEX failed_deps_i_dependency ON failed_deps (dependency);