ropensci / software-review

rOpenSci Software Peer Review.
286 stars 104 forks source link

Enrivonment Package Pre-Submission Inquiry: Naming Convention, Programming Paradigms and Software Architecture Query #610

Closed FlippieCoetser closed 8 months ago

FlippieCoetser commented 8 months ago

Submitting Author Name: Flippie Coetser Submitting Author Github Handle: @Flippie Coetser Repository: https://github.com/FlippieCoetser/Environment Submission type: Pre-submission Language: en


Package: Environment
Title: Manage Environment Variables
Version: 0.0.1.003
Authors@R: 
    person(given = "Flippie",
           family = "Coetser",
           role = c("aut", "cre"),
           email = "Flippie.Coetser@gmail.com",
           comment = c(ORCID = "0000-0003-0549-9245"))
Description: Get or Set Environment Variables using .Renviron configuration file.
License: file LICENSE
Encoding: UTF-8
LazyData: true
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.2.3
Suggests:
    rstudioapi, 
    testthat (>= 3.0.0),
Config/testthat/edition: 3

Scope

The Environment package is used to manage environment variables via the use of a .Reviron configuration file.

The Environment package targets R users who want to use environment variables, where the variables are not stored in GitHub but in an .Renviron configuration file. A typical example is storing and retrieving connection strings, usernames, passwords, or server addresses to cloud databases.

usethis package provides some overlapping functionality. However, this package is intended to be as simple as possible while providing a high-level of input validation and meaningful error messages not provided by the usethis package.

Naming Convention: The guidelines refer snake_case; is dot.case also an acceptable convention? Programming Paradigm: The guidelines do not specify a specific programming paradigm. The paradigm adopted in the Environment package is a Data-Oriented paradigm with functional components.
Software Architecture: This package adopts the Standard enterprise-level architecture. Is this community open to different programming paradigms and software architectures?

noamross commented 8 months ago

Thank you for your inquiry, @FlippieCoetser. I am afraid this package doesn't fall within our scope. Our definition of field and laboratory reproducibility tools is "Packages that improve reproducibility of real-world workflows through standardization and automation of field and lab protocols, such as sample tracking and tagging, form and data sheet generation, interfacing with laboratory equipment or information systems, and executing experimental designs." This type of general-purpose/low-level environment tool doesn't fall within that or any of our categories.

For your reference, we recommend againstdot.case because it can interfere with R's S3 OO programming system, unless specifically using that system. We don't have specific paradigm or architectures we endorse. Thanks for the reference to the Standard architecture, that's an interesting reference!

FlippieCoetser commented 8 months ago

@noamross, all good! I understand. I am working on some other packages which do fall under some categories listed. I will try again with those. Regarding the dot.case I can understand that it might interfere with R's OO programming system. On the other hand, it is a really useful feature of the languages which has served me well. I use it to imitate a namespacing system which is standard in many other languages. It would be somewhat disappointing to see organisations or communities placing restrictions on the conventions and styles authors should use, since to me the biggest strength of R is its flexible nature. Anyway, just some food for thought. Thanks for the feedback!