Skip to content

Commit e4f9afd

Browse files
authored
Add contributing guide, CoC and templates (#51)
* add contributing and coc * add pull request template * some updates to the contributing guide * add issue templates
1 parent 682fd13 commit e4f9afd

File tree

6 files changed

+260
-21
lines changed

6 files changed

+260
-21
lines changed

.github/ISSUE_TEMPLATE/bug-report.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
name: 'Bug Report'
3+
about: Inform about errors and mistakes in the notebooks
4+
5+
---

.github/ISSUE_TEMPLATE/tracker.md

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
name: 'Tracker issue'
3+
about: Create a tracker issue for the GitHub project
4+
labels: tracker id
5+
6+
---
7+
8+
File:
9+
Reviewers:
10+
11+
## Context
12+
13+
## Known changes needed
14+
Changes listed in this section should all be done at some point in order to get this
15+
notebook to a "Best Practices" state. However, these are probably not enough!
16+
Make sure to thoroughly review the notebook and search for other updates.
17+
18+
### General updates
19+
*
20+
21+
### ArviZ related
22+
*
23+
24+
## Changes for discussion
25+
Changes listed in this section are up for discussion, these are ideas on how to improve
26+
the notebook but may not have a clear implementation, or fix some know issue only partially.
27+
28+
### General updates
29+
*
30+
31+
### ArviZ related
32+
*
33+
34+
## Notes
35+
36+
### Exotic dependencies
37+
38+
### Computing power

.github/PULL_REQUEST_TEMPLATE.md

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
## Description
2+
<!-- Thank you so much for your PR!
3+
4+
To help us review your contribution, please provide the info requested below. Otherwise,
5+
we may leave reviews that are actually out of the scope of the current PR. -->
6+
7+
Addresses issue #xxx and aims to advance it to <!-- Tracker column: General Updates, ArviZ, Best Practices -->
8+
9+
<!-- We understand that PRs can sometimes be overwhelming, especially as the reviews start coming in.
10+
Please let us know if the reviews are unclear or the recommended next step seems overly demanding,
11+
if you would like help in addressing a reviewer's comments,
12+
or if you have been waiting too long to hear back on your PR.
13+
14+
Also, please consider reading the contributing guidelines and code of conduct carefully before submitting the PR. They are available at
15+
- https://github.com/arviz-devs/arviz/blob/main/CONTRIBUTING.md
16+
- https://github.com/arviz-devs/arviz/blob/main/CODE_OF_CONDUCT.md -->

CODE_OF_CONDUCT.md

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# PyMC3 Code of Conduct
2+
3+
## Our Pledge
4+
5+
In the interest of fostering an open and welcoming environment, we as
6+
contributors and maintainers pledge to making participation in our project and
7+
our community a harassment-free experience for everyone, regardless of age, body
8+
size, disability, ethnicity, sex characteristics, gender identity and expression,
9+
level of experience, education, socio-economic status, nationality, personal
10+
appearance, race, religion, or sexual identity and orientation.
11+
12+
## Our Standards
13+
14+
Examples of behavior that contributes to creating a positive environment
15+
include:
16+
17+
* Using welcoming and inclusive language
18+
* Being respectful of differing viewpoints and experiences
19+
* Gracefully accepting constructive criticism
20+
* Focusing on what is best for the community
21+
* Showing empathy towards other community members
22+
23+
Examples of unacceptable behavior by participants include:
24+
25+
* The use of sexualized language or imagery and unwelcome sexual attention or
26+
advances
27+
* Trolling, insulting/derogatory comments, and personal or political attacks
28+
* Public or private harassment
29+
* Publishing others' private information, such as a physical or electronic
30+
address, without explicit permission
31+
* Other conduct which could reasonably be considered inappropriate in a
32+
professional setting
33+
34+
## Our Responsibilities
35+
36+
Project maintainers are responsible for clarifying the standards of acceptable
37+
behavior and are expected to take appropriate and fair corrective action in
38+
response to any instances of unacceptable behavior.
39+
40+
Project maintainers have the right and responsibility to remove, edit, or
41+
reject comments, commits, code, wiki edits, issues, and other contributions
42+
that are not aligned to this Code of Conduct, or to ban temporarily or
43+
permanently any contributor for other behaviors that they deem inappropriate,
44+
threatening, offensive, or harmful.
45+
46+
## Scope
47+
48+
This Code of Conduct applies both within project spaces and in public spaces
49+
when an individual is representing the project or its community. Examples of
50+
representing a project or community include using an official project e-mail
51+
address, posting via an official social media account, or acting as an appointed
52+
representative at an online or offline event. Representation of a project may be
53+
further defined and clarified by project maintainers.
54+
55+
## Enforcement
56+
57+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
58+
reported by contacting PyMC3 developer Christopher Fonnesbeck via email
59+
([email protected]) or phone (615-955-0380). Alternatively, you
60+
may also contact NumFOCUS Executive Director Leah Silen (512-222-5449) or
61+
fill an anonymous report using [NumFOCUS Typeform](https://numfocus.typeform.com/to/ynjGdT).
62+
As PyMC3 is a member of NumFOCUS and subscribes to their code of conduct as a
63+
precondition for continued membership. All complaints will be reviewed and
64+
investigated and will result in a response that is deemed necessary and
65+
appropriate to the circumstances. The project team is obligated to maintain
66+
confidentiality with regard to the reporter of an incident. Further details of
67+
specific enforcement policies may be posted separately.
68+
69+
Project maintainers who do not follow or enforce the Code of Conduct in good
70+
faith may face temporary or permanent repercussions as determined by other
71+
members of the project's leadership.
72+
73+
## Attribution
74+
75+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
76+
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
77+
78+
[homepage]: https://www.contributor-covenant.org

CONTRIBUTING.md

+98
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# Guidelines for Contributing
2+
As part of the PyMC3 library documentation, the guidelines to contribute to
3+
pymc-examples are based on [PyMC3 contributing guidelines](https://github.com/pymc-devs/pymc3/blob/master/CONTRIBUTING.md). Please refer there
4+
for a detailed description of the Fork-PR contributing workflow, see "Steps" section,
5+
and note that you'll need to update the repository URLs and branch names.
6+
7+
This document therefore covers only some specific guidelines specific to this repository, mainly,
8+
an adapted version of the "Pull Request Checklist" and some extra guidelines for
9+
efficient collaboration with Jupyter notebooks.
10+
11+
## Before submitting a pull request
12+
The notebooks in pymc-examples are in the process of being updated and reexecuted.
13+
The main progress tracker is [this GitHub project](https://github.com/pymc-devs/pymc-examples/projects/1).
14+
15+
### About the notebook tracker project
16+
This project serves as both tracker and organizer of the work needed on each of the example notebooks in this repo.
17+
Each notebook will have its own issue where we can point out things to fix and discuss them.
18+
These issue tickets are placed on one of the columns in this project based on the state of the notebook:
19+
20+
* **To Do:** notebooks in this column are outdated, don't use ArviZ or InferenceData (or do so only partially), use deprecated pymc3 arguments or show other practices that should be updated and improved.
21+
* **General updates:** notebooks in this column have pymc3 code up to date with v3, but don't use ArviZ (or do so only partially)
22+
* **ArviZ:** notebooks in this column use ArviZ but still have bad examples of pymc3 usage.
23+
* **Best practices:** notebooks in this column use ArviZ and pymc3 best practices. This column alone does not represent any extra updates, it is only the place for notebooks fulfilling the requirements to be in both "general updates" and "ArviZ".
24+
* **v4:** notebooks in this column use ArviZ and have been updated and executed with pymc3 v4.
25+
26+
Therefore, all notebooks will be progressively updated along this path:
27+
28+
```
29+
/ --> General updates -- \
30+
To Do --< >--> Best Practices (--> v4)
31+
\ --> ArviZ -- /
32+
```
33+
34+
Each pull request should update a single notebook 1-2 positions to the right.
35+
Before starting a work on a pull request look at the tracker issue of the
36+
notebook you are planning to edit to make sure it is not being updated by someone
37+
else.
38+
39+
If there are no comments and nobody is working on this notebook,
40+
comment on the ticket to make it evident to others, we will assign
41+
the issue to you as soon as possible.
42+
If the comment if more than two weeks old and there are no signs of
43+
activity, leave a comment for a maintainer to assign the issue to you.
44+
45+
We encourage you to submit a pull request as soon as possible after commenting
46+
and being assigned the issue and
47+
add `[WIP]` in the title to indicate Work in Progress.
48+
49+
### About PR timeline
50+
You are free and encouraged to work at your own pace as long as you keep
51+
track of your progress in the issues and PRs. There is no deadline nor
52+
maximum time an active PR can be open.
53+
54+
There is a maximum time of 2 weeks for inactive PRs,
55+
if there is no activity for two weeks,
56+
we will close the PR and the issue will be unassigned.
57+
We will try to ping you a few days before that happens,
58+
but not being receiving such ping does not mean you won't get unassigned.
59+
60+
If you know you won't be able to work during two weeks but plan to
61+
continue your work afterwards, let us know by commenting when you'll be able
62+
to retake the work.
63+
Alternatively, you can also contact your reviewers on [Discourse](https://discourse.pymc.io/)
64+
65+
As for review timeline, while you may get some reviews in a few hours or even some minutes
66+
if we happen to be working on related things, _you should not expect that to be the norm_.
67+
You should expect to receive review(s) for your PRs in 1-2 days. If two and a half days
68+
after submitting you still have not received any comment, let us know (i.e. tag whoever
69+
opened the issue you are addressing in a new PR comment. If at any point we were
70+
overwhelmed by PRs and delay this timeline, we will comment on your PR with an estimate
71+
of when you can expect a proper review.
72+
73+
### In the event of a conflict
74+
In the event of two or more people working on the same issue,
75+
the general precedence will go to the person who first commented in the issue.
76+
If no comments it will go to the first person to submit a PR for review.
77+
Each situation will differ though, and the core contributors will make the best judgement call if needed.
78+
79+
### If the issue ticket has someone assigned to it
80+
If the issue is assigned then precedence goes to the assignee.
81+
However if there has been no activity for 2 weeks from assignment date,
82+
the ticket is open for all again and will be unassigned.
83+
84+
## Pull request checklist
85+
86+
We recommended that your contribution complies with the following guidelines before you submit a pull request:
87+
88+
* Use the pull request title to describe the issue and mention the issue number in the pull request description. This will make sure a link back to the original issue is created. For example, use `Use ArviZ in sampler stats notebook` as a title and link to [#46](https://github.com/pymc-devs/pymc-examples/issues/46) in the description.
89+
* Please do not submit PRs that are not addressing an issue already present in the issue tracker.
90+
91+
* Prefix the title of incomplete contributions with `[WIP]` (to indicate a work in progress). WIPs may be useful to (1) indicate you are working on something to avoid duplicated work, (2) request broad review of functionality or API, or (3) seek collaborators.
92+
93+
* Make sure to run the whole notebook sequentially on a fresh kernel. You can do that with the
94+
"Restart & Run All" option before saving.
95+
96+
* No `pre-commit` errors: see the [Jupyter Notebook style](https://github.com/pymc-devs/pymc3/wiki/PyMC3-Jupyter-Notebook-Style-Guide) (and [Python code style](https://github.com/pymc-devs/pymc3/wiki/PyMC3-Python-Code-Style)) page from our Wiki on how to install and run it.
97+
98+
* Indicate how are you aiming to update the notebook (i.e. what is the target end column in the tracker). The pull request template has a template for this.

README.rst

+25-21
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,30 @@ Check out the `getting started guide <http://docs.pymc.io/notebooks/getting_star
1313
using Binder!
1414
For questions on PyMC3, head on over to our `PyMC Discourse <https://discourse.pymc.io/>`__ forum.
1515

16+
Contributing
17+
============
18+
19+
If you are interested in contributing to the example notebooks hosted here, please read the
20+
`contributing guide <https://github.com/pymc-devs/pymc-examples/blob/main/CONTRIBUTING.md>`__
21+
Also read our `Code of Conduct <https://github.com/pymc-devs/pymc-examples/blob/main/CODE_OF_CONDUCT.md>`__ guidelines for a better contributing experience.
22+
23+
24+
Contact
25+
=======
26+
27+
We are using `discourse.pymc.io <https://discourse.pymc.io/>`__ as our main communication channel. You can also follow us on `Twitter @pymc_devs <https://twitter.com/pymc_devs>`__ for updates and other announcements.
28+
29+
To ask a question regarding modeling or usage of PyMC3 we encourage posting to our Discourse forum under the `“Questions” Category <https://discourse.pymc.io/c/questions>`__. You can also suggest feature in the `“Development” Category <https://discourse.pymc.io/c/development>`__.
30+
31+
To report an issue, please use the following:
32+
33+
- `PyMC3 Examples - Issue Tracker <https://github.com/pymc-devs/pymc-examples/issues>`__. For
34+
issues about the example notebooks, errors in the example codes, outdated information, improvement
35+
suggestions...
36+
- `PyMC3 - Issue Tracker <https://github.com/pymc-devs/pymc3/issues>`__. For issues, bugs or
37+
feature requests related to the PyMC3 library itself.
38+
39+
Finally, if you need to get in touch for non-technical information about the project, `send us an e-mail <[email protected]>`__.
1640
Getting started
1741
===============
1842

@@ -58,26 +82,6 @@ Papers citing PyMC3
5882

5983
See `Google Scholar <https://scholar.google.de/scholar?oi=bibs&hl=en&authuser=1&cites=6936955228135731011>`__ for a continuously updated list.
6084

61-
Contributors
62-
============
63-
64-
See the `GitHub contributor
65-
page <https://github.com/pymc-devs/pymc-examples/graphs/contributors>`__. Also read our `Code of Conduct <https://github.com/pymc-devs/pymc3/blob/master/CODE_OF_CONDUCT.md>`__ guidelines for a better contributing experience.
66-
67-
68-
Contact
69-
=======
70-
71-
We are using `discourse.pymc.io <https://discourse.pymc.io/>`__ as our main communication channel. You can also follow us on `Twitter @pymc_devs <https://twitter.com/pymc_devs>`__ for updates and other announcements.
72-
73-
To ask a question regarding modeling or usage of PyMC3 we encourage posting to our Discourse forum under the `“Questions” Category <https://discourse.pymc.io/c/questions>`__. You can also suggest feature in the `“Development” Category <https://discourse.pymc.io/c/development>`__.
74-
75-
To report an issue, please use the following:
76-
77-
- `PyMC3 Examples - Issue Tracker <https://github.com/pymc-devs/pymc-examples/issues>`__.
78-
- `PyMC3 - Issue Tracker <https://github.com/pymc-devs/pymc3/issues>`__.
79-
80-
Finally, if you need to get in touch for non-technical information about the project, `send us an e-mail <[email protected]>`__.
8185

8286
Support
8387
=======
@@ -126,4 +130,4 @@ Sponsors
126130
.. |tidelift_learn| image:: https://img.shields.io/badge/-learn%20more-2dd160.svg?color=orange&labelColor=58595b&style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAOCAYAAADJ7fe0AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KTMInWQAAAVhJREFUKBV1kj0vBFEUhmd2sdZHh2IlGhKFQuOviEYiNlFodCqtUqPxA%2FwCjUTnDygkGoVERFQaZFlE9nreO%2BdM5u5wkifvuee892Pu3CyEcA0DeIc%2B9IwftJsR6Cko3uCjguZdjuBZhhwmYDjGrOC96WED41UtsgEdGEAPlmAfpuAbFF%2BFZLfoMfRBGzThDtLgePPwBIpdddGzOArhPHUXowbNptE2www6a%2Fm96Y3pHN7oQ1s%2B13pxt1ENaKzBFWyWzaJ%2BRO0C9Jny6VPSoKjLVbMDC5bn5OPuJF%2BBSe95PVEMuugY5AegS9fCh7BedP45hRnj8TC34QQUe9bTZyh2KgvFk2vc8GIlXyTfsvqr6bPpNgv52ynnlomZJNpB70Xhl%2Bf6Sa02p1bApEfnETwxVa%2Faj%2BW%2FFtHltmxS%2FO3krvpTtTnVgu%2F6gvHRFvG78Ef3kOe5PimJXycY74blT5R%2BAAAAAElFTkSuQmCC
127131
:target: https://tidelift.com/subscription/pkg/pypi-pymc3?utm_source=pypi-pymc3&utm_medium=referral&utm_campaign=enterprise
128132
.. |tidelift_demo| image:: https://img.shields.io/badge/-request%20a%20demo-2dd160.svg?color=orange&labelColor=58595b&style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAOCAYAAADJ7fe0AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KTMInWQAAAVhJREFUKBV1kj0vBFEUhmd2sdZHh2IlGhKFQuOviEYiNlFodCqtUqPxA%2FwCjUTnDygkGoVERFQaZFlE9nreO%2BdM5u5wkifvuee892Pu3CyEcA0DeIc%2B9IwftJsR6Cko3uCjguZdjuBZhhwmYDjGrOC96WED41UtsgEdGEAPlmAfpuAbFF%2BFZLfoMfRBGzThDtLgePPwBIpdddGzOArhPHUXowbNptE2www6a%2Fm96Y3pHN7oQ1s%2B13pxt1ENaKzBFWyWzaJ%2BRO0C9Jny6VPSoKjLVbMDC5bn5OPuJF%2BBSe95PVEMuugY5AegS9fCh7BedP45hRnj8TC34QQUe9bTZyh2KgvFk2vc8GIlXyTfsvqr6bPpNgv52ynnlomZJNpB70Xhl%2Bf6Sa02p1bApEfnETwxVa%2Faj%2BW%2FFtHltmxS%2FO3krvpTtTnVgu%2F6gvHRFvG78Ef3kOe5PimJXycY74blT5R%2BAAAAAElFTkSuQmCC
129-
:target: https://tidelift.com/subscription/request-a-demo?utm_source=pypi-pymc3&utm_medium=referral&utm_campaign=enterprise
133+
:target: https://tidelift.com/subscription/request-a-demo?utm_source=pypi-pymc3&utm_medium=referral&utm_campaign=enterprise

0 commit comments

Comments
 (0)