Skip to content

Export and document check_dir #985

Description

@jrounds

Short version:
Can you export devtools:::check_dir and rename it to devtools::package_root, and give it a default parameter of ".".

Long version:

Been using devtools at work to develop analysis packages. One common thing I do is put extra scripts in what is a package directory. These scripts usually need some awareness of their relative location to package root, but it occurred to me that devtools::load_all() has an ability to find package root no matter what the working directory is as long as it is a sub-directory of the package. I inspected the source and noted it all came down to devtools::check_dir("."), and I thought this is wonderful...

Shouldn't everything we code use that as a root directory? This way a source file never needs to know where it is relative to the root of a package. For example I was modifying a colleagues data structure and wanted to save it in package_root/data. A way to do that in devtools is:

save(tcga_ovarian_pepdata_bp, file = file.path(devtools:::check_dir("."), "data","ModifiedOvarianPepdataBP.Rdata"))

Now no matter where this script ends up in any sub-directory of the package the object will always be saved in package_root/data. I can put this save two nested directories deep and the script doesn't need to know. That is cool! But, it isn't exported and has a cryptic name.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions