From daf672c2e8b7da7a6f1b0dbea2e3968aef2613ef Mon Sep 17 00:00:00 2001 From: Dave Pagurek Date: Thu, 14 Mar 2024 20:16:05 -0400 Subject: [PATCH 1/3] Add short descriptions to contributor docs --- contributor_docs/access.md | 2 + contributor_docs/archive/custom_p5_build.md | 2 + .../archive/internationalization.md | 2 + contributor_docs/archive/issue_labels.md | 2 + .../archive/supported_browsers.md | 2 + .../contributing_documentation.md | 41 +++++++++++++++++++ .../contributing_to_the_p5.js_reference.md | 2 + contributor_docs/contributor_guidelines.md | 2 + contributor_docs/creating_libraries.md | 2 + contributor_docs/design_principles.md | 12 ++++++ contributor_docs/documentation_style_guide.md | 2 + contributor_docs/fes_contribution_guide.md | 2 + contributor_docs/friendly_error_system.md | 2 + contributor_docs/release_process.md | 2 + contributor_docs/steward_guidelines.md | 2 + contributor_docs/unit_testing.md | 2 + contributor_docs/web_accessibility.md | 2 + contributor_docs/webgl_contribution_guide.md | 2 + contributor_docs/webgl_mode_architecture.md | 2 + 19 files changed, 87 insertions(+) create mode 100644 contributor_docs/contributing_documentation.md create mode 100644 contributor_docs/design_principles.md diff --git a/contributor_docs/access.md b/contributor_docs/access.md index 02c23ca5d4..788ead722b 100644 --- a/contributor_docs/access.md +++ b/contributor_docs/access.md @@ -1,3 +1,5 @@ + + # Our Focus on Access At the [2019 Contributors Conference](https://p5js.org/community/contributors-conference-2019.html), p5.js made the commitment to only add new features that increase access (inclusion and accessibility). We will not accept feature requests that don't support these efforts. We commit to the work of acknowledging, dismantling, and preventing barriers. This means considering intersecting[^1] experiences of diversity that can impact access and participation. These include alignments of gender, race, ethnicity, sexuality, language, location, et cetera. We center the needs of marginalized groups over the continued comfort of those privileged within the p5.js community. We are collectively exploring the meaning of access. We are learning how to practice and teach access. We choose to think of access through expansive, intersectional, and coalitionary frameworks. This commitment is part of the core values of p5.js outlined in our [Community Statement](https://p5js.org/community/). diff --git a/contributor_docs/archive/custom_p5_build.md b/contributor_docs/archive/custom_p5_build.md index 3e4ee78fb1..04eab00f67 100644 --- a/contributor_docs/archive/custom_p5_build.md +++ b/contributor_docs/archive/custom_p5_build.md @@ -1,3 +1,5 @@ + + # Creating a custom build of p5.js with select components ## Overview diff --git a/contributor_docs/archive/internationalization.md b/contributor_docs/archive/internationalization.md index 0d560445d3..4d75cb124e 100644 --- a/contributor_docs/archive/internationalization.md +++ b/contributor_docs/archive/internationalization.md @@ -1,3 +1,5 @@ + + # 🌐 Internationalization [Internationalization](https://developer.mozilla.org/docs/Glossary/Internationalization_and_localization) (sometimes abbreviated "i18n") refers to supporting multiple languages in a software project. This often means maintaining translations of text strings used in the project and letting users choose which translation they receive (or detecting it from their browser settings). diff --git a/contributor_docs/archive/issue_labels.md b/contributor_docs/archive/issue_labels.md index 33768978ba..d70bb5fc33 100644 --- a/contributor_docs/archive/issue_labels.md +++ b/contributor_docs/archive/issue_labels.md @@ -1,3 +1,5 @@ + + # p5.js issue labels p5.js uses a set of labels to help sort and organize issues. diff --git a/contributor_docs/archive/supported_browsers.md b/contributor_docs/archive/supported_browsers.md index b9e7dde67e..28fba0e4f1 100644 --- a/contributor_docs/archive/supported_browsers.md +++ b/contributor_docs/archive/supported_browsers.md @@ -1,3 +1,5 @@ + + # Supported browsers ## Our stated goal diff --git a/contributor_docs/contributing_documentation.md b/contributor_docs/contributing_documentation.md new file mode 100644 index 0000000000..75c4685b86 --- /dev/null +++ b/contributor_docs/contributing_documentation.md @@ -0,0 +1,41 @@ + + +# Contributing Documentation + +Documentation is essential for new learners and experienced programmers alike. It helps make our community inclusive by extending a friendly hand to those who are less familiar with p5.js. It also helps us find the bugs and issues with the code itself, because we test and try things out as we document. + +There are several ways to contribute to documentation: + +## ☝️ Make changes +If you're just getting started, one really helpful way you can contribute is by improving our documentation. If you notice a typo, a missing or broken example, or a function description that is confusing, here are some things you can do: +* If you are just correcting a small typo, feel free to go ahead and work on it and send in a PR when you're finished! +* If you don't feel like fixing it yourself, that's alright. Let us know by [opening an issue](https://github.com/processing/p5.js/issues). +* If you're unsure about anything, [open an issue](https://github.com/processing/p5.js/issues) anyway! + +## 🗯 Contribute to the reference +Read through the [reference](http://p5js.org/reference/), and look for typos, broken examples, or confusing documentation. If it's a straightforward fix, go ahead and work on it! If it's a more involved question that requires discussion, create an [issue](https://github.com/processing/p5.js/issues/new). +* Here are instructions for [getting setup for the first time with the p5.js repo](./README.md). +* The reference is built from the inline documentation in the source code (found in the `src/` folder). +* Here is information on [how to update or add inline documentation and examples](./inline_documentation.md). +* Here is the [documentation style guide](./documentation_style_guide.md) for writing and code samples. +* If you find errors with the [spanish documentation](http://p5js.org/es), there are instructions to update this [here](https://github.com/processing/p5.js-website#internationalization-i18n-and-structure). +* Community-maintained Typescript definitions are [here](https://github.com/p5-types/p5.ts). + +## ✨ Make examples +While the examples in the reference are meant to be very simplistic snippets of code, it is also useful to have longer, more complex examples. +* Currently we are working on porting the examples from the [processing examples page](https://processing.org/examples/) to the [p5.js examples page](http://p5js.org/examples). If you would like to help with this, please see the instructions [here](https://github.com/processing/p5.js-website/blob/main/contributor_docs/Adding_examples.md). +* Alternatively, you can create your own set of examples and publish them independently anywhere you like. If you share them online tag [@p5xjs](https://twitter.com/p5xjs) or email [hello@p5js.org](mailto:hello@p5js.org) to let us know, and we will share far and wide! This [guide to embedding p5.js](https://github.com/processing/p5.js/wiki/Embedding-p5.js) may be useful for posting your examples online. +* If you find bugs in p5.js along the way, please log them in the [issues](https://github.com/processing/p5.js/issues). + +## 👯 Make tutorials +* If you are new to p5.js, this is a great place to start. Try making something yourself, then making a tutorial to teach others to do it too. +* Currently we are working on porting the tutorials from the [processing tutorials page](https://processing.org/tutorials) to the [p5.js learn page](http://p5js.org/learn). If you would like to help with this, please see the tutorial on making tutorials [here](https://p5js.org/learn/tutorial-guide.html). +* We also welcome tutorials on different subjects. You can publish these anywhere, in any format you like. If you share them online tag [@p5xjs](https://twitter.com/p5xjs) or email [hello@p5js.org](mailto:hello@p5js.org) to let us know, and we will share far and wide! We especially encourage tutorials created with a specific audience or use case in mind (ex: p5 for journalists, activists, poets, kids, seniors, dreamers, in a different language, etc). We like to consider, who does not already feel welcome or included in the p5 community, and can we use learning as an invitation? What is the language you use to communicate with your audience and make them feel known? Feel free to be experimental with your format. Check out [Sharon De La Cruz's talk on Code Slang](https://www.youtube.com/watch?v=CFT6w9NKfCs) for inspiration. +* If you find bugs in p5.js along the way, please log them in the [issues](https://github.com/processing/p5.js/issues). + +## 👉 Getting started +* Read the [p5.js community statement](http://p5js.org/community/) +* Optional: Check out the [contributor docs](./README.md) to get an overview of the repository and learn how to build the code (if relevant for you). +* All discussion happens on GitHub issues, so there's no slack/gitter/etc channel you need to join. +* Add your name to the [contributors list](https://github.com/processing/p5.js#contributors) in the readme.md file! Instructions [here](https://github.com/processing/p5.js/issues/2309). +* And of course, if you're more of a bug fixer kind of person, feel free to jump into any of the [issues](https://github.com/processing/p5.js/issues)! diff --git a/contributor_docs/contributing_to_the_p5.js_reference.md b/contributor_docs/contributing_to_the_p5.js_reference.md index d72a3208cd..283c97f6f2 100644 --- a/contributor_docs/contributing_to_the_p5.js_reference.md +++ b/contributor_docs/contributing_to_the_p5.js_reference.md @@ -1,3 +1,5 @@ + + # Contributing to the p5.js Reference In p5.js, we author the code reference you see on the [reference](https://p5js.org/reference/) page on the p5.js website by including them alongside the library’s source code as specialized comments. These reference comments include the description, the function’s signature (its parameters and return value), and usage examples. In other words, the content on each p5.js function/variable’s reference page is built from the reference comments in the source code. diff --git a/contributor_docs/contributor_guidelines.md b/contributor_docs/contributor_guidelines.md index 80a3d4c9fb..cf1d9c9854 100644 --- a/contributor_docs/contributor_guidelines.md +++ b/contributor_docs/contributor_guidelines.md @@ -1,3 +1,5 @@ + + # Contributor Guidelines Welcome to the contributor guidelines! This document is for new contributors looking to contribute code to p5.js, contributors looking to refresh their memories on some technical steps, or just about anything else to do with code contributions to p5.js. diff --git a/contributor_docs/creating_libraries.md b/contributor_docs/creating_libraries.md index 841d1e23c9..3bd66a4055 100644 --- a/contributor_docs/creating_libraries.md +++ b/contributor_docs/creating_libraries.md @@ -1,3 +1,5 @@ + + # Creating an Addon Library A p5.js addon library is JavaScript code that extends or adds to the p5.js core functionality. While p5.js itself already provides a wide range of functionality, it doesn’t aim to cover everything you can do with JavaScript and the Web API. Addon libraries let you extend p5.js without needing to incorporate the features into p5.js. This guide will take you through the steps of creating an addon library that loads a simple CSV file by implementing a `loadCSV()` function. diff --git a/contributor_docs/design_principles.md b/contributor_docs/design_principles.md new file mode 100644 index 0000000000..0c1b787522 --- /dev/null +++ b/contributor_docs/design_principles.md @@ -0,0 +1,12 @@ + + +# Design principles for p5.js + +- **Beginner Friendly** The p5.js API aims to be friendly to beginner coders, offering a low barrier to creating interactive and visual web content with cutting-edge HTML5/canvas/DOM APIs. + +- **Educational** p5.js is focused on an API and curriculum that supports educational use, including a complete reference to the API with supporting examples, as well as tutorials and sample class curricula that introduces core creative coding principles in a clear and engaging order. + +- **JavaScript and its community** p5.js aims to make web development practices more accessible to beginners by modeling proper JavaScript design patterns and usage, while abstracting them where necessary. As an open source library, p5.js also includes the wider JavaScript community in its creation, documentation and dissemination. + +- **Processing and its community** p5.js is a direct response to the Processing language and its community, and aims to make the transition from Processing to JavaScript easy and clear. Supporting the Processing API and community is a priority for p5.js, while also expanding to include the new possibilities of creative coding on the web, and taking a Processing-style approach to exposing that API to beginners. + diff --git a/contributor_docs/documentation_style_guide.md b/contributor_docs/documentation_style_guide.md index 973308a9a4..7dbf721621 100644 --- a/contributor_docs/documentation_style_guide.md +++ b/contributor_docs/documentation_style_guide.md @@ -1,3 +1,5 @@ + + # Documentation Style Guide Hello! Welcome to the guidelines for writing p5.js documentation. This document is a remix of the following resources: diff --git a/contributor_docs/fes_contribution_guide.md b/contributor_docs/fes_contribution_guide.md index f02733aee9..8796ab9102 100644 --- a/contributor_docs/fes_contribution_guide.md +++ b/contributor_docs/fes_contribution_guide.md @@ -1,3 +1,5 @@ + + # Friendly Errors System Contribution Guide The `core/friendly_errors` folder contains the code for the p5js’ Friendly Error Systems (FES) responsible for generating Friendly Error messages or Friendly Errors. You may have seen Friendly Error messages starting with “`🌸 p5.js says:`” in your console, supplementing default, browser-generated error messages. diff --git a/contributor_docs/friendly_error_system.md b/contributor_docs/friendly_error_system.md index 00f76838d5..591b4e918c 100644 --- a/contributor_docs/friendly_error_system.md +++ b/contributor_docs/friendly_error_system.md @@ -1,3 +1,5 @@ + + # 🌸 p5.js Friendly Error System (FES) ## Overview diff --git a/contributor_docs/release_process.md b/contributor_docs/release_process.md index bad0955221..b2490e6c75 100644 --- a/contributor_docs/release_process.md +++ b/contributor_docs/release_process.md @@ -1,3 +1,5 @@ + + # Release process ## Approach diff --git a/contributor_docs/steward_guidelines.md b/contributor_docs/steward_guidelines.md index bf645aa26f..80eb7cfd37 100644 --- a/contributor_docs/steward_guidelines.md +++ b/contributor_docs/steward_guidelines.md @@ -1,3 +1,5 @@ + + # Steward Guidelines Whether you have just joined us as a steward, are a seasoned maintainer of p5.js, or are somewhere in between, this guide contains information as well as tips and tricks that will help you effectively contribute to p5.js. Most of what is written here are guidelines unless otherwise stated, which means you can adapt the practices shown here to suit your workflow. diff --git a/contributor_docs/unit_testing.md b/contributor_docs/unit_testing.md index d45bfe4117..5caf7164a7 100644 --- a/contributor_docs/unit_testing.md +++ b/contributor_docs/unit_testing.md @@ -1,3 +1,5 @@ + + # Unit Testing Unit testing is an essential part of how a large codebase can stay relatively bug-free. Unit tests are small pieces of code that aim to test individual components of a larger code base for correctness. For example, making sure a function is doing what it should be doing or a class is creating its object instances correctly. diff --git a/contributor_docs/web_accessibility.md b/contributor_docs/web_accessibility.md index 61c7a56dae..c72f16983f 100644 --- a/contributor_docs/web_accessibility.md +++ b/contributor_docs/web_accessibility.md @@ -1,3 +1,5 @@ + + # p5.js Web Accessibility This document describes the structure of p5.js’ web accessibility features for contributors. diff --git a/contributor_docs/webgl_contribution_guide.md b/contributor_docs/webgl_contribution_guide.md index 3a2030e807..c7bc2ab331 100644 --- a/contributor_docs/webgl_contribution_guide.md +++ b/contributor_docs/webgl_contribution_guide.md @@ -1,3 +1,5 @@ + + # WebGL Contribution Guide If you're reading this page, you're probably interested in helping work on WebGL mode. Thank you, we're grateful for your help! This page exists to help explain how we structure WebGL contributions and to offer some tips for making changes. diff --git a/contributor_docs/webgl_mode_architecture.md b/contributor_docs/webgl_mode_architecture.md index 53fb6f4a21..2951b35d1c 100644 --- a/contributor_docs/webgl_mode_architecture.md +++ b/contributor_docs/webgl_mode_architecture.md @@ -1,3 +1,5 @@ + + # p5.js WebGL Mode Architecture This document is intended for contributors and library makers who want to extend the WebGL codebase. If you are looking for help using WebGL mode in your sketches, consider reading the WebGL tutorials [on the p5.js Learn page](https://p5js.org/learn/) instead. From 15a86b541013d78da7e9263ebe2aca02afc3f0f5 Mon Sep 17 00:00:00 2001 From: Dave Pagurek Date: Wed, 20 Mar 2024 09:47:58 -0400 Subject: [PATCH 2/3] Fix images --- contributor_docs/contributor_guidelines.md | 4 ++-- contributor_docs/images/new-branch.png | Bin 0 -> 43583 bytes 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 contributor_docs/images/new-branch.png diff --git a/contributor_docs/contributor_guidelines.md b/contributor_docs/contributor_guidelines.md index cf1d9c9854..cc7b08341f 100644 --- a/contributor_docs/contributor_guidelines.md +++ b/contributor_docs/contributor_guidelines.md @@ -457,11 +457,11 @@ git push -u origin [branch_name] Once the push is complete, you may see a link in the terminal that lets you open a pull request, if not you can navigate to your fork in your web browser, switch to the branch you are working on with the dropdown button on top of the file list, click on "Contribute" then "Open pull request." -![](https://lh7-us.googleusercontent.com/xoqM9gLSFXyw7b3gzG8JlHqoO0zxHALbjSz93E3D0HNh4Jw2wDWdzHKUEchnB6hdjQC7hVn-o5prrXkLw2WiEOoVKJF6kpmyA65sirN0z-Vy3PBY3rCXC5Ifn5stQhcdUQxQS0rsVoW0_hlkfTcY8PQ) +![Screenshot of the git command line response after pushing a new branch. It includes a GitHub link to open a new pull request.](images/new-branch.png) You may also see a button to open a pull request when you visit the p5.js Github repo. Clicking it will also work to open a new pull request. -![Cropped screenshot of the main page of the p5.js GitHub repository web page. A section near the top of the page is a yellow call to action box containing a green button with the text "Compare & pull request".](images/recent-pushes) +![Cropped screenshot of the main page of the p5.js GitHub repository web page. A section near the top of the page is a yellow call to action box containing a green button with the text "Compare & pull request".](images/recent-pushes.png) ### Pull request information diff --git a/contributor_docs/images/new-branch.png b/contributor_docs/images/new-branch.png new file mode 100644 index 0000000000000000000000000000000000000000..3ab297f618c879b41dabc75a7f56ef35e9abac85 GIT binary patch literal 43583 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 UQW9i*dkg%@ORGqgOBlcZKfV|K$p8QV literal 0 HcmV?d00001 From 8785d7920c7ae59a101de0c7ffdfc17bc014e088 Mon Sep 17 00:00:00 2001 From: Dave Pagurek Date: Fri, 22 Mar 2024 19:35:30 -0400 Subject: [PATCH 3/3] Remove deleted files --- .../contributing_documentation.md | 41 ------------------- contributor_docs/design_principles.md | 12 ------ 2 files changed, 53 deletions(-) delete mode 100644 contributor_docs/contributing_documentation.md delete mode 100644 contributor_docs/design_principles.md diff --git a/contributor_docs/contributing_documentation.md b/contributor_docs/contributing_documentation.md deleted file mode 100644 index 75c4685b86..0000000000 --- a/contributor_docs/contributing_documentation.md +++ /dev/null @@ -1,41 +0,0 @@ - - -# Contributing Documentation - -Documentation is essential for new learners and experienced programmers alike. It helps make our community inclusive by extending a friendly hand to those who are less familiar with p5.js. It also helps us find the bugs and issues with the code itself, because we test and try things out as we document. - -There are several ways to contribute to documentation: - -## ☝️ Make changes -If you're just getting started, one really helpful way you can contribute is by improving our documentation. If you notice a typo, a missing or broken example, or a function description that is confusing, here are some things you can do: -* If you are just correcting a small typo, feel free to go ahead and work on it and send in a PR when you're finished! -* If you don't feel like fixing it yourself, that's alright. Let us know by [opening an issue](https://github.com/processing/p5.js/issues). -* If you're unsure about anything, [open an issue](https://github.com/processing/p5.js/issues) anyway! - -## 🗯 Contribute to the reference -Read through the [reference](http://p5js.org/reference/), and look for typos, broken examples, or confusing documentation. If it's a straightforward fix, go ahead and work on it! If it's a more involved question that requires discussion, create an [issue](https://github.com/processing/p5.js/issues/new). -* Here are instructions for [getting setup for the first time with the p5.js repo](./README.md). -* The reference is built from the inline documentation in the source code (found in the `src/` folder). -* Here is information on [how to update or add inline documentation and examples](./inline_documentation.md). -* Here is the [documentation style guide](./documentation_style_guide.md) for writing and code samples. -* If you find errors with the [spanish documentation](http://p5js.org/es), there are instructions to update this [here](https://github.com/processing/p5.js-website#internationalization-i18n-and-structure). -* Community-maintained Typescript definitions are [here](https://github.com/p5-types/p5.ts). - -## ✨ Make examples -While the examples in the reference are meant to be very simplistic snippets of code, it is also useful to have longer, more complex examples. -* Currently we are working on porting the examples from the [processing examples page](https://processing.org/examples/) to the [p5.js examples page](http://p5js.org/examples). If you would like to help with this, please see the instructions [here](https://github.com/processing/p5.js-website/blob/main/contributor_docs/Adding_examples.md). -* Alternatively, you can create your own set of examples and publish them independently anywhere you like. If you share them online tag [@p5xjs](https://twitter.com/p5xjs) or email [hello@p5js.org](mailto:hello@p5js.org) to let us know, and we will share far and wide! This [guide to embedding p5.js](https://github.com/processing/p5.js/wiki/Embedding-p5.js) may be useful for posting your examples online. -* If you find bugs in p5.js along the way, please log them in the [issues](https://github.com/processing/p5.js/issues). - -## 👯 Make tutorials -* If you are new to p5.js, this is a great place to start. Try making something yourself, then making a tutorial to teach others to do it too. -* Currently we are working on porting the tutorials from the [processing tutorials page](https://processing.org/tutorials) to the [p5.js learn page](http://p5js.org/learn). If you would like to help with this, please see the tutorial on making tutorials [here](https://p5js.org/learn/tutorial-guide.html). -* We also welcome tutorials on different subjects. You can publish these anywhere, in any format you like. If you share them online tag [@p5xjs](https://twitter.com/p5xjs) or email [hello@p5js.org](mailto:hello@p5js.org) to let us know, and we will share far and wide! We especially encourage tutorials created with a specific audience or use case in mind (ex: p5 for journalists, activists, poets, kids, seniors, dreamers, in a different language, etc). We like to consider, who does not already feel welcome or included in the p5 community, and can we use learning as an invitation? What is the language you use to communicate with your audience and make them feel known? Feel free to be experimental with your format. Check out [Sharon De La Cruz's talk on Code Slang](https://www.youtube.com/watch?v=CFT6w9NKfCs) for inspiration. -* If you find bugs in p5.js along the way, please log them in the [issues](https://github.com/processing/p5.js/issues). - -## 👉 Getting started -* Read the [p5.js community statement](http://p5js.org/community/) -* Optional: Check out the [contributor docs](./README.md) to get an overview of the repository and learn how to build the code (if relevant for you). -* All discussion happens on GitHub issues, so there's no slack/gitter/etc channel you need to join. -* Add your name to the [contributors list](https://github.com/processing/p5.js#contributors) in the readme.md file! Instructions [here](https://github.com/processing/p5.js/issues/2309). -* And of course, if you're more of a bug fixer kind of person, feel free to jump into any of the [issues](https://github.com/processing/p5.js/issues)! diff --git a/contributor_docs/design_principles.md b/contributor_docs/design_principles.md deleted file mode 100644 index 0c1b787522..0000000000 --- a/contributor_docs/design_principles.md +++ /dev/null @@ -1,12 +0,0 @@ - - -# Design principles for p5.js - -- **Beginner Friendly** The p5.js API aims to be friendly to beginner coders, offering a low barrier to creating interactive and visual web content with cutting-edge HTML5/canvas/DOM APIs. - -- **Educational** p5.js is focused on an API and curriculum that supports educational use, including a complete reference to the API with supporting examples, as well as tutorials and sample class curricula that introduces core creative coding principles in a clear and engaging order. - -- **JavaScript and its community** p5.js aims to make web development practices more accessible to beginners by modeling proper JavaScript design patterns and usage, while abstracting them where necessary. As an open source library, p5.js also includes the wider JavaScript community in its creation, documentation and dissemination. - -- **Processing and its community** p5.js is a direct response to the Processing language and its community, and aims to make the transition from Processing to JavaScript easy and clear. Supporting the Processing API and community is a priority for p5.js, while also expanding to include the new possibilities of creative coding on the web, and taking a Processing-style approach to exposing that API to beginners. -