Skip to content

Commit 8c3dbe2

Browse files
committed
drafted new contribution guidelines
1 parent 3121d2c commit 8c3dbe2

File tree

2 files changed

+41
-5
lines changed

2 files changed

+41
-5
lines changed

CONTRIBUTING.md

Lines changed: 37 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,42 @@
11

2-
We welcome contributions to the **shiny** package. To submit a contribution:
2+
Shiny is an open source project and we occasionally accept pull requests from outside contributors. These range from simple typo fixes to more complicated multi-file PRs. *The bar for us to merge a PR gets increasingly higher the more code you are changing or adding.*
33

4-
1. [Fork](https://github.com/rstudio/shiny/fork) the repository and make your changes.
4+
We'll try to be as responsive as possible in reviewing and accepting pull requests. We appreciate your contributions!
55

6-
2. Ensure that you have signed the [individual](http://www.rstudio.com/wp-content/uploads/2014/06/RStudioIndividualContributorAgreement.pdf) or [corporate](http://www.rstudio.com/wp-content/uploads/2014/06/RStudioCorporateContributorAgreement.pdf) contributor agreement as appropriate. You can send the signed copy to [email protected].
6+
### Trivial changes
7+
For very trivial PRs (like typo fixes), you don't need to do anything else except submit the PR with a one-line explanation of what you are fixing. If you never forked and submitted a pull request to a repository before, you may benefit from reading [this guide](https://gist.github.com/Chaser324/ce0505fbed06b947d962). In very broad strokes, you need to [fork](https://github.com/rstudio/shiny/fork) the repository, make your changes and then submit a [pull request](https://help.github.com/articles/about-pull-requests/).
78

8-
3. Submit a [pull request](https://help.github.com/articles/using-pull-requests).
9+
*Note*: We tend not to accept library update PRs (for example, a PR that updates Shiny to the latest version of Bootstrap or font-awesome). Since these can sometimes break previous examples and apps, we prefer to always do the updating ourselves.
910

10-
We'll try to be as responsive as possible in reviewing and accepting pull requests. We appreciate your contributions!
11+
### Non-trivial changes
12+
For pretty much everything else, before you submit your PR, you need to:
13+
14+
- Check your code by running `devtools::check()` to make sure you did not add any messages, warnings or errors. This also checks to make sure that you've added all relevant documentation, that the DESCRIPTION and NAMESPACE files are up-to-date, etc.
15+
16+
- Test your code if needed, preferably through unit tests (which go in the "tests" folder).
17+
18+
- If you made any changes to the JS files in the "srcjs" directory, make sure you run `grunt` (from the terminal, navigate to the "tools" directory and enter the command `grunt`).
19+
20+
- Add a [NEWS.md](https://github.com/rstudio/shiny/blob/master/NEWS.md) entry (in the appropriate section) concisely describing what you changed.
21+
22+
- Be responsive to the Shiny team's feedback on your PR.
23+
24+
If you do these things, it makes our lives a lot easier and lets us judge the merit of your PR without worrying about all the boilerplate associated with changes to existing code. However, we may still decide to modify your code somewhat or even not merge it at all. There are a lot of factors at play here, including whether or not your change:
25+
26+
- breaks backward compatibility;
27+
- adds a feature that we do not consider relevant for Shiny;
28+
- is computationally expensive;
29+
- is hard to maintain in the future;
30+
- is intuitive for people to use and incorporate in their apps.
31+
32+
We will always try to be responsive and provide feedback in case we decide not to merge your PR.
33+
34+
### RStudio Contributor Agreement
35+
If we do decide to merge your non-trivial PR, you have one more step to complete, which is to **sign the [individual](http://www.rstudio.com/wp-content/uploads/2014/06/RStudioIndividualContributorAgreement.pdf) or [corporate](http://www.rstudio.com/wp-content/uploads/2014/06/RStudioCorporateContributorAgreement.pdf) contributor agreement** as appropriate. You only have to do this once (the first time you contribute), so if you've contributed in the past, we should still have your agreement on file.
36+
37+
This is necessary to let us make changes to the license in the future (for example, to change to a BSD license if GPL becomes a problem, or a later GPL version). If you're OK with that, then sign the form, scan it and email it to [email protected].
38+
39+
### Filing issues is also a valuable contribution!
40+
If you notice a bug or you think of a new feature that you'd like to see in Shiny, you can also [file an issue](https://github.com/rstudio/shiny/issues/new). This is ideal when you don't know how you'd solve the problem or even if you have an idea of how to do so, but you prefer to leave the coding up to us. Issues are actually an extremely helpful contribution, so don't hesitate to do so.
41+
42+
When you file an issue, please give as much information as you can (for example, if you think you know what is causing the bug, you could link to the appropriate file and line). Also, please provide a minimal reproducible example if appropriate (pretty much every time you're reporting a bug). This will allow us to quickly understand what's the problem and how we can fix it.

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ devtools::install_version("shiny", version = "0.10.2.2")
5959

6060
The Javascript code in Shiny is minified using tools that run on Node.js. See the tools/ directory for more information.
6161

62+
## Guidelines for contributing
63+
64+
We welcome contributions to the **shiny** package. Please see our [CONTRIBUTING.md](CONTRIBUTING.md) file for detailed guidelines of how to contribute.
65+
6266
## License
6367

6468
The shiny package is licensed under the GPLv3. See these files in the inst directory for additional details:

0 commit comments

Comments
 (0)