Fix biocBuildReport() silently dropping non-software packages#84
Merged
Conversation
biocBuildReport() requests all four package types by default, but merge(y, depdf, by.x = "pkg", by.y = "Package") used base R's default inner join. get_deprecated_status_df() only pulls the software VIEWS, so depdf only lists software package names -- the inner join silently dropped every workflows/data-experiment/data-annotation row before the final report was returned. problemPage() and checkMe()/checkDeps() sit on top of biocBuildReport(), so this made it impossible for them to ever surface a failing workflow package. Switch to all.x = TRUE so non-software packages are kept (with NA Deprecated/PackageStatus, since that status isn't tracked outside the software VIEWS). Fixes #21
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #21.
Bug
biocBuildReport()requests all four package types by default (software,data-experiment,data-annotation,workflows), andbiocBuildReportDB()correctly tags each row with itspkgType. But before returning, it joins in deprecation status:get_deprecated_status_df()always pulls only the software VIEWS file (type = "BioCsoft"), sodepdfonly ever contains software package names.merge()'s defaultall = FALSEmakes this an inner join, which silently drops every row inywhose package isn't in the software VIEWS — i.e. every workflows/data-experiment/data-annotation row.Net effect:
biocBuildReport()(and everything built on it —problemPage(),checkMe(),checkDeps()) only ever reports on software packages, even though thepkgTypeparameter looks like it supports all four types. This is why #21 ("could problemPage also check workflow packages?") wasn't actually fixed by the existingpkgTypesupport.Verified live against Bioconductor devel (3.24):
biocBuildReport(version = "devel")→ 16772 rows,table(pkgType)is 100%"bioc". The workflow packageannotation(currently failing atbuildsrc) is completely absent.data-annotation, 1305data-experiment, and 56workflowsrows restored, includingannotation's realERRORrow.Fix
Change the merge to
all.x = TRUEso non-software packages are preserved.Deprecated/PackageStatusareNAfor those rows, since deprecation status for workflows/data-experiment/data-annotation packages isn't tracked byget_deprecated_status_df()today — that's a separate, smaller gap that could be closed later by pulling the VIEWS file per requestedpkgType, but it's out of scope for restoring the missing rows. Nothing downstream (problemPage.R) filters onDeprecated/PackageStatus, so this is safe.Testing
tests/testthat/test_biocBuildReport.Rasserting thatdata-annotation,data-experiment, andworkflowsall appear inbiocBuildReport("devel")$pkgType.test_biocBuildReport.Rsuite:FAIL 0 | WARN 2 (pre-existing, unrelated) | PASS 10.Note
No version bump included — this repo's convention (per recent history) is for the maintainer to bump
DESCRIPTIONright before merge, not as part of the contributing branch.