You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+20-5
Original file line number
Diff line number
Diff line change
@@ -69,22 +69,37 @@ If there hasn’t been any activity after two weeks, feel free to gently follow
69
69
70
70
Before opening a pull request, please make sure to discuss the related issue and get assigned to it first. This helps us stay aligned and avoid unnecessary work. Thank you!
71
71
72
-
## New Features
72
+
## Adding New Features to Processing
73
73
74
-
In most cases, the best way to contribute a new feature is to create a library. The [Processing Library Template](https://github.com/processing/processing-library-template)is a great way to get started. For more instructions, see the [library template documenation](https://processing.github.io/processing-library-template/).
74
+
If you have an idea for something Processing doesn’t yet support, **creating a library**is often the best way to contribute. The [Processing Library Template](https://github.com/processing/processing-library-template)provides a starting point for developing, packaging, and distributing Processing libraries. For more instructions, see the [library template documentation](https://processing.github.io/processing-library-template/).
75
75
76
+
Once your library is complete, you can submit it to the official [Processing Contributions](https://github.com/processing/processing-contributions) repository. This makes it discoverable through the PDE’s Contribution Manager. Follow the guidelines in the [Processing Library Guidelines](https://github.com/processing/processing4/wiki/Library-Guidelines).
77
+
78
+
### Libraries as the Starting Point for Features
76
79
Nearly all new features are first introduced as a Library or a Mode, or even as an example. The current [OpenGL renderer](http://glgraphics.sourceforge.net/) and Video library began as separate projects by Andrés Colubri, who needed a more performant, more sophisticated version of what we had in Processing for work that he was creating. The original `loadShape()` implementation came from the “Candy” library by Michael Chang (“mflux“). Similarly, Tweak Mode began as a [separate project](http://galsasson.com/tweakmode/) by Gal Sasson before being incorporated. PDE X was a Google Summer of code [project](https://github.com/processing/processing-experimental) by Manindra Moharana that updated the PDE to include basic refactoring and better error checking.
77
80
78
-
Developing features separately from the main software has several benefits:
81
+
### Why Develop Outside the Core?
82
+
Working outside the main Processing codebase has several advantages:
79
83
80
84
* It’s easier for the contributor to develop the software without it needing to work for tens or hundreds of thousands of Processing users.
81
85
* It provides a way to get feedback on that code independently of everything else, and the ability to iterate on it rapidly.
82
86
* This feedback process also helps gauge the level of interest for the community, and how it should be prioritized for the software.
83
87
* We can delay the process of “normalizing” the features so that they’re consistent with the rest of Processing (function naming, structure, etc).
84
88
85
-
A major consideration for any new feature is the level of maintenance that it might require in the future. If the original maintainer loses interest over time (which is normal) and the feature breaks (which happens more often than we'd like), it sits on the issues list unfixed, which isn’t good for anyone.
89
+
### What Guides the Inclusion of New Features?
90
+
We take maintenance seriously. A feature added to the core becomes a long-term responsibility. If it breaks, it needs fixing. Sometimes the original developer is no longer active (which is normal), and the burden falls on others.
91
+
92
+
Processing is a massive project that has existed for more than 20 years. Part of its longevity comes from the effort that’s gone into keeping things as simple as we can, and in particular, making a lot of difficult decisions about *what to leave out*.
93
+
94
+
Adding a new feature always has to be weighed against the potential confusion of one more thing—whether it’s a menu item, a dialog box, a function that needs to be added to the reference, etc. Adding a new graphics function means making it work across all the renderers that we ship (Java2D, OpenGL, JavaFX, PDF, etc) and across platforms (macOS, Windows, Linux).
95
+
96
+
It may also mean new interface elements, updates to the reference, and more documentation.
97
+
98
+
So when we consider a new feature, we ask ourselves:
99
+
100
+
> Does this solve a problem for many users? Is it worth the added complexity and extra maintenance work?
86
101
87
-
Processing is a massive project that has existed for more than 20 years. Part of its longevity comes from the effort that’s gone into keeping things as simple as we can, and in particular, making a lot of difficult decisions about *what to leave out*. Adding a new feature always has to be weighed against the potential confusion of one more thing—whether it’s a menu item, a dialog box, a function that needs to be added to the reference, etc. Adding a new graphics function means making it work across all the renderers that we ship (Java2D, OpenGL, JavaFX, PDF, etc) and across platforms (macOS, Windows, Linux). Does the feature help enough people that it's worth making the reference longer? Or the additional burden of maintaining that feature? It's no fun to say “no,” especially to people volunteering their time, but we often have to.
102
+
These are not easy decisions, especially when volunteers are offering their time and ideas. But we have to make them carefully to keep Processing sustainable.
Copy file name to clipboardExpand all lines: README.md
+8-6
Original file line number
Diff line number
Diff line change
@@ -7,14 +7,14 @@ Processing is a flexible software sketchbook and a programming language designed
7
7
8
8
This repository contains the source code for the [Processing](https://processing.org/) project for people who want to help improve the code.
9
9
10
-
## Announcing Processing 4.3.1
10
+
## Welcome to Processing 4.4!
11
11
12
-
We’re excited to announce the release of Processing 4.3.1! This update brings tooling improvements and a friendlier experience for contributors. To learn more, read the [Processing 4.3.1 announcement](https://github.com/processing/processing4-carbon-aug-19/wiki/Announcing-Processing-4.3.1).
12
+
We’re excited to announce the release of Processing 4.4! This update modernizes Processing under the hood to make future development easier. Key changes include switching the build system from Ant to Gradle, starting the transition from Swing to Jetpack Compose Multiplatform for the UI, and adding Kotlin support to the codebase. To learn more, check out [Changes in 4.4.0](https://github.com/processing/processing4/wiki/Changes-in-4.4).
13
13
14
-
Processing was initiated in 2001 by Ben Fry and Casey Reas, who lead the development and maintenance of the project until 2023. We are grateful for their vision and dedication to the project. Processing is also indebted to over two decades of contributions from the broader Processing community.
14
+
We hope these updates will make it easier for more people to contribute to Processing. If you'd like to get involved, have a look at our [Contributor Guide](CONTRIBUTING.md).
15
15
16
-
> [!NOTE]
17
-
> Due to platform limitations, the GitHub Contributors page for this repository does not show the complete list of contributors. However, the [git commit history](https://github.com/processing/processing4/commits/main/) provides a full record of the project's contributions. For contributor graphs before November 13th, refer to [this page](https://github.com/benfry/processing4/graphs/contributors). A comprehensive [list of all contributors](#contributors)is also included below. To see all commits by a contributor, click on the [💻](https://github.com/processing/processing4/commits?author=benfry) emoji below their name.
16
+
## Acknowledgement
17
+
Processing was initiated in 2001 by Ben Fry and Casey Reas, who led the development and maintenance of the project until 2023. We are grateful for their vision and dedication to the project. Processing is also indebted to over two decades of contributions from the broader Processing community.
18
18
19
19
## Using Processing
20
20
@@ -66,8 +66,9 @@ For licensing information about the Processing website see the [processing-websi
66
66
Copyright (c) 2015-now The Processing Foundation
67
67
68
68
## Contributors
69
+
The Processing project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification, recognizing all forms of contributions (not just code!). A list of all contributors is included below. You can add yourself to the contributors list [here](https://github.com/processing/processing4-carbon-aug-19/issues/839)!
69
70
70
-
Add yourself to the contributors list [here](https://github.com/processing/processing4-carbon-aug-19/issues/839)!
71
+
_Note: due to GitHub's limitations, this repository's [Contributors](https://github.com/processing/processing4/graphs/contributors) page only shows accurate contribution data starting from late 2024. Contributor graphs from before November 13th 2024 can be found on [this page](https://github.com/benfry/processing4/graphs/contributors). The [git commit history](https://github.com/processing/processing4/commits/main/) provides a full record of the project's contributions. To see all commits by a contributor, click on the [💻](https://github.com/processing/processing4/commits?author=benfry) emoji below their name._
71
72
72
73
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
73
74
<!-- prettier-ignore-start -->
@@ -292,6 +293,7 @@ Add yourself to the contributors list [here](https://github.com/processing/proce
0 commit comments