From Fedora Project Wiki
(Initial page)
 
m (Add trackers)
 
(5 intermediate revisions by 2 users not shown)
Line 45: Line 45:
* Targeted release: [[Releases/31 | Fedora 31 ]]  
* Targeted release: [[Releases/31 | Fedora 31 ]]  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1732111 #1732111]
* Release notes tracker: <will be assigned by the Wrangler>
* Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/360 #360]
 


== Detailed Description ==
== Detailed Description ==
Line 80: Line 79:
== Scope ==
== Scope ==


* Proposal owners: The automated dependency generator is [https://src.fedoraproject.org/fork/qulogic/rpms/R/blob/autodeps/f/R-deps.R available], but will need to be updated to provide the opt-in <code>Suggests</code>. The generator and file attributes will likely be housed in the RPM organization, and a new package will be created for it.  R packages will need to be rebuilt after the generator is packaged, in order to ensure that they contain the new <code>Provides</code>. This will be carried out in a side tag, unless the usual mass rebuild is sufficient.
* Proposal owners: The automated dependency generator is [https://src.fedoraproject.org/fork/qulogic/rpms/R/blob/autodeps/f/R-deps.R available], but will need to be updated to provide the opt-in <code>Suggests</code>. The generator and file attributes will likely be housed in the RPM organization, and a new package will be created for it.  R packages will need to be rebuilt after the generator is packaged, in order to ensure that they contain the new <code>Provides</code>. If the mass rebuild is not sufficient, this will be carried out in a side tag.
* Other developers: Others are welcome to rebuild their packages once the generators are available, but it is not a requirement.
* Other developers: Others are welcome to rebuild their packages once the generators are available, but it is not a requirement.
* Release engineering: [https://pagure.io/releng/issues #Releng issue number]
* Release engineering: [https://pagure.io/releng/issue/8501 Releng issue 8501]
* Policies and guidelines: R packaging guidelines should be updated to mention the new generator; this can be done after the implementation is done.
* Policies and guidelines: R packaging guidelines should be updated to mention the new generator; this can be done after the implementation is done.
* Trademark approval: N/A (not needed for this Change)
* Trademark approval: N/A (not needed for this Change)
Line 107: Line 106:


Move of code to RPM organization; it would be preferred to occur as early as possible, but is not a full blocker.
Move of code to RPM organization; it would be preferred to occur as early as possible, but is not a full blocker.
These packages will need to be rebuilt:
* COPASI
* R-abind
* R-acepack
* R-affy
* R-affydata
* R-affyio
* R-ALL
* R-AnnotationDbi
* R-ape
* R-argon2
* R-ascii
* R-askpass
* R-assertthat
* R-AUC
* R-backports
* R-base64enc
* R-Bessel
* R-BH
* R-biglm
* R-bindr
* R-bindrcpp
* R-Biobase
* R-BiocGenerics
* R-BiocParallel
* R-biomaRt
* R-Biostrings
* R-bit
* R-bit64
* R-bitops
* R-blob
* R-brew
* R-BSgenome
* R-BSgenome.Celegans.UCSC.ce2
* R-BufferedMatrix
* R-BufferedMatrixMethods
* R-Cairo
* R-callr
* R-car
* R-caTools
* R-cellranger
* R-chron
* R-cli
* R-cliapp
* R-clipr
* R-clisymbols
* R-coda
* R-colorspace
* R-combinat
* R-commonmark
* R-corpus
* R-crayon
* R-curl
* R-data.table
* R-date
* R-DBI
* R-dbplyr
* R-debugme
* R-DelayedArray
* R-deldir
* R-desc
* R-dichromat
* R-diffobj
* R-digest
* R-disposables
* R-doParallel
* R-dplyr
* R-dtplyr
* R-DynDoc
* R-ellipsis
* R-errors
* R-evaluate
* R-expm
* R-fansi
* R-farver
* R-fastmatch
* R-fibroEset
* R-filehash
* R-FMStable
* R-foghorn
* R-fontBitstreamVera
* R-fontLiberation
* R-forcats
* R-foreach
* R-formatR
* R-fortunes
* R-fs
* R-fts
* R-futile.logger
* R-futile.options
* R-future
* R-gamlss.dist
* R-gapminder
* R-gdata
* R-gdtools
* R-gee
* R-geepack
* R-generics
* R-GenomeInfoDb
* R-GenomeInfoDbData
* R-GenomicAlignments
* R-GenomicFeatures
* R-GenomicRanges
* R-getPass
* R-ggplot2
* R-ggplot2movies
* R-gh
* R-git2r
* R-globals
* R-glue
* R-gmailr
* R-gmp
* R-gplots
* R-gsl
* R-gss
* R-gtable
* R-gtools
* R-haven
* R-here
* R-hexbin
* R-hgu133acdf
* R-hgu95av2cdf
* R-hgu95av2probe
* R-highlight
* R-highr
* R-hms
* R-htmltools
* R-htmlwidgets
* R-httpuv
* R-httr
* R-hunspell
* R-igraph
* R-import
* R-ini
* R-inline
* R-IRanges
* R-IRdisplay
* R-IRkernel
* R-iterators
* R-itertools
* R-jose
* R-jpeg
* R-jqr
* R-jsonlite
* R-knitr
* R-labeling
* R-lambda.r
* R-later
* R-lazyeval
* R-lintr
* R-listenv
* R-littler
* R-lmodel2
* R-lmtest
* R-lokern
* R-lubridate
* R-maanova
* R-magrittr
* R-mapproj
* R-maps
* R-mAr
* R-markdown
* R-matrixStats
* R-measurements
* R-memoise
* R-microbenchmark
* R-mime
* R-miniUI
* R-mlbench
* R-mnormt
* R-mockery
* R-mockr
* R-msm
* R-multcomp
* R-multtest
* R-munsell
* R-mvtnorm
* R-nanotime
* R-ncdf4
* R-NISTunits
* R-nws
* R-nycflights13
* R-openssl
* R-orcutt
* R-packrat
* R-parsedate
* R-pbdRPC
* R-pbdZMQ
* R-pdftools
* R-pillar
* R-pingr
* R-pkgbuild
* R-pkgconfig
* R-pkgdown
* R-pkgload
* R-plogr
* R-pls
* R-plyr
* R-png
* R-poLCA
* R-polyclip
* R-polynom
* R-praise
* R-preprocessCore
* R-prettycode
* R-prettydoc
* R-prettyunits
* R-processx
* R-progress
* R-promises
* R-ps
* R-purrr
* R-qcc
* R-qpdf
* R-qtl
* R-quadprog
* R-quantities
* R-qvalue
* R-R6
* R-rappdirs
* R-R.cache
* R-rcmdcheck
* R-RColorBrewer
* R-Rcompression
* R-Rcpp
* R-RcppCCTZ
* R-RCurl
* R-R.devices
* R-readr
* R-readxl
* R-rematch
* R-rematch2
* R-remotes
* R-repr
* R-reprex
* R-reshape
* R-reshape2
* R-reticulate
* R-rex
* R-rgdal
* R-rgeos
* R-rhub
* R-RInside
* R-rlang
* R-rlecuyer
* R-RM2
* R-rmarkdown
* R-R.methodsS3
* R-Rmpfr
* R-ROC
* R-RODBC
* R-R.oo
* R-roxygen2
* R-rprintf
* R-rprojroot
* R-R.rsp
* R-Rsamtools
* R-rsconnect
* R-Rsolid
* R-RSQLite
* R-rstudioapi
* R-rsvg
* R-rtracklayer
* R-RUnit
* R-R.utils
* R-rversions
* R-rvest
* R-S4Vectors
* R-sandwich
* R-scales
* R-scatterplot3d
* R-sciplot
* R-selectr
* R-sessioninfo
* R-sfsmisc
* R-shiny
* R-showtext
* R-showtextdb
* R-simmer
* R-snow
* R-sodium
* R-sourcetools
* R-sp
* R-spelling
* R-statmod
* R-statnet.common
* R-stringdist
* R-stringi
* R-stringr
* R-styler
* R-SummarizedExperiment
* R-svglite
* R-sys
* R-sysfonts
* R-systemfit
* R-testit
* R-testthat
* R-tibble
* R-tidyr
* R-tidyselect
* R-tikzDevice
* R-timeDate
* R-timeSeries
* R-tinytest
* R-tinytex
* R-tkrplot
* R-tkWidgets
* R-tufte
* R-tweenr
* R-udunits2
* R-unitizer
* R-units
* R-unix
* R-usethis
* R-utf8
* R-uuid
* R-V8
* R-vctrs
* R-viridisLite
* R-waveslim
* R-wavethresh
* R-webp
* R-webutils
* R-whisker
* R-whoami
* R-widgetTools
* R-withr
* R-xfun
* R-XML
* R-xml2
* R-xopen
* R-xtable
* R-XVector
* R-yaml
* R-zeallot
* R-zoo
* libsbml
* libsedml
* libnuml
* shogun




== Contingency Plan ==
== Contingency Plan ==


* Contingency mechanism: The side tag will not be merged, or if a side tag is deemed unnecessary, the generator will not be installed, and any built packages will be re-build without it.
* Contingency mechanism: The side tag will not be merged, or if a side tag is deemed unnecessary, the generator will not be installed, and any built packages will be re-built without it.
* Contingency deadline: Beta Freeze
* Contingency deadline: Beta Freeze
* Blocks release? No
* Blocks release? No
Line 128: Line 468:
-->
-->


[[Category:ChangePageIncomplete]]
[[Category:ChangeAcceptedF31]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->

Latest revision as of 17:54, 22 July 2019


Automatic R runtime dependencies

Summary

Packages of R libraries will produce a standard R(packageName) Provides, and Requires on these standard names will be added from library metadata. Standard provides will use the unmodified versions from the metadata. Suggested dependencies will not be automatically added, but can be opted in by the packager.


Owner


Current status

Detailed Description

R libraries currently provide metadata indicating runtime requirements on other libraries in a DESCRIPTION file. Using RPM's file attributes and dependency generator support, these requirements can be added to packages automatically. These will use namespaced Provides of R(packageName) = packageVersion where packageName is the importable name of the package and packageVersion is the upstream version (note: upstream versions are often sanitized for Fedora since RPM cannot use dashes in versions.)

R library metadata includes Depends and Imports which will be mapped to Requires. Metadata that specifies Enhances will be mapped directly to Enhances.

Metadata that specifies Suggests will not be mapped to anything by default. Oftentimes, suggested libraries are used to indicate dependencies that are needed at build time only. Packagers who wish to include any actual runtime Suggests may opt in to adding them using a (TBD) flag or just continue to add Suggests manually.


Benefit to Fedora

This change provides a standard Provided name for R packages. This change helps users of R packages by providing the original version value (as opposed to the sanitized one for RPM.) This change reduces the amount of work packagers need to do keeping (R package) dependencies correct.


Scope

  • Proposal owners: The automated dependency generator is available, but will need to be updated to provide the opt-in Suggests. The generator and file attributes will likely be housed in the RPM organization, and a new package will be created for it. R packages will need to be rebuilt after the generator is packaged, in order to ensure that they contain the new Provides. If the mass rebuild is not sufficient, this will be carried out in a side tag.
  • Other developers: Others are welcome to rebuild their packages once the generators are available, but it is not a requirement.
  • Release engineering: Releng issue 8501
  • Policies and guidelines: R packaging guidelines should be updated to mention the new generator; this can be done after the implementation is done.
  • Trademark approval: N/A (not needed for this Change)


Upgrade/compatibility impact

No impact expected.


How To Test

  1. Pick any R package in Fedora.
  2. Attempt to install it.
  3. Verify that automatic dependencies are correct, i.e., the package installed without missing dependencies, and the dependencies that were pulled in are the ones specified in its DESCRIPTION file.


User Experience

Users interested in R may install packages based on upstream's real version, and missing dependency annotations will be less likely to occur.


Dependencies

Move of code to RPM organization; it would be preferred to occur as early as possible, but is not a full blocker.

These packages will need to be rebuilt:

  • COPASI
  • R-abind
  • R-acepack
  • R-affy
  • R-affydata
  • R-affyio
  • R-ALL
  • R-AnnotationDbi
  • R-ape
  • R-argon2
  • R-ascii
  • R-askpass
  • R-assertthat
  • R-AUC
  • R-backports
  • R-base64enc
  • R-Bessel
  • R-BH
  • R-biglm
  • R-bindr
  • R-bindrcpp
  • R-Biobase
  • R-BiocGenerics
  • R-BiocParallel
  • R-biomaRt
  • R-Biostrings
  • R-bit
  • R-bit64
  • R-bitops
  • R-blob
  • R-brew
  • R-BSgenome
  • R-BSgenome.Celegans.UCSC.ce2
  • R-BufferedMatrix
  • R-BufferedMatrixMethods
  • R-Cairo
  • R-callr
  • R-car
  • R-caTools
  • R-cellranger
  • R-chron
  • R-cli
  • R-cliapp
  • R-clipr
  • R-clisymbols
  • R-coda
  • R-colorspace
  • R-combinat
  • R-commonmark
  • R-corpus
  • R-crayon
  • R-curl
  • R-data.table
  • R-date
  • R-DBI
  • R-dbplyr
  • R-debugme
  • R-DelayedArray
  • R-deldir
  • R-desc
  • R-dichromat
  • R-diffobj
  • R-digest
  • R-disposables
  • R-doParallel
  • R-dplyr
  • R-dtplyr
  • R-DynDoc
  • R-ellipsis
  • R-errors
  • R-evaluate
  • R-expm
  • R-fansi
  • R-farver
  • R-fastmatch
  • R-fibroEset
  • R-filehash
  • R-FMStable
  • R-foghorn
  • R-fontBitstreamVera
  • R-fontLiberation
  • R-forcats
  • R-foreach
  • R-formatR
  • R-fortunes
  • R-fs
  • R-fts
  • R-futile.logger
  • R-futile.options
  • R-future
  • R-gamlss.dist
  • R-gapminder
  • R-gdata
  • R-gdtools
  • R-gee
  • R-geepack
  • R-generics
  • R-GenomeInfoDb
  • R-GenomeInfoDbData
  • R-GenomicAlignments
  • R-GenomicFeatures
  • R-GenomicRanges
  • R-getPass
  • R-ggplot2
  • R-ggplot2movies
  • R-gh
  • R-git2r
  • R-globals
  • R-glue
  • R-gmailr
  • R-gmp
  • R-gplots
  • R-gsl
  • R-gss
  • R-gtable
  • R-gtools
  • R-haven
  • R-here
  • R-hexbin
  • R-hgu133acdf
  • R-hgu95av2cdf
  • R-hgu95av2probe
  • R-highlight
  • R-highr
  • R-hms
  • R-htmltools
  • R-htmlwidgets
  • R-httpuv
  • R-httr
  • R-hunspell
  • R-igraph
  • R-import
  • R-ini
  • R-inline
  • R-IRanges
  • R-IRdisplay
  • R-IRkernel
  • R-iterators
  • R-itertools
  • R-jose
  • R-jpeg
  • R-jqr
  • R-jsonlite
  • R-knitr
  • R-labeling
  • R-lambda.r
  • R-later
  • R-lazyeval
  • R-lintr
  • R-listenv
  • R-littler
  • R-lmodel2
  • R-lmtest
  • R-lokern
  • R-lubridate
  • R-maanova
  • R-magrittr
  • R-mapproj
  • R-maps
  • R-mAr
  • R-markdown
  • R-matrixStats
  • R-measurements
  • R-memoise
  • R-microbenchmark
  • R-mime
  • R-miniUI
  • R-mlbench
  • R-mnormt
  • R-mockery
  • R-mockr
  • R-msm
  • R-multcomp
  • R-multtest
  • R-munsell
  • R-mvtnorm
  • R-nanotime
  • R-ncdf4
  • R-NISTunits
  • R-nws
  • R-nycflights13
  • R-openssl
  • R-orcutt
  • R-packrat
  • R-parsedate
  • R-pbdRPC
  • R-pbdZMQ
  • R-pdftools
  • R-pillar
  • R-pingr
  • R-pkgbuild
  • R-pkgconfig
  • R-pkgdown
  • R-pkgload
  • R-plogr
  • R-pls
  • R-plyr
  • R-png
  • R-poLCA
  • R-polyclip
  • R-polynom
  • R-praise
  • R-preprocessCore
  • R-prettycode
  • R-prettydoc
  • R-prettyunits
  • R-processx
  • R-progress
  • R-promises
  • R-ps
  • R-purrr
  • R-qcc
  • R-qpdf
  • R-qtl
  • R-quadprog
  • R-quantities
  • R-qvalue
  • R-R6
  • R-rappdirs
  • R-R.cache
  • R-rcmdcheck
  • R-RColorBrewer
  • R-Rcompression
  • R-Rcpp
  • R-RcppCCTZ
  • R-RCurl
  • R-R.devices
  • R-readr
  • R-readxl
  • R-rematch
  • R-rematch2
  • R-remotes
  • R-repr
  • R-reprex
  • R-reshape
  • R-reshape2
  • R-reticulate
  • R-rex
  • R-rgdal
  • R-rgeos
  • R-rhub
  • R-RInside
  • R-rlang
  • R-rlecuyer
  • R-RM2
  • R-rmarkdown
  • R-R.methodsS3
  • R-Rmpfr
  • R-ROC
  • R-RODBC
  • R-R.oo
  • R-roxygen2
  • R-rprintf
  • R-rprojroot
  • R-R.rsp
  • R-Rsamtools
  • R-rsconnect
  • R-Rsolid
  • R-RSQLite
  • R-rstudioapi
  • R-rsvg
  • R-rtracklayer
  • R-RUnit
  • R-R.utils
  • R-rversions
  • R-rvest
  • R-S4Vectors
  • R-sandwich
  • R-scales
  • R-scatterplot3d
  • R-sciplot
  • R-selectr
  • R-sessioninfo
  • R-sfsmisc
  • R-shiny
  • R-showtext
  • R-showtextdb
  • R-simmer
  • R-snow
  • R-sodium
  • R-sourcetools
  • R-sp
  • R-spelling
  • R-statmod
  • R-statnet.common
  • R-stringdist
  • R-stringi
  • R-stringr
  • R-styler
  • R-SummarizedExperiment
  • R-svglite
  • R-sys
  • R-sysfonts
  • R-systemfit
  • R-testit
  • R-testthat
  • R-tibble
  • R-tidyr
  • R-tidyselect
  • R-tikzDevice
  • R-timeDate
  • R-timeSeries
  • R-tinytest
  • R-tinytex
  • R-tkrplot
  • R-tkWidgets
  • R-tufte
  • R-tweenr
  • R-udunits2
  • R-unitizer
  • R-units
  • R-unix
  • R-usethis
  • R-utf8
  • R-uuid
  • R-V8
  • R-vctrs
  • R-viridisLite
  • R-waveslim
  • R-wavethresh
  • R-webp
  • R-webutils
  • R-whisker
  • R-whoami
  • R-widgetTools
  • R-withr
  • R-xfun
  • R-XML
  • R-xml2
  • R-xopen
  • R-xtable
  • R-XVector
  • R-yaml
  • R-zeallot
  • R-zoo
  • libsbml
  • libsedml
  • libnuml
  • shogun


Contingency Plan

  • Contingency mechanism: The side tag will not be merged, or if a side tag is deemed unnecessary, the generator will not be installed, and any built packages will be re-built without it.
  • Contingency deadline: Beta Freeze
  • Blocks release? No


Documentation

See mailing list discussion.


Release Notes