mirror of
https://github.com/processing/processing4.git
synced 2026-06-16 04:26:26 +02:00
Merge branch 'processing:main' into gradle-cleanup
This commit is contained in:
@@ -1512,6 +1512,42 @@
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "marioguzzzman",
|
||||
"name": "Mario Guzman",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/7597610?v=4",
|
||||
"profile": "http://www.mario-guzman.com",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "thisizaro",
|
||||
"name": "Aranya Dutta",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/98299268?v=4",
|
||||
"profile": "https://github.com/thisizaro",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "ovalnine",
|
||||
"name": "ovalnine",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/13293768?v=4",
|
||||
"profile": "https://github.com/ovalnine",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "jd-boyd",
|
||||
"name": "Joshua D. Boyd",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/361465?v=4",
|
||||
"profile": "http://blog.jdboyd.net/",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
}
|
||||
],
|
||||
"repoType": "github",
|
||||
|
||||
@@ -3,6 +3,7 @@ description: Report broken or incorrect behavior in Processing 4. (For help with
|
||||
labels: [bug]
|
||||
body:
|
||||
|
||||
|
||||
- type: dropdown
|
||||
id: sub-area
|
||||
attributes:
|
||||
@@ -10,6 +11,7 @@ body:
|
||||
description: You may select more than one.
|
||||
multiple: true
|
||||
options:
|
||||
- I'm not sure
|
||||
- Accessibility
|
||||
- Core/Environment/Rendering
|
||||
- PDE
|
||||
@@ -33,7 +35,7 @@ body:
|
||||
- type: input
|
||||
attributes:
|
||||
label: Processing version
|
||||
description: Go to "Help > About Processing" and look in the bottom-right corner for the version number. It also appears in the title bar of every editor window.
|
||||
description: Go to "Help > About Processing" and look in the bottom-right corner for the version number.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
@@ -44,6 +46,15 @@ body:
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Bug description
|
||||
description: |
|
||||
Describe the bug in detail. Include what you expected to happen and what actually happened.
|
||||
If applicable, include any error messages you received.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Steps to reproduce this
|
||||
@@ -80,14 +91,24 @@ body:
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Additional context
|
||||
description: Add any other context about the problem here.
|
||||
description: Provide any other information, links, or screenshots that could help illustrate the bug.
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: input
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Would you like to work on the issue?
|
||||
description: |
|
||||
Please let us know if you can work on this or if the issue should be assigned to someone else.
|
||||
If not, that’s okay too. Your report is appreciated.
|
||||
options:
|
||||
- No, I’m just reporting the issue
|
||||
- Yes, I’d like to help with this
|
||||
- I’m not sure yet
|
||||
validations:
|
||||
required: true
|
||||
required: true
|
||||
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
> [!NOTE]
|
||||
> Processing is a community-driven, open-source project. If you have time and interest to help, your contribution would be greatly appreciated! See the [contribution guide](https://github.com/processing/processing4/blob/main/CONTRIBUTING.md) to learn more. And if you need some guidance or support, we're happy to help you get started.
|
||||
@@ -3,6 +3,12 @@ description: Suggest an improvement for an existing feature of Processing.
|
||||
labels: [enhancement]
|
||||
body:
|
||||
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
> [!TIP]
|
||||
> If you have an idea for something Processing doesn’t yet support, **creating a library** is often the best way to contribute. Read more about creating a library [here](https://github.com/processing/processing4/blob/main/CONTRIBUTING.md#adding-new-features-to-processing).
|
||||
|
||||
- type: dropdown
|
||||
id: feature-area
|
||||
attributes:
|
||||
@@ -10,6 +16,7 @@ body:
|
||||
description: Choose the most relevant area for the proposed feature or improvement.
|
||||
multiple: true
|
||||
options:
|
||||
- I'm not sure
|
||||
- Accessibility
|
||||
- Core/Environment/Rendering
|
||||
- PDE
|
||||
@@ -39,36 +46,38 @@ body:
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Desired enhancement
|
||||
description: Describe the improvement you’d like to see with that existing feature
|
||||
label: Enhancement details
|
||||
description: |
|
||||
Describe the improvement you’d like to see for this existing feature.
|
||||
value: |
|
||||
#### Enhancement description
|
||||
Describe the enhancement in detail. Include how it should work and its intended impact.
|
||||
|
||||
#### Benefits
|
||||
Outline how this enhancement would benefit users or improve Processing.
|
||||
|
||||
#### Challenges
|
||||
Discuss any possible challenges or considerations in implementing this enhancement.
|
||||
|
||||
#### Additional context
|
||||
Provide any additional context or screenshots that may help clarify the enhancement.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Potential benefits
|
||||
description: Explain how this enhancement could benefit users or improve Processing.
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Possible drawbacks
|
||||
description: Consider any possible drawbacks or challenges related to the implementation of this enhancement.
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Additional context
|
||||
description: Add any other context or screenshots about the feature request here.
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: Would you like to work on the issue?
|
||||
label: Would you like to help implement this enhancement?
|
||||
description: |
|
||||
Please let us know if you can work on this or if the issue should be assigned to someone else.
|
||||
If not, that’s okay too. Your suggestion is appreciated.
|
||||
options:
|
||||
- No, I’m just suggesting the enhancement
|
||||
- Yes, I’d like to help with this
|
||||
- I’m not sure yet
|
||||
validations:
|
||||
required: true
|
||||
required: true
|
||||
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
> [!NOTE]
|
||||
> Processing is a community-driven, open-source project. If you have time and interest to help, your contribution would be greatly appreciated! See the [contribution guide](https://github.com/processing/processing4/blob/main/CONTRIBUTING.md) to learn more. And if you need some guidance or support, we're happy to help you get started.
|
||||
@@ -3,6 +3,12 @@ description: Request adding a new feature to Processing
|
||||
labels: [new feature]
|
||||
body:
|
||||
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
> [!TIP]
|
||||
> If you have an idea for something Processing doesn’t yet support, **creating a library** is often the best way to contribute. Read more about creating a library [here](https://github.com/processing/processing4/blob/main/CONTRIBUTING.md#adding-new-features-to-processing).
|
||||
|
||||
- type: dropdown
|
||||
id: feature-area
|
||||
attributes:
|
||||
@@ -10,6 +16,7 @@ body:
|
||||
description: Choose the sub-area most relevant to your feature request.
|
||||
multiple: true
|
||||
options:
|
||||
- I'm not sure
|
||||
- Accessibility
|
||||
- Core/Environment/Rendering
|
||||
- PDE
|
||||
@@ -31,42 +38,40 @@ body:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: feature-description
|
||||
id: feature-details
|
||||
attributes:
|
||||
label: Feature description
|
||||
description: Describe the feature in detail. Include how it should work and its intended impact.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: benefits
|
||||
attributes:
|
||||
label: Benefits
|
||||
description: Outline how this feature would benefit users or improve Processing.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: challenges
|
||||
attributes:
|
||||
label: Possible challenges
|
||||
description: Discuss any possible challenges or considerations in implementing this feature.
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
id: additional-context
|
||||
attributes:
|
||||
label: Additional context
|
||||
description: Provide any other information, links, or screenshots that could help illustrate the feature.
|
||||
validations:
|
||||
required: false
|
||||
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: Would you like to work on the issue?
|
||||
label: Feature details
|
||||
description: |
|
||||
Please let us know if you can work on this or if the issue should be assigned to someone else.
|
||||
Describe the feature you’d like to see added to Processing.
|
||||
value: |
|
||||
#### Feature description
|
||||
Describe the feature in detail. Include how it should work and its intended impact.
|
||||
|
||||
#### Benefits
|
||||
Outline how this feature would benefit users or improve Processing.
|
||||
|
||||
#### Challenges
|
||||
Discuss any possible challenges or considerations in implementing this feature.
|
||||
|
||||
#### Additional context
|
||||
Provide any other information, links, or screenshots that could help illustrate the feature.
|
||||
validations:
|
||||
required: true
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Would you like to help implement this feature?
|
||||
description: |
|
||||
If not, that’s okay too. Your suggestion is appreciated.
|
||||
options:
|
||||
- No, I’m just suggesting the feature
|
||||
- Yes, I’d like to help with this
|
||||
- I’m not sure yet
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
> [!NOTE]
|
||||
> Processing is a community-driven, open-source project. If you have time and interest to help, your contribution would be greatly appreciated! See the [contribution guide](https://github.com/processing/processing4/blob/main/CONTRIBUTING.md) to learn more. And if you need some guidance or support, we're happy to help you get started.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 76 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 96 KiB |
@@ -2,9 +2,12 @@
|
||||
|
||||
Great to see you are interested in contributing to Processing. To get started you will need to have an IDE to build and develop Processing. Our recommendation and what we use ourselves is Intellij IDEA.
|
||||
|
||||
## IntelliJ IDEA
|
||||
## IntelliJ IDEA (recommended)
|
||||
|
||||
First, [download the IntelliJ IDEA Community Edition](https://www.jetbrains.com/idea/download/). Make sure to select the "Community Edition", not "Ultimate". The Community Edition is free and built on open-source software. You may need to scroll down to find the download link. Then:
|
||||
First, [download the IntelliJ IDEA Community Edition](https://www.jetbrains.com/idea/download/). Make sure to select the "Community Edition", not "Ultimate". The Community Edition is free and built on open-source software. You may need to scroll down to find the download link.
|
||||
|
||||
> [!TIP]
|
||||
> If you encounter any issues with this process, Read the [Troubleshooting and Setup Tips for IntelliJ IDEA](#troubleshooting-and-setup-tips-intellij-idea)
|
||||
|
||||
1. Clone the Processing4 repository to your machine locally
|
||||
1. Open the cloned repository in IntelliJ IDEA CE
|
||||
@@ -25,6 +28,73 @@ First, [download the IntelliJ IDEA Community Edition](https://www.jetbrains.com/
|
||||
|
||||
Instructions for other editors are welcome and feel free to contribute the documentation for those [here](#other-editors)
|
||||
|
||||
## Other Editors
|
||||
|
||||
TBD
|
||||
|
||||
## Command Line
|
||||
|
||||
If you prefer not to use an IDE, you can also build Processing directly from the command line.
|
||||
|
||||
### Set Up the Environment
|
||||
|
||||
If you don't have them installed, you will need to install [Git](https://git-scm.com/downloads) and [Gradle](https://gradle.org/install/) first. Then follow these steps:
|
||||
|
||||
1. **Clone the repository:**
|
||||
```bash
|
||||
git clone https://github.com/processing/processing4.git
|
||||
cd processing4
|
||||
```
|
||||
|
||||
2. **Install Temurin JDK 17:**
|
||||
|
||||
Download and install the appropriate version for your platform:
|
||||
|
||||
- [Linux (x86)](https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.15%2B6/OpenJDK17U-jdk_x64_linux_hotspot_17.0.15_6.tar.gz)
|
||||
- [macOS (Apple Silicon)](https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.15%2B6/OpenJDK17U-jdk_aarch64_mac_hotspot_17.0.15_6.pkg)
|
||||
- [Other platforms](https://adoptium.net/temurin/releases/?package=jdk&version=17&os=any&arch=any)
|
||||
|
||||
3. **Set the `JAVA_HOME` environment variable:**
|
||||
|
||||
```bash
|
||||
export JAVA_HOME=/path/to/temurin/jdk-17.0.15+6/
|
||||
```
|
||||
|
||||
### Build, Run, and Package Processing
|
||||
|
||||
#### Build the Project (Required First Step)
|
||||
|
||||
This compiles the source code and prepares everything needed to run or test Processing:
|
||||
|
||||
```bash
|
||||
./gradlew build
|
||||
```
|
||||
|
||||
#### Run Tests
|
||||
|
||||
Run unit tests and verify your build:
|
||||
|
||||
```bash
|
||||
./gradlew test
|
||||
```
|
||||
|
||||
#### Launch Processing
|
||||
|
||||
Start the Processing Development Environment (PDE):
|
||||
|
||||
```bash
|
||||
./gradlew run
|
||||
```
|
||||
|
||||
#### Create a Distributable Package (Optional)
|
||||
|
||||
Generate a packaged version of Processing, ready for distribution:
|
||||
|
||||
```bash
|
||||
./gradlew package
|
||||
```
|
||||
|
||||
The packaged files will be available in the `app/build/compose/binaries` directory.
|
||||
|
||||
## Architecture
|
||||
Processing consists of three main components: `Core`, `Java`, and `App`. The `Core` is independent, while `Java` and `App` depend on it. Currently, `Java` and `App` are interdependent, but efforts are underway to decouple them.
|
||||
@@ -60,4 +130,34 @@ The main task to run or debug the PDE is `run`. That means you just need to run
|
||||
|
||||
If your main concern is with the `Core` you don't need to build and start the whole PDE to test your changes. In IntelliJ IDEA you can select any of the sketches in `core/examples/src/.../` to run by click on the green arrow next to their main functions. This will just compile core and the example sketch. Feel free to create additional examples for your new functionality.
|
||||
|
||||
## Other editors
|
||||
## Troubleshooting and Setup Tips (IntelliJ IDEA)
|
||||
|
||||
If you’re building Processing using IntelliJ IDEA and something’s not working, here are a few things that might help:
|
||||
|
||||
### Use the Correct JDK (temurin-17)
|
||||
|
||||
Make sure IntelliJ is using **temurin-17**, not another version. Some users have reported issues with ms-17.
|
||||
|
||||
1. Go to **File > Project Structure > Project**
|
||||
2. Set the **Project SDK** to: `temurin-17 java version "17.0.15"`
|
||||
|
||||

|
||||
|
||||
If it is not already installed, you can download it by:
|
||||
1. Clicking the SDK input field and then selecting the `Download JDK...` option from the menu
|
||||
2. Select Version: `17`, Vendor: `Eclipse Temurin (AdoptOpenJDK HotSpot)`
|
||||
|
||||
|
||||

|
||||
|
||||
Now go back to your main window and
|
||||
1. Click the green Run Icon in the top right of the window.
|
||||
|
||||
|
||||
### “Duplicate content roots detected”
|
||||
|
||||
You may see this warning in IntelliJ:
|
||||
|
||||
> `Duplicate content roots detected: '.../processing4/java/src'`
|
||||
|
||||
This happens because multiple modules reference the same source folder. It’s safe to ignore.
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
<!-- Uncomment the shield below once the repo is made public -->
|
||||
<!-- [](#contributors) -->
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Processing Foundation is excited to announce our open call for the [Processing Project Lead position](https://processingfoundation.org/employment/processing-project-lead)! This fully remote, full-time role starts on July 15, 2025. For full consideration, please submit your application by **May 15, 2025 11:59 EST**. [Apply here!](https://docs.google.com/forms/u/1/d/e/1FAIpQLSeBGWD87Yg1Prbc34c2fmwgY71rSCL4LJVO2GaF9I2eLCi83g/viewform?usp=send_form)
|
||||
|
||||
<img alt="Processing Logo" src="https://processing.org/favicon.svg" width="250">
|
||||
|
||||
Processing is a flexible software sketchbook and a programming language designed for learning how to code.
|
||||
@@ -298,6 +295,12 @@ _Note: due to GitHub's limitations, this repository's [Contributors](https://git
|
||||
<td align="center" valign="top" width="16.66%"><a href="https://github.com/babaissarkar"><img src="https://avatars.githubusercontent.com/u/8469888?v=4?s=120" width="120px;" alt="Subhraman Sarkar"/><br /><sub><b>Subhraman Sarkar</b></sub></a><br /><a href="https://github.com/processing/processing4/commits?author=babaissarkar" title="Code">💻</a> <a href="#a11y-babaissarkar" title="Accessibility">️️️️♿️</a></td>
|
||||
<td align="center" valign="top" width="16.66%"><a href="https://github.com/SushantBansal-tech"><img src="https://avatars.githubusercontent.com/u/189839531?v=4?s=120" width="120px;" alt="SushantBansal-tech"/><br /><sub><b>SushantBansal-tech</b></sub></a><br /><a href="#ideas-SushantBansal-tech" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/processing/processing4/commits?author=SushantBansal-tech" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="16.66%"><a href="https://github.com/Konsl"><img src="https://avatars.githubusercontent.com/u/82901383?v=4?s=120" width="120px;" alt="Konsl"/><br /><sub><b>Konsl</b></sub></a><br /><a href="https://github.com/processing/processing4/commits?author=Konsl" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="16.66%"><a href="http://www.mario-guzman.com"><img src="https://avatars.githubusercontent.com/u/7597610?v=4?s=120" width="120px;" alt="Mario Guzman"/><br /><sub><b>Mario Guzman</b></sub></a><br /><a href="https://github.com/processing/processing4/commits?author=marioguzzzman" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="16.66%"><a href="https://github.com/thisizaro"><img src="https://avatars.githubusercontent.com/u/98299268?v=4?s=120" width="120px;" alt="Aranya Dutta"/><br /><sub><b>Aranya Dutta</b></sub></a><br /><a href="https://github.com/processing/processing4/commits?author=thisizaro" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="16.66%"><a href="https://github.com/ovalnine"><img src="https://avatars.githubusercontent.com/u/13293768?v=4?s=120" width="120px;" alt="ovalnine"/><br /><sub><b>ovalnine</b></sub></a><br /><a href="https://github.com/processing/processing4/commits?author=ovalnine" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="16.66%"><a href="http://blog.jdboyd.net/"><img src="https://avatars.githubusercontent.com/u/361465?v=4?s=120" width="120px;" alt="Joshua D. Boyd"/><br /><sub><b>Joshua D. Boyd</b></sub></a><br /><a href="https://github.com/processing/processing4/commits?author=jd-boyd" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@@ -265,6 +265,10 @@ tasks.register("generateSnapConfiguration"){
|
||||
- opengl
|
||||
- home
|
||||
- removable-media
|
||||
- audio-playback
|
||||
- audio-record
|
||||
- pulseaudio
|
||||
- gpio
|
||||
|
||||
parts:
|
||||
processing:
|
||||
@@ -276,6 +280,7 @@ tasks.register("generateSnapConfiguration"){
|
||||
override-prime: |
|
||||
snapcraftctl prime
|
||||
rm -vf usr/lib/jvm/java-17-openjdk-*/lib/security/cacerts
|
||||
chmod -R +x opt/processing/lib/app/resources/jdk
|
||||
""".trimIndent()
|
||||
dir.file("../snapcraft.yaml").asFile.writeText(content)
|
||||
}
|
||||
@@ -350,6 +355,11 @@ tasks.register<Copy>("includeJavaMode") {
|
||||
tasks.register<Copy>("includeJdk") {
|
||||
from(Jvm.current().javaHome.absolutePath)
|
||||
destinationDir = composeResources("jdk").get().asFile
|
||||
|
||||
fileTree(destinationDir).files.forEach { file ->
|
||||
file.setWritable(true, false)
|
||||
file.setReadable(true, false)
|
||||
}
|
||||
}
|
||||
tasks.register<Copy>("includeSharedAssets"){
|
||||
from("../build/shared/")
|
||||
|
||||
@@ -52,7 +52,7 @@ class LSP: SuspendingCliktCommand("lsp"){
|
||||
// Indirect invocation since app does not depend on java mode
|
||||
Class.forName("processing.mode.java.lsp.PdeLanguageServer")
|
||||
.getMethod("main", Array<String>::class.java)
|
||||
.invoke(null, *arrayOf<Any>(emptyList<String>()))
|
||||
.invoke(null, arrayOf<String>())
|
||||
} catch (e: Exception) {
|
||||
throw InternalError("Failed to invoke main method", e)
|
||||
}
|
||||
@@ -87,4 +87,4 @@ class LegacyCLI(val args: Array<String>): SuspendingCliktCommand( "cli"){
|
||||
throw InternalError("Failed to invoke main method", e)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<Component Id="ApplicationShortcut" Guid="b15e6d69-f054-4ec2-aade-8e3756b537d6">
|
||||
<Shortcut Id="ApplicationStartMenuShortcut"
|
||||
Name="Processing"
|
||||
Description="My Application Description"
|
||||
Description="Processing — An open-source visual arts programming language by the Processing Foundation"
|
||||
Directory="ApplicationProgramsFolder"
|
||||
Target="[INSTALLFOLDER]\Processing.exe"
|
||||
WorkingDirectory="INSTALLFOLDER"/>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
<property name="core.library.jar" location="../../../core/library/core.jar" />
|
||||
|
||||
<property name="batik.version" value="1.18" />
|
||||
<property name="batik.version" value="1.19" />
|
||||
<!-- the .zip file to be downloaded -->
|
||||
<property name="batik.zip" value="batik-bin-${batik.version}.zip" />
|
||||
<!-- the .jar file that we need from the download -->
|
||||
|
||||
Reference in New Issue
Block a user