I agree that the utils package needs some improvements related to
this, and hope to make them eventually. This type of feedback is very
helpful.
Thanks,
Michael
On Thu, Jun 16, 2016 at 1:42 AM, Jan G?recki <J.Gorecki at wit.edu.pl> wrote:
Dear Joris,
So it does looks like the proposed function makes a lot sense then,
Cheers,
Jan
On 16 June 2016 at 08:37, Joris Meys <jorismeys at gmail.com> wrote:
Dear Jan,
It is unavoidable to have OS and R dependencies for devtools. The
process for packages is both OS and R dependent, so devtools has to be
according to my understanding.
Cheers
Joris
On 14 Jun 2016 18:56, "Jan G?recki" <J.Gorecki at wit.edu.pl> wrote:
Hi Thierry,
I'm perfectly aware of it. Any idea when devtools would be shipped as
a base R package, or at least recommended package? To actually answer
the problem described in my email.
I have range of useful functions available tools/utils packages which
are shipped together with R. They doesn't require any OS dependencies
or R dependencies, unlike devtools which requires both. Installing
unnecessary OS dependencies and R dependencies just for such a simple
wrapper doesn't seem to be an elegant way to address it, therefore my
proposal to include that simple function in tools, or utils package.
Regards,
Jan Gorecki
On 14 June 2016 at 16:17, Thierry Onkelinx <thierry.onkelinx at inbo.be>
Dear Jan,
Similar functionality is available in devtools::dev_package_deps()
Best regards,
ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature
Forest
team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
Kliniekstraat 25
1070 Anderlecht
Belgium
To call in the statistician after the experiment is done may be no more
than
asking him to perform a post-mortem examination: he may be able to say
what
the experiment died of. ~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data. ~ Roger Brinner
The combination of some data and an aching desire for an answer does
ensure that a reasonable answer can be extracted from a given body of
data.
~ John Tukey
2016-06-14 16:54 GMT+02:00 Jan G?recki <J.Gorecki at wit.edu.pl>:
Hi all,
Packages tools and utils have a lot of useful stuff for R developers.
I find one task still not as straightforward as it could. Simply to
extract dependencies of a package from DESCRIPTION file (before it is
even installed to library). This would be valuable in automation of CI
setup in a more meta-data driven way.
The simple function below, I know it is short and simple, but having
it to be defined in each CI workflow is a pain, it could be already
available in tools or utils namespace.
package.dependencies.dcf <- function(file = "DESCRIPTION", which =
c("Depends","Imports","LinkingTo")) {
stopifnot(file.exists(file), is.character(which))
which_all <- c("Depends", "Imports", "LinkingTo", "Suggests",
"Enhances")
if (identical(which, "all"))
which <- which_all
else if (identical(which, "most"))
which <- c("Depends", "Imports", "LinkingTo", "Suggests")
stopifnot(which %in% which_all)
dcf <- read.dcf(file, which)
# parse fields
raw.deps <- unlist(strsplit(dcf[!is.na(dcf)], ",", fixed = TRUE))
# strip stated dependency version
deps <- trimws(sapply(strsplit(trimws(raw.deps), "(", fixed =
TRUE), `[[`, 1L))
# exclude base R pkgs
base.pkgs <- c("R", rownames(installed.packages(priority =
setdiff(deps, base.pkgs)
}
This allows to easily install all package dependencies just based on
DESCRIPTION file, so simplify that in custom CI workflows to:
if (length(pkgs<-package.dependencies.dcf(which="all")))
install.packages(pkgs)
And would not require to install custom packages or shell scripts.
Regards,
Jan Gorecki