[R-pkg-devel] [UNCLASSIFIED] Remotes in description when submitting a package until a dependency is fixed

Balasubramanian Narasimhan n@r@@ @end|ng |rom @t@n|ord@edu
Mon Nov 28 19:06:49 CET 2022


(Disclaimer: User bias here.)

I can vouch for drat repos; they have saved me in developing APIs for 
packages under development, e.g. rcbc which is only on Github and not on 
CRAN.  (As Dirk notes, this only applies to Enhances/Suggests dependence.)

-Naras


On 11/16/22 8:17 AM, Dirk Eddelbuettel wrote:
> On 16 November 2022 at 06:36, Duncan Murdoch wrote:
> | On 15/11/2022 11:59 p.m., Hugh Parsonage wrote:
> | > I think you've misunderstood that excerpt.  By "temporary development
> | > state", it means _between_ CRAN releases; packages in a development
> | > state are not suitable for CRAN, as the policy states:
> | >
> | >> CRAN hosts packages of publication quality and is not a development platform.
> | >
> | > You'll need to stop depending on that package until it's fixed and the
> | > fix is on CRAN. That said, it looks like it might be relatively
> | > straightforward to disentangle yourself from the package -- just
> | > rewrite the offending example?
> |
> | Another solution is to put a version of that package in your own drat
> | repository, and use "Additional_repositories".  For example, at one
> | point rgl used webshot2 before it was released, and I had
> |
> |    Suggests:  webshot2, ...
> |    Additional_repositories:  https://dmurdoch.github.io/drat
> |
> | with a copy of webshot2 in the drat repository.
> |
> | The disadvantage of this approach is that you'll need to keep that
> | repository up to date as the third party package evolves, and eventually
> | remove the Additional_repositories: line from your DESCRIPTION, which
> | requires your own package update.
> |
> | See https://github.com/eddelbuettel/drat for instructions on setting up
> | the drat repository.
>
> (Disclaimer: Author bias here.) Let me vouch for Additional_repositories:
> along with packages in Suggests: (you cannot do this for Imports / Depends /
> LinkingTo per CRAN Policy).  I have recently been relying on it a lot for a
> package I (similarly) could not change that frequently at CRAN, and a
> 'semi-private / semi-public package' providing functionality I expect to be
> provided by another package 'eventually'. With the caveat that you need the
> Suggests: mechanism and hence _conditional_ use, it works just like CRAN.
>
> In the meantime Additional_repositories: just works. It expands the set of
> repos, so all operations relying on standard install.packages() calls (and
> that includes using the remotes package to parse dependencies in CI, say)
> just work, both at CRAN and in CI.
>
> `drat` simply helps along by making it easier to provide compatible repositories.
>
> Dirk
>



More information about the R-package-devel mailing list