You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+29-12Lines changed: 29 additions & 12 deletions
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,20 @@
1
1
# Contributing to ggplot2 development
2
2
3
-
The goal of this guide is to help you get up and contributing to ggplot2 as quickly as possible. The guide is divided into two main pieces:
3
+
The goal of this guide is to help you get up and contributing to ggplot2 as
4
+
quickly as possible. The guide is divided into two main pieces:
4
5
5
6
1. Filing a bug report or feature request in an issue.
6
7
1. Suggesting a change via a pull request.
7
8
9
+
Please note that 'ggplot2 is released with a [Contributor Code of Conduct](.github/CODE_OF_CONDUCT.md). By contributing to this project,
10
+
you agree to abide by its terms.
11
+
8
12
## Issues
9
13
10
-
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.
14
+
When filing an issue, the most important thing is to include a minimal
15
+
reproducible example so that we can quickly verify the problem, and then figure
16
+
out how to fix it. There are three things you need to include to make your
17
+
example reproducible: required packages, data, code.
11
18
12
19
1.**Packages** should be loaded at the top of the script, so it's easy to
13
20
see which ones the example needs.
@@ -34,9 +41,11 @@ When filing an issue, the most important thing is to include a minimal reproduci
34
41
* do your best to remove everything that is not related to the problem.
35
42
The shorter your code is, the easier it is to understand.
36
43
37
-
You can check you have actually made a reproducible example by starting up a fresh R session and pasting your script in.
44
+
You can check you have actually made a reproducible example by starting up a
45
+
fresh R session and pasting your script in.
38
46
39
-
(Unless you've been specifically asked for it, please don't include the output of `sessionInfo()`.)
47
+
(Unless you've been specifically asked for it, please don't include the output
48
+
of `sessionInfo()`.)
40
49
41
50
## Pull requests
42
51
@@ -48,7 +57,9 @@ To contribute a change to ggplot2, you follow these steps:
48
57
1. Iterate until either we accept the PR or decide that it's not
49
58
a good fit for ggplot2.
50
59
51
-
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 get stuck at any point, please reach out for help on the [ggplot2-dev](https://groups.google.com/forum/#!forum/ggplot2-dev) mailing list.
60
+
Each of these steps are described in more detail below. This might feel
61
+
overwhelming the first time you get set up, but it gets easier with practice.
62
+
If you get stuck at any point, please reach out for help on the [ggplot2-dev](https://groups.google.com/forum/#!forum/ggplot2-dev) mailing list.
52
63
53
64
If you're not familiar with git or github, please start by reading <http://r-pkgs.had.co.nz/git.html>
54
65
@@ -89,7 +100,7 @@ Pull requests will be evaluated against a seven point checklist:
89
100
and don't submit any others until the first one has been processed.
a consistent style across the whole code base makes it much easier to
94
105
jump into the code. If you're modifying existing ggplot2 code that
95
106
doesn't follow the style guide, a separate pull request to fix the
@@ -103,17 +114,23 @@ Pull requests will be evaluated against a seven point checklist:
103
114
can get with `install_github("klutometis/roxygen")`. This will be
104
115
available on CRAN in the near future.
105
116
106
-
<!--
107
117
1. If fixing a bug or adding a new feature to a non-graphical function,
108
-
please add a [testthat](https://github.com/hadley/testthat) unit test.
118
+
please add a [testthat](https://github.com/r-lib/testthat) unit test.
109
119
110
120
1. If fixing a bug in the visual output, please add a visual test.
111
121
(Instructions to follow soon)
112
-
-->
113
122
114
123
1. If you're adding a new graphical feature, please add a short example
115
124
to the appropriate function.
116
125
117
-
This seems like a lot of work but don't worry if your pull request isn't perfect. It's a learning process and Winston and I will be on hand to help you out. 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.
118
-
119
-
Finally, remember that ggplot2 is a mature package used by thousands of people. This means that it's extremely difficult (i.e. impossible) to change any existing functionality without breaking someone's code (or another package on CRAN). 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.
126
+
This seems like a lot of work but don't worry if your pull request isn't perfect.
127
+
It's a learning process and members of the ggplot2 team will be on hand to help you out. A pull request is a process, and unless you've submitted a few in the past
128
+
it's unlikely that your pull request will be accepted as is. All PRs require
129
+
review and approval from at least one member of the ggplot2 development team
130
+
before merge.
131
+
132
+
Finally, remember that ggplot2 is a mature package used by thousands of people.
133
+
This means that it's extremely difficult (i.e. impossible) to change any existing
134
+
functionality without breaking someone's code (or another package on CRAN).
135
+
Please don't submit pull requests that change existing behaviour. Instead,
136
+
think about how you can add a new feature in a minimally invasive way.
Gardler and Gabriel Hanganu licensed under a Creative Commons
4
+
Attribution-ShareAlike 4.0 International License. -->
5
+
6
+
# Overview
7
+
This project is led by a benevolent dictator and managed by a core team of developers and a large community of contributors and users. That is, the community and core developers actively contribute to the day-to-day maintenance of the project, but the general strategic line is drawn by the benevolent dictator. In case of disagreement, they have the last word.
8
+
9
+
# Roles And Responsibilities
10
+
## Benevolent dictator (Hadley Wickham, @hadley)
11
+
The job of the benevolent dictator is to set the strategic objectives of the project and communicate these clearly to the community, ensuring that the project survives in the long term.
Core developers are contributors who have made several valuable contributions to the project and are now relied upon to both write code directly to the repository and screen the contributions of others. Core developers are empowered to merge pull requests after careful review. Core developers have no authority over the overall direction of the project, however it is their job to help develop or elicit appropriate contributions to the project. As a matter of policy, core developers, even if no longer active, are listed as [package authors](https://ggplot2.tidyverse.org/authors.html).
15
+
16
+
## Contributors
17
+
Contributors are community members who make valuable contributions, such as those outlined in the list below, but generally do not have the authority to make direct changes to the project code. Instead, contributors can suggest changes to project code through the pull request process outlined in the project's [CONTRIBUTING](https://github.com/tidyverse/ggplot2/blob/master/CONTRIBUTING.md) document.
18
+
19
+
Anyone can become a contributor. There is no expectation of commitment to the project, no specific skill requirements and no selection process. To become a contributor, a community member simply has to perform one or more actions that are beneficial to the project.
20
+
21
+
Most contributors will already be engaging with the project as users, but will also find themselves doing one or more of the following:
22
+
23
+
- opening issues to report bugs or suggest new features
24
+
- submitting PRs to implement new features, fix bugs, or improve documentation
25
+
- commenting in open PRs or issues to help support users or contribute to discussion
26
+
27
+
## Users
28
+
Users are community members who have a need for the project. They are the most important members of the community: without them, the project would have no purpose. Anyone can be a user; there are no specific requirements.
29
+
30
+
Users are encouraged to participate in the life of the project and the community as much as possible. User contributions enable the project team to ensure that they are satisfying the needs of those users. Common user activities include (but are not limited to):
31
+
32
+
- evangelising about the project
33
+
- informing developers of project strengths and weaknesses from a new user’s perspective
34
+
- providing moral support (a ‘thank you’ goes a long way)
35
+
36
+
Users who continue to engage with the project and its community will often find themselves becoming more and more involved. Such users may then go on to become contributors, as described above.
37
+
38
+
# Decision-Making Process
39
+
This project makes decisions according to a consensus model where suggestions
40
+
are considered and discussed between the community and core developers. In case
41
+
of conflict, the project lead’s word is final. If the community chooses to question
42
+
the wisdom of the actions of a core developer, the project lead can review their
0 commit comments