Release packages to CRAN
Description
Currently PEcAn is not available in CRAN, this makes it harder to install on systems since it requires the user to download all code first and install it. Adding it to CRAN will not only make it easier to install, but also easier to find. This will require to fix warnings in the build process and potentially splitting the code in different modules. (GSOC 2021 project)
This is a high level issue for the goal of releasing packages on CRAN; each package will need at least one issue and discussion threads.
Please update this initial description as appropriate based on comments below.
Proposed Solution
- review base packages (in /base subdirectory) and what base packages are used by higher priority packages in /modules
- release base packages - logger may be the most likely dependency
- begin releasing packages
A rough list of priorities (TODO turn into table)
- base/logger
- no imports; suggests testthat
- base/remote
- imports PEcAn.logger
- modules/photosynthesis
- no non-cran PEcAn dependencies
- modules/allometry
- only imports PEcAn.logger
- modules/data.atmosphere
- imports PEcAn utils, remote, logger, DB
- also includes on ropesci/geonames and ropensci/nneo from github, though these are now on CRAN
- modules/meta-analysis
- depends on logger, settings, DB, utils
- can settings be replaced? DB can be replaced w/ calls to API, utils might be hard to replace.
- are statistical models themselves separable from database queries or can db queries be replaced by calls to API?
- depends on logger, settings, DB, utils
- PEcAnRTM: modules/rtm
- imports PEcAn.assim.batch
- suggests PEcAn.utils, PEcAn.ED2
Alternatives Considered
Keeping packages on Github.
Additional Context
Anyone hoping to tackle this should either be familiar with CRAN releases and package development (or have a mentor who is) and with chapters on releasing packages in the book 'rOpenSci packages' and the book 'R packages' by Hadley Wickham. These chapters provide the steps and describe many helper functions for releasing packages.
Hello @dlebauer sir, Wanted to work on this issue.
Started working.
@avinash14022002 This is a big issue and we expect finishing it to take a whole GSOC project and possibly beyond. You're very welcome to contribute, but I encourage you to begin working on a proposal for work on this rather than jumping straight into coding.
@infotroph sir,
Yes sir. As well as wanted your guidance as well.
I like to contribute to PEcAn post Gsoc as well.
@infotroph @dlebauer "base/remote- imports PEcAn.logger" when we say this ..does this mean we need to pass PEcAn.remote along with PEcAn.logger FUNCTIONS altogether to CRAN? was a bit confused about this.
In general, packages submitted to CRAN are only allowed to have dependencies on packages that are also in CRAN[1], so we should assume that packages need to be submitted in dependency order, e.g. PEcAn.logger before PEcAn.data.remote.
These dependencies compound quickly, so as part of the preparations for CRAN release we should look for opportunities to remove unneeded dependencies -- e.g. it's likely that some of the packages that import PEcAn.utils are only using it for a few simple functions and it may make more sense to copy these directly into other package rather than import them.
[1] Technically that's "Packages on which a CRAN package depends should be available from a mainstream repository," but in practice "mainstream" means CRAN or Bioconductor.
This issue is stale because it has been open 365 days with no activity.
hello is it still on?
Yes, this is still going (albeit a little slower) since we are also changing the license from the NCSA opensource license to the BSD-3 license. If you want access to the packages you can also use https://pecanproject.r-universe.dev/builds
Are there any plans for improvement in this, I would like to contribute.