[Rd] write_PACKAGES's fields default

Uwe Ligges
Mon, 10 Mar 2025 13:36:57 -0000

On 01.03.2025 13:07, Llu?s Revilla wrote:
> Dear list,
>
> I'm trying to get some details from repositories with
> available.packages. However, despite being included on the DESCRIPTION
> files they are not available.
>
> ap <- utils::available.packages(fields =
"Additional_repositories",
>      filters = c("CRAN", "duplicates"),
>      ignore_repo_cache =  TRUE,
>      repos = "https://cran.r-project.org")
> ap[, "Additional_repositories"] |> is.na() |> all()
> ## [1] TRUE
>
> However, some packages like Seurat have the Additional_repositories
> field [2]. If I try with another repository (Bioconductor software
> repository):
>
> ap <- available.packages(fields = "biocViews",
>      ignore_repo_cache =  TRUE,
>      repos = "https://bioconductor.org/packages/3.21/bioc")
> ap[, "biocViews"] |> is.na() |> all()
> ## [1] TRUE
>
> It also misses the BiocViews field compulsory on that repository.
> Both repositories use tools::write_PACKAGES [3][4] to generate the
> file read by available.packages. This function writes by default
> fields "needed by available.packages".
>
> However, it is unclear what is needed for available.packages.
> According to its documentation, it returns "details corresponding to
> packages currently available at one or more repositories". To me this
> would mean that fields on the DESCRIPTION files should appear, but the
> default of write_PACKAGES doesn't write other fields besides
> '"Package"', '"Version"',
'"Priority"',  '"Depends"',
'"Imports"',
> '"LinkingTo"', '"Suggests"',
'"Enhances"', '"OS_type"',
'"License"'
> and '"Archs"'.
>
> I could approach each repository and ask to include more fields.
> However, to match the documentation on available.packages and help all
> repository administrators it would make sense to change the default on
> write_PACKAGES.
> Could the default fields be changed, so
> that all fields available on packages' DESCRIPTION to
> PACKAGES(.gz,.rds). Perhaps with fields = TRUE?
> If this is too much it would be great if fields documented by Writing
> R Extensions are written on PACKAGES.
> This modification would make it easier for all to reuse repository data.
>
> Many thanks for your consideration,
>
> Llu?s
>
> PD: From CRAN perspective CRAN_packages_db() function can be used to
> get Additional_repositories, but this is limited to CRAN and won't
> work for BiocViews on Bioconductor or for other arbitrary fields like
> '"RoxygenNote"'.


I'd indeed use

Cpdb <- tools:::CRAN_package_db()
Bpdb <- tools:::BioC_package_db()

for the two mentioned repos. ALso, PACLAGES.... is downloaded very
frequently and should not grow too much.

Is there a use case why available.packages() should provide this info
while not being less performant for package installatons etc.?

Best,
Uwe Ligges




>
> [1]: https://stat.ethz.ch/pipermail/r-devel/2024-June/083477.html
> [2]: https://cran.r-project.org/package=Seurat
> [3]:
https://svn.r-project.org/R-dev-web/trunk/CRAN/QA/Uwe/make/writeCRANPackages.R
> [4]:
https://github.com/Bioconductor/BBS/blob/devel/utils/makePropagationStatusDb.R#L348
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel