(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
______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel