-
Notifications
You must be signed in to change notification settings - Fork 26
Development Workflow
This is an outline of the workflow for development and maintenance of the mosaic package.
- Dependencies
- scripting languages: R, bash, perl,
- R packages for development: devtools, testthat, optparse, roxygen2
- R packages for the package itself: lattice, grid, methods, Hmisc, utils, MASS, reshape2, [manipulate]
- R packages to compile ancillary materials (e.g. books): knitr
- Github workflow
- Creating new functionality
2. Assign the issue to the person doing the coding.
3. Create a branch named after the issue number (e.g., issue001). Pad to 3 digits. Typically this branch will come off of the beta branch or one of its subbranches.
git checkout beta # change to beta branch
git status # make sure everything looks as it should
git branch issue001 # create the new topic branch to work in
git checkout issue001 # switch to the new branch
more code At this point, the branch is only on your local machine.
4. Create, document, and test code, committing from time to time as you work.
git commit
# do some stuff
git commit
- Whenever possible, new code should result in new examples, new unit tests, or both.
- First line of commit message should be a short description of committed work. Second line should be blank. The next few lines can add additional details.
- Avoid committing too many things all at once. Commits are cheap.
6. When ready for public release, beta can be merged into master (We need to decide if this will done by the developer or via pull requests to a package moderator.)
7. Prior to merging beta into master, it may be useful to have an alpha branch that will become the next beta so that we can continue working on new stuff without delaying the release of more mature code.
- Fixing a bug, updating documentation, etc.
- CRAN submission
- Building and Checking the Package