Skip to content

Commit a4a54ee

Browse files
authored
Update documentation for CII badging requirements (#2792)
* Update contributing with test policy and add CoC * Draft a governance model
1 parent 7098630 commit a4a54ee

File tree

3 files changed

+97
-12
lines changed

3 files changed

+97
-12
lines changed

.github/CODE_OF_CONDUCT.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Contributor Code of Conduct
2+
3+
As contributors and maintainers of this project, we pledge to respect all people who
4+
contribute through reporting issues, posting feature requests, updating documentation,
5+
submitting pull requests or patches, and other activities.
6+
7+
We are committed to making participation in this project a harassment-free experience for
8+
everyone, regardless of level of experience, gender, gender identity and expression,
9+
sexual orientation, disability, personal appearance, body size, race, ethnicity, age, or religion.
10+
11+
Examples of unacceptable behavior by participants include the use of sexual language or
12+
imagery, derogatory comments or personal attacks, trolling, public or private harassment,
13+
insults, or other unprofessional conduct.
14+
15+
Project maintainers have the right and responsibility to remove, edit, or reject comments,
16+
commits, code, wiki edits, issues, and other contributions that are not aligned to this
17+
Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed
18+
from the project team.
19+
20+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by
21+
opening an issue or contacting one or more of the project maintainers.
22+
23+
This Code of Conduct is adapted from the Contributor Covenant
24+
(http://contributor-covenant.org), version 1.0.0, available at
25+
http://contributor-covenant.org/version/1/0/0/

CONTRIBUTING.md

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,20 @@
11
# Contributing to ggplot2 development
22

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:
45

56
1. Filing a bug report or feature request in an issue.
67
1. Suggesting a change via a pull request.
78

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+
812
## Issues
913

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.
1118

1219
1. **Packages** should be loaded at the top of the script, so it's easy to
1320
see which ones the example needs.
@@ -34,9 +41,11 @@ When filing an issue, the most important thing is to include a minimal reproduci
3441
* do your best to remove everything that is not related to the problem.
3542
The shorter your code is, the easier it is to understand.
3643

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.
3846

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()`.)
4049

4150
## Pull requests
4251

@@ -48,7 +57,9 @@ To contribute a change to ggplot2, you follow these steps:
4857
1. Iterate until either we accept the PR or decide that it's not
4958
a good fit for ggplot2.
5059

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.
5263

5364
If you're not familiar with git or github, please start by reading <http://r-pkgs.had.co.nz/git.html>
5465

@@ -89,7 +100,7 @@ Pull requests will be evaluated against a seven point checklist:
89100
and don't submit any others until the first one has been processed.
90101

91102
1. __Use ggplot2 coding style__. Please follow the
92-
[official ggplot2 style](http://adv-r.had.co.nz/Style.html). Maintaining
103+
[official tidyverse style](http://style.tidyverse.org). Maintaining
93104
a consistent style across the whole code base makes it much easier to
94105
jump into the code. If you're modifying existing ggplot2 code that
95106
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:
103114
can get with `install_github("klutometis/roxygen")`. This will be
104115
available on CRAN in the near future.
105116

106-
<!--
107117
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.
109119

110120
1. If fixing a bug in the visual output, please add a visual test.
111121
(Instructions to follow soon)
112-
-->
113122

114123
1. If you're adding a new graphical feature, please add a short example
115124
to the appropriate function.
116125

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.

GOVERNANCE.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<!-- This is heavily adapted version of
2+
the Benevolent dictator governance model by Ross
3+
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.
12+
13+
## [Core Developers](https://github.com/orgs/tidyverse/teams/ggplot2)
14+
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
43+
decision, and either uphold or reverse them.

0 commit comments

Comments
 (0)