Giter VIP home page Giter VIP logo

rpackages's People

Contributors

batpigandme avatar ctb avatar eddelbuettel avatar jeromyanglim avatar jimvine avatar jtleek avatar kbroman avatar lcolladotor avatar rmflight avatar seananderson avatar yihui avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rpackages's Issues

some feedback

sorry I do not have time to write a formal pull request (some points are not for pull requests, either), but just some feedback and comments for now:

  • GIT: always use a GIT GUI; almost never git add *; I use Ubuntu, so apt-get install git-gui first, and git gui is how I work every day; I use the GUI to select minimal sets of lines of changes to commit instead of just committing everything; then
    • explain in each commit what you did, and sometimes explain why it must be done
    • if a commit fixes a Github issue, write fixed #n and Github will close that issue automatically when you push
    • if you fixed a bug, write a test accordingly, so eventually for all bugs and fixes, you know the full history, e.g. yihui/knitr#636
  • the only GIT commands that I use are git clone (once), git rebase -i (occasionally), git pull --rebase, and sometimes git checkout -b (only in case of collaboration); for the rest of jobs like git commit and git push, etc, I always use the GUI
  • I find Authors@R very useful for several reasons
  • some software communities hates GPL and prefers more permissive licenses like MIT; I think they have a point (in the academic environment, GPL is often not an issue, but in the industry, GPL can be too restrictive)
  • we (RStudio) have been looking into the possibility of making "reproducible" shiny apps, e.g., you can provide a list of input values or save the current state in a "bookmark", and the app can reproduce itself later

tidyr

Is tidyr available for R version 3.0.3? I cannot do lesson 3 on swirl in the course "Getting and Cleaning Data".

Should test-all.R be in tests rather than inst/tests ?

Thanks for the awesome package writing guide.
You suggest

To use the testthat package you will put a file called test-area-packagename.R in the > inst/tests directory, where area is the name of the broad class of functions you are
testing. Then add another file called run-all.R in the same directory.

However, I noticed that this wasn't automatically running the tests when I ran R CMD CHECK in RStudio. I noticed that Hadley puts run-all.R in tests (e.g., stringr and puts the actual tests in inst/tests). When I did that, I had automated tests with R CMD CHECK.

Semantic Versioning Policy and R

Hi Jeff,

I'm not sure how it plays out with R/Bioconductor/CRAN but I've found that the Semantic Versioning Policy is extremely useful.

The primary difference between SemVer and what you've prescribed here is the notion of a "public API" upon which those who build atop your package depend. This dovetails neatly with the need for documentation as once you've established version 1.0.0 and solidified your public API, you really commit to using the version number to indicate to your users whether the changes you're making are likely to break their code.

The reason I bring this up is not that it's significantly different than what you wrote, but instead just to stress the notion of a public API. Clearly stating this helps to think about how your packages are structured and also allows you develop a "private API" which can change more quickly without affecting major version numbers. This is useful for continued personal experimentation or slowly adding new functionality to the public API in a backwards compatible fashion.

This is somewhat covered by the documentation sections (and specifically the @export annotations), but I think the concept itself is worth stressing. In a package that really gets used a lot and built upon, careful choice of the public API and maintaining it responsibly is a very definite design task. Spending a little time before v1 working it out can pay out exponentially down the road.

about Rmd and BiocStyle.latex

In the body, you mention having an Rmd file in inst/doc, and using the BiocStyle latex styles.

If you are going to use Rmd files, you will be producing HTML vignettes, unless you plan to do markdown to latex in the end using some kind of makefile and pandoc. So I am guessing you actually meant to have an Rnw file.

Also, as of the latest version of R, the place to put the vignette source is in packagename/vignettes, and let the build take care of putting them in inst/doc/, or do build_vignettes from the command line.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.