TESTgroup-BNL / LeafGasExchange

An R package for fitting and simulating leaf level gas exchange
GNU General Public License v3.0
6 stars 1 forks source link

Clean up and better organize package dependencies #18

Open serbinsh opened 3 years ago

serbinsh commented 3 years ago

Reviewing the DESCRIPTION I think we can clean up and simplify dependencies

Depends: stats4, polynom, bbmle, readxl, stringr, tidyverse, readr, tealeaves,reshape2,ggplot2, BioCro
Imports: 
    stats4,
    polynom,
    bbmle,
    readxl,
    stringr,
    tidyverse,
    readr,
    tealeaves,
    reshape2,
    ggplot2,
    BioCro

I think we should think about what is needed and whether say we need the entire tidyverse package, do we need to import all of these full libraries, etc.

We probably can do a better job of using "::" to load only whats needed and when. E.g. if certain functions do not need the entire package then lets just load the functions we depend on.

serbinsh commented 3 years ago

Before we do any hasty splitting of the package, etc we should gather to discuss how to simplify the package @JulienLamour @neo0351 etc

serbinsh commented 3 years ago

I think one thing we can do first is to go through the functions and the depends and decide what specific functions from those packages are used, whether we can remove whole depends for single functions, whether we can load pieces of tidy vs the WHOLE thing, only load certain depends for specific functions, load quietly, etc.

neo0351 commented 3 years ago

Do you have time for a quick chat about this?

neo0351 commented 3 years ago

The other question is, can we remove packages by doing things differently? For example, we can use the text files from the licor instead of the excel files removing readxl.

JulienLamour commented 3 years ago

I am making a whole bunch of modifs in the package right now for the submission of the papers, but I can plan a meeting so we organise that when it is more stable ?

serbinsh commented 3 years ago

Folks.

I meant this as a longer term goal not an immediate need. We need to get the papers out and this code in shape for that as the highest priority. My concern was talk about splitting the package etc that leads to another set of challenges and wanted to instead make sure we had a discussion about what easy things could be done first.

Also this doesn’t have to happen all at once and where you can make small changes when doing other code changes do it, as long as they aren’t breaking changes

So let’s just hold off and instead plan a day to meet

[iphone]

On Feb 19, 2021, at 10:27, JulienLamour notifications@github.com wrote:



I am making a whole bunch of modifs in the package right now for the submission of the papers, but I can plan a meeting so we organise that when it is more stable ?

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHubhttps://github.com/TESTgroup-BNL/LeafGasExchange/issues/18#issuecomment-782146549, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAXM32JGGHCH3SQ6P2DH2ADS7Z7KBANCNFSM4X4PP47A.

neo0351 commented 3 years ago

@JulienLamour sounds good, we should also meet to look at how we can combine our packages into a super package haha.

JulienLamour commented 3 years ago

Actually, I think that a real 'import' package should be done separately, and should include Kim with the new ESS dive norms. But as Shawn said we can discuss that later!

serbinsh commented 3 years ago

@JulienLamour @neo0351 indeed, perhaps the best first "split" is the separate import package that is laser focused on that, merging both your efforts. Short term, we can load the depends conservatively like only when we need the excel support etc etc

neo0351 commented 3 years ago

Sounds good. @JulienLamour do you need some help with this short term goal? If so, tell me what and when you need it.

serbinsh commented 3 years ago

We should start with an issue about splitting that off into a single package, then lay out in "pseudocode" what that means and would take to make a gameplan for what exactly we need to do,

Then we can setup a series of tasks to get it done. But lets let Julien get his papers completed first