|
a |
|
b/CONTRIBUTING.md |
|
|
1 |
# Contributing to `biotmle` development |
|
|
2 |
|
|
|
3 |
We, the authors of the `biotmle` R package, use the same guide as is used for |
|
|
4 |
contributing to the development of the popular `tidyverse` ecosystem of R |
|
|
5 |
packages. This document is simply a formal re-statement of that fact. |
|
|
6 |
|
|
|
7 |
The goal of this guide is to help you get up and contributing to `biotmle` as |
|
|
8 |
quickly as possible. The guide is divided into two main pieces: |
|
|
9 |
|
|
|
10 |
* Filing a bug report or feature request in an issue. |
|
|
11 |
* Suggesting a change via a pull request. |
|
|
12 |
|
|
|
13 |
## Issues |
|
|
14 |
|
|
|
15 |
When filing an issue, the most important thing is to include a minimal |
|
|
16 |
reproducible example so that we can quickly verify the problem, and then figure |
|
|
17 |
out how to fix it. There are three things you need to include to make your |
|
|
18 |
example reproducible: required packages, data, code. |
|
|
19 |
|
|
|
20 |
1. **Packages** should be loaded at the top of the script, so it's easy to |
|
|
21 |
see which ones the example needs. |
|
|
22 |
|
|
|
23 |
2. The easiest way to include **data** is to use `dput()` to generate the R |
|
|
24 |
code to recreate it. |
|
|
25 |
|
|
|
26 |
3. Spend a little bit of time ensuring that your **code** is easy for others to |
|
|
27 |
read: |
|
|
28 |
|
|
|
29 |
* make sure you've used spaces and your variable names are concise, but |
|
|
30 |
informative |
|
|
31 |
|
|
|
32 |
* use comments to indicate where your problem lies |
|
|
33 |
|
|
|
34 |
* do your best to remove everything that is not related to the problem. |
|
|
35 |
The shorter your code is, the easier it is to understand. |
|
|
36 |
|
|
|
37 |
You can check you have actually made a reproducible example by starting up a |
|
|
38 |
fresh R session and pasting your script in. |
|
|
39 |
|
|
|
40 |
(Unless you've been specifically asked for it, please don't include the output |
|
|
41 |
of `sessionInfo()`.) |
|
|
42 |
|
|
|
43 |
## Pull requests |
|
|
44 |
|
|
|
45 |
To contribute a change to `biotmle`, you follow these steps: |
|
|
46 |
|
|
|
47 |
1. Create a branch in git and make your changes. |
|
|
48 |
2. Push branch to GitHub and issue pull request (PR). |
|
|
49 |
3. Discuss the pull request. |
|
|
50 |
4. Iterate until either we accept the PR or decide that it's not a good fit for |
|
|
51 |
`biotmle`. |
|
|
52 |
|
|
|
53 |
Each of these steps are described in more detail below. This might feel |
|
|
54 |
overwhelming the first time you get set up, but it gets easier with practice. |
|
|
55 |
|
|
|
56 |
If you're not familiar with git or GitHub, please start by reading |
|
|
57 |
<http://r-pkgs.had.co.nz/git.html> |
|
|
58 |
|
|
|
59 |
Pull requests will be evaluated against a checklist: |
|
|
60 |
|
|
|
61 |
1. __Motivation__. Your pull request should clearly and concisely motivates the |
|
|
62 |
need for change. Please describe the problem your PR addresses and show |
|
|
63 |
how your pull request solves it as concisely as possible. |
|
|
64 |
|
|
|
65 |
Also include this motivation in `NEWS` so that when a new release of |
|
|
66 |
`biotmle` comes out it's easy for users to see what's changed. Add your |
|
|
67 |
item at the top of the file and use markdown for formatting. The |
|
|
68 |
news item should end with `(@yourGithubUsername, #the_issue_number)`. |
|
|
69 |
|
|
|
70 |
2. __Only related changes__. Before you submit your pull request, please |
|
|
71 |
check to make sure that you haven't accidentally included any unrelated |
|
|
72 |
changes. These make it harder to see exactly what's changed, and to |
|
|
73 |
evaluate any unexpected side effects. |
|
|
74 |
|
|
|
75 |
Each PR corresponds to a git branch, so if you expect to submit |
|
|
76 |
multiple changes make sure to create multiple branches. If you have |
|
|
77 |
multiple changes that depend on each other, start with the first one |
|
|
78 |
and don't submit any others until the first one has been processed. |
|
|
79 |
|
|
|
80 |
3. __Use `biotmle` coding style__. To do so, please follow the [official |
|
|
81 |
`tidyverse` style guide](http://style.tidyverse.org). Maintaining a |
|
|
82 |
consistent style across the whole code base makes it much easier to jump |
|
|
83 |
into the code. If you're modifying existing `biotmle` code that doesn't |
|
|
84 |
follow the style guide, a separate pull request to fix the style would be |
|
|
85 |
greatly appreciated. |
|
|
86 |
|
|
|
87 |
4. If you're adding new parameters or a new function, you'll also need |
|
|
88 |
to document them with [`roxygen2`](https://github.com/klutometis/roxygen). |
|
|
89 |
Make sure to re-run `devtools::document()` on the code before submitting. |
|
|
90 |
|
|
|
91 |
This seems like a lot of work but don't worry if your pull request isn't |
|
|
92 |
perfect. It's a learning process. A pull request is a process, and unless |
|
|
93 |
you've submitted a few in the past it's unlikely that your pull request will be |
|
|
94 |
accepted as is. Please don't submit pull requests that change existing |
|
|
95 |
behaviour. Instead, think about how you can add a new feature in a minimally |
|
|
96 |
invasive way. |
|
|
97 |
|