Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add contribution guidelines #428

Merged
merged 33 commits into from Aug 11, 2019
Merged
Show file tree
Hide file tree
Changes from 26 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
bcf1e82
Update docs on bugs and changesets
bahiirwa Jun 28, 2019
787848f
Clean up Readme.md
bahiirwa Jun 29, 2019
4485bc2
Update PULL_REQUEST_TEMPLATE.md
bahiirwa Jun 29, 2019
9f6b842
Create contributing.md
bahiirwa Jun 29, 2019
37ae428
Update README.md
bahiirwa Jun 29, 2019
6978c5a
Update contributing.md
bahiirwa Jun 29, 2019
aa75eb4
Update contributing.md
bahiirwa Jun 29, 2019
d73f715
Update and rename contributing.md to CONTRIBUTING.md
bahiirwa Jun 29, 2019
402bcd6
Add proper Code of conduct from Website
bahiirwa Jul 3, 2019
107ede6
Proper linking
bahiirwa Jul 3, 2019
0f272ba
Hierarchy improvements for visual
bahiirwa Jul 3, 2019
c8f8027
Update CONTRIBUTING.md
bahiirwa Jul 15, 2019
c83f299
Fix Typo
bahiirwa Jul 15, 2019
7d209c6
Update CONTRIBUTING.md
bahiirwa Jul 15, 2019
3ffad2b
Update PULL_REQUEST_TEMPLATE.md
bahiirwa Jul 15, 2019
1224e65
Merge branch 'develop' into documentation
bahiirwa Jul 31, 2019
0621ae8
Update ISSUE_TEMPLATE.md
bahiirwa Jul 31, 2019
c246a3a
Update PULL_REQUEST_TEMPLATE.md
bahiirwa Jul 31, 2019
6072aa5
Add details on wpdirectory
bahiirwa Jul 31, 2019
13cc94f
Update CONTRIBUTING.md
bahiirwa Jul 31, 2019
234b86c
Update introductory section
nylen Aug 1, 2019
a92ff56
Update communication channels
nylen Aug 1, 2019
02534f1
Update review criteria
nylen Aug 1, 2019
39e7fca
Ideas for what to work on
nylen Aug 1, 2019
36ccd7e
Update backporting section
nylen Aug 1, 2019
b3cc714
Add main header
nylen Aug 1, 2019
1b5390d
A bit shorter
nylen Aug 1, 2019
dd1a73b
Readme cleanup
nylen Aug 11, 2019
001b9fe
Improve wording about the forums
nylen Aug 11, 2019
f00459c
Update wording about reviews/testing
nylen Aug 11, 2019
9599e39
Add section about automated tests
nylen Aug 11, 2019
2b00439
Clean up issue/PR templates
nylen Aug 11, 2019
341d941
Minor tweaks
nylen Aug 11, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
57 changes: 57 additions & 0 deletions .github/CONTRIBUTING.md
@@ -0,0 +1,57 @@
# Contributions

ClassicPress is a volunteer-driven open source project that thrives when we have multiple contributors working towards a common goal.

Before contributing to this repository, please read our [Democracy page](https://www.classicpress.net/democracy/) to understand how we make decisions about what is included in ClassicPress, and our [roadmap](https://www.classicpress.net/roadmap/) to see what's already planned for the next couple of releases.

The **petitions process** mentioned in that document is very important to help us prioritize new features based on the needs of our users. There are some [exceptions](https://www.classicpress.net/democracy/#democracy-exceptions) to this process for minor changes and bugfixes, but generally speaking it is a good idea to create an issue or a forum thread, or ask in Slack, before undertaking a change.

Also, please be sure to follow our [code of conduct](https://www.classicpress.net/democracy/#democracy-conduct) in all interactions with ClassicPress community members.

## Communication channels

We encourage you to join and ask any questions you have about contributing.

- [Slack](https://www.classicpress.net/join-slack/) - great for real-time chat, posting screenshots and asking questions about anything you're stuck on. Or just socializing.
- [Petitions website](https://petitions.classicpress.net/) - for proposing new features or major changes for consideration by the community.
- [GitHub issues](https://github.com/ClassicPress/ClassicPress/issues) - for proposing or discussing bugfixes, or minor improvements. Generally it is a good idea to create a petition for anything that may take a significant amount of time or that may have backwards compatibility implications.
- [Forums](https://forums.classicpress.net/) - a lot of good info and discussion here too
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Our forums are a great resource, I want to say something better than "a lot of good info and discussion here too". In what situations would someone want to make a forum thread rather than using one of the other communication channels?


## Review criteria

When evaluating bug fixes and other code changes in pull requests (PRs), we look for these things, ideally all of them:

1. The change impacts existing ClassicPress users. Otherwise, there are literally thousands of things we could look at, but we need to prioritize our development time. Right now the best tool we have for this is the [petitions site](https://petitions.classicpress.net/).
2. The change is not going to break backward compatibility, and has minimal effects on the existing plugin and theme ecosystem. A good way to evaluate the effects of a change on plugins or themes is to do a search on https://wpdirectory.net. (Major changes are also a possibility but require a planning effort around when and how they will be released, as well as agreement from the community per our [democratic process](https://www.classicpress.net/democracy/).
3. The change has automated tests.
4. We understand the code change very well or can ask questions of someone who understands it very well.

If your change meets all of these criteria then we will most likely accept it.

We take a lot of care with our platform, and ClassicPress is maintained by volunteers in our free time. This means there may be some delays in merging pull requests.

## What to work on?

If you're not sure where to start contributing, here are some ideas:

- Review and test [existing PRs](https://github.com/ClassicPress/ClassicPress/pulls), especially looking at how well they fit the criteria described above.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this sentence does a good job of stating how important reviewing and testing are. We need to be thorough and careful with the changes we make, and the more eyes we can get on our PRs the better.

- Bugfixes, you can find a list of known bugs on our [issues page](https://github.com/ClassicPress/ClassicPress/issues).
- Issues with the [`help wanted`](https://github.com/ClassicPress/ClassicPress/labels/help%20wanted) or [`good first issue`](https://github.com/ClassicPress/ClassicPress/labels/good%20first%20issue) labels.
- [Planned](https://petitions.classicpress.net/?view=planned) or [most wanted](https://petitions.classicpress.net/?view=most-wanted) feature requests from our petitions site.
- Exploratory PRs with your own suggested changes, but please remember these will be subject to review to make sure they are in line with the project's direction.

## Backporting changes from WordPress

ClassicPress version `1.0.0` is a fork of WordPress `4.9.x`, and since then, a number of changes have been made to WordPress for performance, bugfixes or new features.

ClassicPress is mainly committed to keeping compatibility with the WordPress 4.9 branch. However, we're also open to merging bugfixes and enhancements from later versions of WordPress, **as long as they meet the criteria listed above**.

There are some changes that we already know we want to backport because they fit into our plans for future versions of ClassicPress. You can find some examples under the [`WP backport` label](https://github.com/ClassicPress/ClassicPress/labels/WP%20backport).

Otherwise, if you're interested in backporting a change from WordPress, then please explain in a pull request or issue what the change is, how it works, and why it's something that makes sense for ClassicPress to adopt. Often there is a lot of good discussion about each change in the relevant WordPress Trac tickets, and it makes the maintainers' job much easier to see this discussion summarized and linked.

If you're not sure about any of that, then it's a good idea to ask first. A good way is to create an issue for the specific change you're interested in, along with links to the relevant WordPress changesets and tickets, and any other information you have about how the change works.

Finally, when you're ready to backport a code change, identify the WordPress **changeset number** that you'd like to port, and run the `bin/backport-wp-commit.sh` script to apply the change to the code. If you're porting multiple changesets, you can use the `-c` option to this script to apply all the changesets to the same branch. With each commit there may be some merge conflicts to resolve.

Using this script for all backports saves time for you and for the maintainers, and it also helps us track which WordPress changes we've already included. You can see a list of those changes [here](https://bots.classicpress.net/).
bahiirwa marked this conversation as resolved.
Show resolved Hide resolved
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Expand Up @@ -9,6 +9,8 @@ https://petitions.classicpress.net/

For more details about our governance and change planning process, see:
https://www.classicpress.net/democracy/

Please find guidelines on how to contribute to this project in our [CONTRIBUTING.md](../CONTRIBUTING.md)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd like to take this further. This should be a checkbox at the top of the issue template, and we should take a look at what can be removed from the template once that's added.

-->

## Expected behavior
Expand Down
4 changes: 3 additions & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Expand Up @@ -9,6 +9,8 @@ https://petitions.classicpress.net/

For more details about our governance and change planning process, see:
https://www.classicpress.net/democracy/

Please find guidelines on how to contribute to this project in our [CONTRIBUTING.md](../CONTRIBUTING.md)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd like to take this further. This should be a checkbox at the top of the PR template, and we should take a look at what can be removed from the template once that's added.

-->

## Description
Expand All @@ -25,7 +27,7 @@ If it fixes an open issue, please link to the issue here.

## How has this been tested?
<!--
Please describe in detail how you tested your changes.
Please describe in detail how you tested your changes. If you have challenges writing tests, please consult the document linked. https://make.wordpress.org/core/handbook/testing/automated-testing/phpunit/ or reach the community on [slack](https://join.slack.com/t/classicpress/shared_invite/enQtNDIwNjY2OTg1MjAxLWJiM2U2NmY3ZjFlZjQ4Zjk2OGI4ZTg3NzY1ZTU3NzI3OTRjMTU0YzAzOWUyZmZlODgyOWE1YTViYjcwY2Y5YzI)
Copy link
Contributor

@nylen nylen Aug 1, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's use https://www.classicpress.net/join-slack/ instead. It redirects to the long invite link, but it's shorter and we can update the invite link later if needed.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also I wonder if this should go in the main contributing document instead?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good idea, better add there the petitions link instead (people start pr without check it)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Petitions link doesn't make sense under "How has this been tested". Better to point people to the contribution documentation which explains how the petitions work.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spot on

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Marking as unresolved, this link still needs an update.


Include details of your testing environment, and the tests you ran to see how
your change affects other areas of the code, etc.
Expand Down
6 changes: 3 additions & 3 deletions README.md
Expand Up @@ -6,7 +6,7 @@

ClassicPress is a hard fork of WordPress that serves the CMS-based business website market. We empower the people who create and support these websites, including plugin and theme developers.

We welcome contributions of all kinds! Have a look at
We welcome contributions of all kinds! Have a look at
[this repository's open issues](https://github.com/ClassicPress/ClassicPress/issues)
and
[our v1 project board](https://github.com/orgs/ClassicPress/projects/1),
Expand All @@ -23,9 +23,9 @@ For more information, see:

This project exists thanks to all the people who contribute and who have contributed in the past, whether as part of the long history of thousands of contributions to WordPress from many different people, or as contributions to ClassicPress itself.

You can see a list of WordPress contributors by going to the [WordPress releases page](https://wordpress.org/news/category/releases/) and looking at the credits for each release. All changes in WordPress 4.9.8 and earlier are part of ClassicPress, along with selected changes from later releases.
We are working on several ways to recognize people for their contributions to ClassicPress. In the meantime, you can view a list of code contributions [here on GitHub](https://github.com/ClassicPress/ClassicPress/compare/LAST_WP_COMMIT...develop).

We are working on several ways to recognize people for their contributions to ClassicPress. In the meantime, you can view a list of code contributions [here on GitHub](https://github.com/ClassicPress/ClassicPress/compare/LAST_WP_COMMIT...develop).
Would you like to help? [Here is how you can start](../documentation/.github/CONTRIBUTING.md).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's switch these two paragraphs ("Would you like to help" before "We are working on...").


## Donate to support ClassicPress

Expand Down