Diff of /CONTRIBUTING.md [000000] .. [efa494]

Switch to side-by-side view

--- a
+++ b/CONTRIBUTING.md
@@ -0,0 +1,97 @@
+# Contributing to `biotmle` development
+
+We, the authors of the `biotmle` R package, use the same guide as is used for
+contributing to the development of the popular `tidyverse` ecosystem of R
+packages. This document is simply a formal re-statement of that fact.
+
+The goal of this guide is to help you get up and contributing to `biotmle` as
+quickly as possible. The guide is divided into two main pieces:
+
+* Filing a bug report or feature request in an issue.
+* Suggesting a change via a pull request.
+
+## Issues
+
+When filing an issue, the most important thing is to include a minimal
+reproducible example so that we can quickly verify the problem, and then figure
+out how to fix it. There are three things you need to include to make your
+example reproducible: required packages, data, code.
+
+1.  **Packages** should be loaded at the top of the script, so it's easy to
+    see which ones the example needs.
+
+2.  The easiest way to include **data** is to use `dput()` to generate the R
+    code to recreate it.
+
+3.  Spend a little bit of time ensuring that your **code** is easy for others to
+    read:
+
+    * make sure you've used spaces and your variable names are concise, but
+      informative
+
+    * use comments to indicate where your problem lies
+
+    * do your best to remove everything that is not related to the problem.
+     The shorter your code is, the easier it is to understand.
+
+You can check you have actually made a reproducible example by starting up a
+fresh R session and pasting your script in.
+
+(Unless you've been specifically asked for it, please don't include the output
+of `sessionInfo()`.)
+
+## Pull requests
+
+To contribute a change to `biotmle`, you follow these steps:
+
+1. Create a branch in git and make your changes.
+2. Push branch to GitHub and issue pull request (PR).
+3. Discuss the pull request.
+4. Iterate until either we accept the PR or decide that it's not a good fit for
+   `biotmle`.
+
+Each of these steps are described in more detail below. This might feel
+overwhelming the first time you get set up, but it gets easier with practice.
+
+If you're not familiar with git or GitHub, please start by reading
+<http://r-pkgs.had.co.nz/git.html>
+
+Pull requests will be evaluated against a checklist:
+
+1.  __Motivation__. Your pull request should clearly and concisely motivates the
+   need for change. Please describe the problem your PR addresses and show
+   how your pull request solves it as concisely as possible.
+
+   Also include this motivation in `NEWS` so that when a new release of
+   `biotmle` comes out it's easy for users to see what's changed. Add your
+   item at the top of the file and use markdown for formatting. The
+   news item should end with `(@yourGithubUsername, #the_issue_number)`.
+
+2.  __Only related changes__. Before you submit your pull request, please
+    check to make sure that you haven't accidentally included any unrelated
+    changes. These make it harder to see exactly what's changed, and to
+    evaluate any unexpected side effects.
+
+    Each PR corresponds to a git branch, so if you expect to submit
+    multiple changes make sure to create multiple branches. If you have
+    multiple changes that depend on each other, start with the first one
+    and don't submit any others until the first one has been processed.
+
+3.  __Use `biotmle` coding style__. To do so, please follow the [official
+    `tidyverse` style guide](http://style.tidyverse.org). Maintaining a
+    consistent style across the whole code base makes it much easier to jump
+    into the code. If you're modifying existing `biotmle` code that doesn't
+    follow the style guide, a separate pull request to fix the style would be
+    greatly appreciated.
+
+4.  If you're adding new parameters or a new function, you'll also need
+    to document them with [`roxygen2`](https://github.com/klutometis/roxygen).
+    Make sure to re-run `devtools::document()` on the code before submitting.
+
+This seems like a lot of work but don't worry if your pull request isn't
+perfect. It's a learning process. A pull request is a process, and unless
+you've submitted a few in the past it's unlikely that your pull request will be
+accepted as is. Please don't submit pull requests that change existing
+behaviour. Instead, think about how you can add a new feature in a minimally
+invasive way.
+