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
Changes from 26 commits
bcf1e82
787848f
4485bc2
9f6b842
37ae428
6978c5a
aa75eb4
d73f715
402bcd6
107ede6
0f272ba
c8f8027
c83f299
7d209c6
3ffad2b
1224e65
0621ae8
c246a3a
6072aa5
13cc94f
234b86c
a92ff56
02534f1
39e7fca
36ccd7e
b3cc714
1b5390d
dd1a73b
001b9fe
f00459c
9599e39
2b00439
341d941
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
|
||
## 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. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 | ||
|
@@ -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) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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. There was a problem hiding this comment. Choose a reason for hiding this commentThe 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? There was a problem hiding this comment. Choose a reason for hiding this commentThe 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) There was a problem hiding this comment. Choose a reason for hiding this commentThe 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. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Spot on There was a problem hiding this comment. Choose a reason for hiding this commentThe 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. | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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), | ||
|
@@ -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). | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 | ||
|
||
|
There was a problem hiding this comment.
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?