Skip to content

Commit

Permalink
Merge pull request #6260 from Ayush23Dash/improve-documentation-and-r…
Browse files Browse the repository at this point in the history
…eadme-for-future-contributors

Improve Readme for future Contributors to codebase
  • Loading branch information
limzykenneth committed Aug 28, 2023
2 parents 138c459 + 01b6332 commit 45ada83
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 14 deletions.
24 changes: 15 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,6 @@ Make your first sketch in the [p5.js Editor](https://editor.p5js.org/)! Learn mo

To get the complete p5.js library on your own computer, you can [download it here](https://p5js.org/download). If you are interested in the most recent, less stable version, or even simply in (**new!**) certain components of p5.js, you can clone this repository and run `grunt` from the command line to generate the library from source. See the [contributor docs](https://p5js.org/contributor-docs/#/) for more information about our build process.

## Issues

If you have found a bug in the p5.js library, you can file it here under the [“issues” tab](https://github.com/processing/p5.js/issues). You can also request new features here. A set of templates for reporting issues and requesting features are provided to assist you (and us!). p5.js is maintained mostly by volunteers, so we thank you for your patience as we try to address your issues as soon as we can. Please post in the correct repository if you can:

* p5.js general: [https://github.com/processing/p5.js/issues](https://github.com/processing/p5.js/issues)
* p5.sound: [https://github.com/processing/p5.js-sound/issues](https://github.com/processing/p5.js-sound/issues)
* p5.js website: [https://github.com/processing/p5.js-website/issues](https://github.com/processing/p5.js-website/issues)
* p5.js web editor: [https://github.com/processing/p5.js-web-editor/issues](https://github.com/processing/p5.js-web-editor/issues)


## Learning

Expand All @@ -50,6 +41,21 @@ Check out [p5js.org](https://p5js.org) for lots more! Here are some quick-links
* [Libraries](https://p5js.org/libraries): Extend p5 functionality to interact with HTML, manipulate sound, and more!
* [The Coding Train p5.js Tutorials](https://thecodingtrain.com/beginners/p5js/): A huge trove of tutorials created by Dan Shiffman and friends


## Issues

If you have found a bug in the p5.js library, you can file it here under the [“issues” tab](https://github.com/processing/p5.js/issues). You can also request new features here. A set of templates for reporting issues and requesting features are provided to assist you (and us!). p5.js is maintained mostly by volunteers, so we thank you for your patience as we try to address your issues as soon as we can. Please post in the correct repository if you can:

* p5.js general: [https://github.com/processing/p5.js/issues](https://github.com/processing/p5.js/issues)
* p5.sound: [https://github.com/processing/p5.js-sound/issues](https://github.com/processing/p5.js-sound/issues)
* p5.js website: [https://github.com/processing/p5.js-website/issues](https://github.com/processing/p5.js-website/issues)
* p5.js web editor: [https://github.com/processing/p5.js-web-editor/issues](https://github.com/processing/p5.js-web-editor/issues)


## Get Started for Developers
A quick Getting Started with the Build and setting up the repository could be found [here](https://p5js.org/contributor-docs/#/contributor_guidelines?id=quick-get-started-for-developers)


## Stewards

Stewards are contributors that are particularly involved, familiar, or responsive to certain areas of the project. Their role is to help provide context and guidance to others working on p5.js. If you have a question about contributing to a particular area, you can tag the listed steward in an issue or pull request. They may also weigh in on feature requests and guide the overall direction of their area, with the input of the community. You can read more about the organization of the project at [contributor_docs/organization.md](https://github.com/processing/p5.js/blob/main/contributor_docs/organization.md), p5.js [Contributor Guidelines](https://github.com/processing/p5.js/blob/main/contributor_docs/contributor_guidelines.md), and p5.js [Steward Guidelines](https://github.com/processing/p5.js/blob/main/contributor_docs/steward_guidelines.md).
Expand Down
28 changes: 23 additions & 5 deletions contributor_docs/contributor_guidelines.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ This is a fairly long and comprehensive document but we will try to deliniate al
- [New Feature Request](#new-feature-request)
- [Discussion](#discussion)
- [Working on p5.js codebase](#working-on-p5js-codebase)
- [Using the GitHub edit functionality](#using-the-github-edit-functionality)
- [Quick Get Started For Developers](#quick-get-started-for-developers)
- [Using the Github edit functionality](#using-the-github-edit-functionality)
- [Forking p5.js and working from your fork](#forking-p5js-and-working-from-your-fork)
- [Codebase breakdown](#codebase-breakdown)
- [Build setup](#build-setup)
Expand All @@ -37,7 +38,6 @@ This is a fairly long and comprehensive document but we will try to deliniate al
The majority of the activity on p5.js' GitHub repositories (repo for short) happens in issues and issues will most likely be the place to start your contribution process as well.

## What are issues?

Issue is the generic name for a post on GitHub that aims to describe, well, an issue. This "issue" can be a bug report, a request to add new feature, a discussion, a question, an announcement, or anything that works as a post. Comments can be added below each issue by anyone with a GitHub account, including bots! It is the place where contributors dicuss topics related to the development of the project in the repo.

While an issue can be opened for a wide variety of reasons, for p5.js' repos we usually only use issues to discuss p5.js source code development related topics. Topics such as debugging your own code, inviting collaborators to your project, or other unrelated topics should be discuss either on the [forum](https://discourse.processing.com) or on other platforms.
Expand Down Expand Up @@ -93,8 +93,26 @@ Similarly, if you have come across an issue or joined in discussions of an issue

You should not "jump the queue" by filing a PR for an issue that either someone else has indicated willingness to submit a contribution or has already been assigned to someone else. We will always prioritise "first assigned first serve" order for accepting code contribution for an issue, if you file a PR for an issue while someone else is still working on the same issue, your PR will be closed. If you see that it has been a few months since last activity on an issue with an assigned individual, you can check in with them by leaving a polite comment on the issue asking for progress and if they need help with the implementation. We generally allow for fairly long time frame for people to work on their contributions as we understand that most people will often be working on a volunteer basis or it simply takes more time for them to work on the feature; similarly, you should work at your own pace and be confident that there is no hard time limit on how long you can spend working on something. That being said, if you are having trouble with any aspect of your code contribution, do not hesitate to ask for help in the issue, the stewards and maintainers, as well as members of our community, will do their best to guide you!

## Using the GitHub edit functionality
When viewing a file on the GitHub web interface, near the top of the content of the file you are viewing will be a pencil icon button. This button is a convenient edit feature provided by GitHub that simplifies many of the processes we will be covering below and can be used to make quick and simple edits to the file you are viewing.
## Quick Get Started For Developers
If you want to work/contribute to p5.js'🌸 codebase as a developer, either directly for improving p5.js or for improving it's sub projects like [Friendly Error Systems](https://github.com/processing/p5.js/blob/main/contributor_docs/friendly_error_system.md), you can follow the following steps directly :

1. Create a fork of p5.js.
2. Clone your locally created fork.
3. Add upstream using the following command :
`git remote add upstream https://github.com/processing/p5.js`
[More information on Configuring a remote repository for a fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-repository-for-a-fork)
4. Make sure your machine has [NodeJs](https://nodejs.org/en/download) installed, check it with the following command :
`node -v`
5. Run : `npm ci`
6. Create a git branch of the `main` branch having a descriptive branch name using :
`git checkout -b [branch_name]`
7. As you start making changes to the codebase, frequently run :
`npm test`
(it takes time, but it ensures that existing behaviours are not being broken)
8. Once it is done, you can commit the changes and create a [Pull Request](https://p5js.org/contributor-docs/#/./contributor_guidelines?id=pull-requests).

## Using the Github edit functionality
When viewing a file on the Github web interface, near the top of the content of the file you are viewing will be a pencil icon button. This button is a convenient edit feature provided by Github that simplifies many of the processes we will be covering below and can be used to make quick and simple edits to the file you are viewing.

However, it is not recommended to use this feature other than for very simple changes. One of the main reason for this is that for more complex changes to the source code, it should be built and tested locally before being filed as a PR. Using a local development environment is also often much more fluent for most as compared to the basic editing environment provided by this edit functionality.

Expand Down Expand Up @@ -228,4 +246,4 @@ Once a steward has reviewed your PR, one of two things may happen: 1. Your PR is

If changes are requested of your PR and you are able to make those changes, follow the [same process as before](#git-workflow) but just continue from your local copy of the repo and relevant branch, make those changes, commit them into git, and push them to your forked remote repo. Once you have pushed additional commits to your forked remote repo, you will see that the new commits automatically show up in the PR. Leave a comment in the PR to let the reviewer know you have made the changes requested and if no additional changes are needed, your PR will be merged!

---
---

0 comments on commit 45ada83

Please sign in to comment.