From d3367d176cfbc7dc58be6f599eb5481cbbb51574 Mon Sep 17 00:00:00 2001 From: jSdCool <37940266+jSdCool@users.noreply.github.com> Date: Thu, 23 Nov 2023 12:51:10 -0500 Subject: [PATCH 001/459] added the ability to set custom app icons for windows / macos simply add a line in sketch.properties icon.windows= or icon.macos= folow the = with the relative path to the icon file that you wish to use --- java/src/processing/mode/java/JavaBuild.java | 25 ++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/java/src/processing/mode/java/JavaBuild.java b/java/src/processing/mode/java/JavaBuild.java index b367e2c8f..a76a3f819 100644 --- a/java/src/processing/mode/java/JavaBuild.java +++ b/java/src/processing/mode/java/JavaBuild.java @@ -735,7 +735,18 @@ protected boolean exportApplication(File destFolder, File resourcesFolder = new File(contentsFolder, "Resources"); Util.copyDir(new File(contentsOrig, "Resources/en.lproj"), new File(resourcesFolder, "en.lproj")); - Util.copyFile(mode.getContentFile("application/application.icns"), + + Settings sketchProperties = new Settings(new File(sketch.getFolder(), "sketch.properties")); + String iconPath = sketchProperties.get("icon");//icon.macos + File iconFile; + if(iconPath == null || iconPath.isEmpty()){ + iconFile = mode.getContentFile("application/application.icns"); + System.out.println("using default icon"); + }else { + iconFile = new File(sketch.getFolder(), iconPath); + System.out.println("found custom icon: "+iconPath); + } + Util.copyFile(iconFile, new File(resourcesFolder, "application.icns")); } else if (exportPlatform == PConstants.LINUX) { @@ -958,7 +969,17 @@ protected boolean exportApplication(File destFolder, File exeFile = new File(destFolder, sketch.getName() + ".exe"); config.addChild("outfile").setContent(exeFile.getAbsolutePath()); - File iconFile = mode.getContentFile("application/application.ico"); + //check sketch.properties to see if an icon was set + Settings sketchProperties = new Settings(new File(sketch.getFolder(), "sketch.properties")); + String iconPath = sketchProperties.get("icon");//icon.windows + File iconFile; + if(iconPath == null || iconPath.isEmpty()){ + iconFile = mode.getContentFile("application/application.ico"); + System.out.println("using default icon"); + }else { + iconFile = new File(sketch.getFolder(), iconPath); + System.out.println("found custom icon: "+iconPath); + } config.addChild("icon").setContent(iconFile.getAbsolutePath()); XML clazzPath = config.addChild("classPath"); From f68f97a965b83ec6e3bc130eb664c7752108b89e Mon Sep 17 00:00:00 2001 From: jSdCool Date: Thu, 1 Feb 2024 21:28:33 -0500 Subject: [PATCH 002/459] fixed ConcurrentModificationException that got thrown when attempting to load a sketch.properties that contains a platform specific property that was not the last element in the generated map --- app/src/processing/app/Settings.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/processing/app/Settings.java b/app/src/processing/app/Settings.java index 020c20d38..b51b37570 100644 --- a/app/src/processing/app/Settings.java +++ b/app/src/processing/app/Settings.java @@ -94,14 +94,18 @@ public void load(File additions) { // check for platform-specific properties in the defaults String platformExt = "." + Platform.getName(); int platformExtLength = platformExt.length(); + HashMap tmpMap = new HashMap<>(); for (String key : table.keySet()) { if (key.endsWith(platformExt)) { // this is a key specific to a particular platform String actualKey = key.substring(0, key.length() - platformExtLength); String value = get(key); - table.put(actualKey, value); + //if the key is specific to this platform and is not the last property then attempting to append it to the map will throw a ConcurrentModificationException + //to avoid this we append it to a temporary map that can then be safely merged after the loop is complete + tmpMap.put(actualKey, value); } } + table.putAll(tmpMap); } From fd2484cd4e55a81a4ab947d51eb9e1b82aa91a7f Mon Sep 17 00:00:00 2001 From: Sam Pottinger Date: Thu, 4 Apr 2024 09:23:07 -0700 Subject: [PATCH 003/459] Add build workflow step. --- .github/workflows/build.yml | 44 +++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..29728c201 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,44 @@ +name: Build +on: [push] + +jobs: + test: + runs-on: ubuntu-latest + name: Run Tests + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Update apt + uses: apt-get update + - name: Install rsync + uses: yes | sudo apt-get install rsync + - name: Install wget + uses: yes | sudo apt-get install wget + - name: Install ant + uses: > + cd /tmp; + wget https://dlcdn.apache.org//ant/binaries/apache-ant-1.10.12-bin.zip; + unzip apache-ant-1.10.12-bin.zip + - name: Install java + uses: > + cd /tmp; + wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jdk_x64_linux_hotspot_17.0.5_8.tar.gz; + tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.5_8.tar.gz; + - name: Prepare env + uses: > + cd /tmp; + echo 'export ANT_HOME="/tmp/apache-ant-1.10.12"' >> .bash_profile; + echo 'export PATH="$PATH:/tmp/apache-ant-1.10.12/bin"' >> .bash_profile; + echo 'export JAVA_HOME="/tmp/jdk-17.0.5+8"' >> .bash_profile + - name: Try build + uses: > + source /tmp/.bash_profile; + cd build; + ant clean; + ant build + - name: Test + uses: > + source /tmp/.bash_profile; + cd build; + ant clean; + ant test From 923cf4001da9187e3889dc3f0bb60b5289d0c56a Mon Sep 17 00:00:00 2001 From: Sam Pottinger Date: Thu, 4 Apr 2024 09:24:53 -0700 Subject: [PATCH 004/459] Switch to run on build workflow. --- .github/workflows/build.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 29728c201..cf381dae0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,37 +7,37 @@ jobs: name: Run Tests steps: - name: Checkout - uses: actions/checkout@v3 + run: actions/checkout@v3 - name: Update apt - uses: apt-get update + run: apt-get update - name: Install rsync - uses: yes | sudo apt-get install rsync + run: yes | sudo apt-get install rsync - name: Install wget - uses: yes | sudo apt-get install wget + run: yes | sudo apt-get install wget - name: Install ant - uses: > + run: > cd /tmp; wget https://dlcdn.apache.org//ant/binaries/apache-ant-1.10.12-bin.zip; unzip apache-ant-1.10.12-bin.zip - name: Install java - uses: > + run: > cd /tmp; wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jdk_x64_linux_hotspot_17.0.5_8.tar.gz; tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.5_8.tar.gz; - name: Prepare env - uses: > + run: > cd /tmp; echo 'export ANT_HOME="/tmp/apache-ant-1.10.12"' >> .bash_profile; echo 'export PATH="$PATH:/tmp/apache-ant-1.10.12/bin"' >> .bash_profile; echo 'export JAVA_HOME="/tmp/jdk-17.0.5+8"' >> .bash_profile - name: Try build - uses: > + run: > source /tmp/.bash_profile; cd build; ant clean; ant build - name: Test - uses: > + run: > source /tmp/.bash_profile; cd build; ant clean; From e9cf3fda67b64efc1ff5d7485b886a517f53b771 Mon Sep 17 00:00:00 2001 From: Sam Pottinger Date: Thu, 4 Apr 2024 09:25:47 -0700 Subject: [PATCH 005/459] Fix checkout. --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cf381dae0..caad9ce05 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,7 +7,7 @@ jobs: name: Run Tests steps: - name: Checkout - run: actions/checkout@v3 + uses: actions/checkout@v3 - name: Update apt run: apt-get update - name: Install rsync From 35717c8ab92fafe08b637c7168cffa328fdccc5b Mon Sep 17 00:00:00 2001 From: Sam Pottinger Date: Thu, 4 Apr 2024 09:26:54 -0700 Subject: [PATCH 006/459] Fix permissions on build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index caad9ce05..f5a64cbea 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,7 +9,7 @@ jobs: - name: Checkout uses: actions/checkout@v3 - name: Update apt - run: apt-get update + run: yes | sudo apt-get update - name: Install rsync run: yes | sudo apt-get install rsync - name: Install wget From c88e713e03c30d77278a3eabbc3cb9ada81ac494 Mon Sep 17 00:00:00 2001 From: Sam Pottinger Date: Thu, 4 Apr 2024 09:29:33 -0700 Subject: [PATCH 007/459] Update ant in CI/CD. --- .github/workflows/build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f5a64cbea..a4d32fe8d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,8 +17,8 @@ jobs: - name: Install ant run: > cd /tmp; - wget https://dlcdn.apache.org//ant/binaries/apache-ant-1.10.12-bin.zip; - unzip apache-ant-1.10.12-bin.zip + wget https://dlcdn.apache.org//ant/binaries/apache-ant-1.10.14-bin.zip; + unzip apache-ant-1.10.14-bin.zip - name: Install java run: > cd /tmp; @@ -27,8 +27,8 @@ jobs: - name: Prepare env run: > cd /tmp; - echo 'export ANT_HOME="/tmp/apache-ant-1.10.12"' >> .bash_profile; - echo 'export PATH="$PATH:/tmp/apache-ant-1.10.12/bin"' >> .bash_profile; + echo 'export ANT_HOME="/tmp/apache-ant-1.10.14"' >> .bash_profile; + echo 'export PATH="$PATH:/tmp/apache-ant-1.10.14/bin"' >> .bash_profile; echo 'export JAVA_HOME="/tmp/jdk-17.0.5+8"' >> .bash_profile - name: Try build run: > From ac19ba1c5e7de3204b016d453dce44aeb13112ec Mon Sep 17 00:00:00 2001 From: Sam Pottinger Date: Thu, 4 Apr 2024 09:36:39 -0700 Subject: [PATCH 008/459] Formalize if statement in build. --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a4d32fe8d..6d96f4e5c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -41,4 +41,4 @@ jobs: source /tmp/.bash_profile; cd build; ant clean; - ant test + if ant test; then exit 0 else exit 1 fi From 5a51c3d540ed2201f6ad7479b4edec6c3bed96d2 Mon Sep 17 00:00:00 2001 From: Sam Pottinger Date: Thu, 4 Apr 2024 09:40:39 -0700 Subject: [PATCH 009/459] Check ant failure. --- .github/workflows/build.yml | 2 +- java/test/processing/mode/java/AutoFormatTests.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6d96f4e5c..a4d32fe8d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -41,4 +41,4 @@ jobs: source /tmp/.bash_profile; cd build; ant clean; - if ant test; then exit 0 else exit 1 fi + ant test diff --git a/java/test/processing/mode/java/AutoFormatTests.java b/java/test/processing/mode/java/AutoFormatTests.java index 8f4185a2e..6dafcd798 100644 --- a/java/test/processing/mode/java/AutoFormatTests.java +++ b/java/test/processing/mode/java/AutoFormatTests.java @@ -49,7 +49,7 @@ private static void checkGolden(final String expectedText, @Test public void bug109() { - expectGood("bug109"); + expectGood("bug109a"); } @Test From 9e880021312e2ee6246610a2b4014add920917c0 Mon Sep 17 00:00:00 2001 From: Sam Pottinger Date: Thu, 4 Apr 2024 09:42:30 -0700 Subject: [PATCH 010/459] Restore ant build. --- java/test/processing/mode/java/AutoFormatTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/test/processing/mode/java/AutoFormatTests.java b/java/test/processing/mode/java/AutoFormatTests.java index 6dafcd798..8f4185a2e 100644 --- a/java/test/processing/mode/java/AutoFormatTests.java +++ b/java/test/processing/mode/java/AutoFormatTests.java @@ -49,7 +49,7 @@ private static void checkGolden(final String expectedText, @Test public void bug109() { - expectGood("bug109a"); + expectGood("bug109"); } @Test From 3b08f9984217444b1e7789cc4c05ad902e1f9cb2 Mon Sep 17 00:00:00 2001 From: Sam Pottinger Date: Thu, 4 Apr 2024 09:58:55 -0700 Subject: [PATCH 011/459] Add example of building for linux. --- .github/workflows/build.yml | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a4d32fe8d..887775a83 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,3 +42,43 @@ jobs: cd build; ant clean; ant test + linux: + runs-on: ubuntu-latest + name: Build Linux + needs: [test] + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Update apt + run: yes | sudo apt-get update + - name: Install rsync + run: yes | sudo apt-get install rsync + - name: Install wget + run: yes | sudo apt-get install wget + - name: Install ant + run: > + cd /tmp; + wget https://dlcdn.apache.org//ant/binaries/apache-ant-1.10.14-bin.zip; + unzip apache-ant-1.10.14-bin.zip + - name: Install java + run: > + cd /tmp; + wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jdk_x64_linux_hotspot_17.0.5_8.tar.gz; + tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.5_8.tar.gz; + - name: Prepare env + run: > + cd /tmp; + echo 'export ANT_HOME="/tmp/apache-ant-1.10.14"' >> .bash_profile; + echo 'export PATH="$PATH:/tmp/apache-ant-1.10.14/bin"' >> .bash_profile; + echo 'export JAVA_HOME="/tmp/jdk-17.0.5+8"' >> .bash_profile + - name: Build linux + run: > + source /tmp/.bash_profile; + cd build; + ant clean; + ant build + - name: Add linux artifact + uses: actions/upload-artifact@v3 + with: + name: linux + path: ./build/linux/work From d9254c88469e264bfba7560b94cbbb3b3399c2f3 Mon Sep 17 00:00:00 2001 From: Sam Pottinger Date: Thu, 4 Apr 2024 09:59:58 -0700 Subject: [PATCH 012/459] Fix typo on #1. --- .github/workflows/build.yml | 80 ++++++++++++++++++------------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 887775a83..4becdf485 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,43 +42,43 @@ jobs: cd build; ant clean; ant test - linux: - runs-on: ubuntu-latest - name: Build Linux - needs: [test] - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Update apt - run: yes | sudo apt-get update - - name: Install rsync - run: yes | sudo apt-get install rsync - - name: Install wget - run: yes | sudo apt-get install wget - - name: Install ant - run: > - cd /tmp; - wget https://dlcdn.apache.org//ant/binaries/apache-ant-1.10.14-bin.zip; - unzip apache-ant-1.10.14-bin.zip - - name: Install java - run: > - cd /tmp; - wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jdk_x64_linux_hotspot_17.0.5_8.tar.gz; - tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.5_8.tar.gz; - - name: Prepare env - run: > - cd /tmp; - echo 'export ANT_HOME="/tmp/apache-ant-1.10.14"' >> .bash_profile; - echo 'export PATH="$PATH:/tmp/apache-ant-1.10.14/bin"' >> .bash_profile; - echo 'export JAVA_HOME="/tmp/jdk-17.0.5+8"' >> .bash_profile - - name: Build linux - run: > - source /tmp/.bash_profile; - cd build; - ant clean; - ant build - - name: Add linux artifact - uses: actions/upload-artifact@v3 - with: - name: linux - path: ./build/linux/work + linux: + runs-on: ubuntu-latest + name: Build Linux + needs: [test] + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Update apt + run: yes | sudo apt-get update + - name: Install rsync + run: yes | sudo apt-get install rsync + - name: Install wget + run: yes | sudo apt-get install wget + - name: Install ant + run: > + cd /tmp; + wget https://dlcdn.apache.org//ant/binaries/apache-ant-1.10.14-bin.zip; + unzip apache-ant-1.10.14-bin.zip + - name: Install java + run: > + cd /tmp; + wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jdk_x64_linux_hotspot_17.0.5_8.tar.gz; + tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.5_8.tar.gz; + - name: Prepare env + run: > + cd /tmp; + echo 'export ANT_HOME="/tmp/apache-ant-1.10.14"' >> .bash_profile; + echo 'export PATH="$PATH:/tmp/apache-ant-1.10.14/bin"' >> .bash_profile; + echo 'export JAVA_HOME="/tmp/jdk-17.0.5+8"' >> .bash_profile + - name: Build linux + run: > + source /tmp/.bash_profile; + cd build; + ant clean; + ant build + - name: Add linux artifact + uses: actions/upload-artifact@v3 + with: + name: linux + path: ./build/linux/work From b9c5867816a204a567f81cb855f62908a1ad09d9 Mon Sep 17 00:00:00 2001 From: Sam Pottinger Date: Thu, 4 Apr 2024 10:09:22 -0700 Subject: [PATCH 013/459] Switch to macos for cross build. --- .github/workflows/build.yml | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4becdf485..b138bf15b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,19 +42,19 @@ jobs: cd build; ant clean; ant test - linux: - runs-on: ubuntu-latest - name: Build Linux + distribution: + runs-on: macos-latest + name: Build Distribution needs: [test] steps: - name: Checkout uses: actions/checkout@v3 - - name: Update apt - run: yes | sudo apt-get update + - name: Install brew + run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - name: Install rsync - run: yes | sudo apt-get install rsync + run: brew install rsync - name: Install wget - run: yes | sudo apt-get install wget + run: brew install wget - name: Install ant run: > cd /tmp; @@ -77,8 +77,3 @@ jobs: cd build; ant clean; ant build - - name: Add linux artifact - uses: actions/upload-artifact@v3 - with: - name: linux - path: ./build/linux/work From 0dce0d9b90354a7d3d29de98a64810f5e1269a96 Mon Sep 17 00:00:00 2001 From: Sam Pottinger Date: Thu, 4 Apr 2024 10:15:23 -0700 Subject: [PATCH 014/459] Prepare mac for cross build. --- .github/workflows/build.yml | 11 ++++++++--- build/build.xml | 2 ++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b138bf15b..26539f4f8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -63,17 +63,22 @@ jobs: - name: Install java run: > cd /tmp; - wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jdk_x64_linux_hotspot_17.0.5_8.tar.gz; - tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.5_8.tar.gz; + wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jdk_aarch64_mac_hotspot_17.0.5_8.tar.gz; + tar -xvf OpenJDK17U-jdk_aarch64_mac_hotspot_17.0.5_8.tar.gz; - name: Prepare env run: > cd /tmp; echo 'export ANT_HOME="/tmp/apache-ant-1.10.14"' >> .bash_profile; echo 'export PATH="$PATH:/tmp/apache-ant-1.10.14/bin"' >> .bash_profile; echo 'export JAVA_HOME="/tmp/jdk-17.0.5+8"' >> .bash_profile - - name: Build linux + - name: Build mac run: > source /tmp/.bash_profile; cd build; ant clean; ant build + - name: Build linux + run: > + source /tmp/.bash_profile; + cd build; + ant build diff --git a/build/build.xml b/build/build.xml index 050bb805d..4a22952d4 100644 --- a/build/build.xml +++ b/build/build.xml @@ -198,6 +198,7 @@ + --> @@ -235,6 +236,7 @@ + - + + + + + + + + + + @@ -853,14 +862,20 @@ --> - + + + + - + + + + From 94db18786329b83074d28006107ab3b0c22f3839 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 7 Oct 2024 12:41:48 +0200 Subject: [PATCH 084/459] Maven core signing --- core/build.gradle.kts | 40 +++++++++++++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 40c9a691b..f97111369 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -1,6 +1,8 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { id("java") - id("maven-publish") + id("com.vanniktech.maven.publish") version "0.29.0" } group = "org.processing.core" @@ -24,22 +26,46 @@ sourceSets{ } dependencies { + // TODO: Research on which jogl dependencies to include implementation("org.jogamp.gluegen:gluegen-rt:2.5.0") implementation("org.jogamp.jogl:jogl-all:2.5.0") testImplementation("junit:junit:4.13.2") } -publishing { - publications { - create("maven") { - groupId = "org.processing" - artifactId = "core" - from(components["java"]) +mavenPublishing{ + signAllPublications() + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + + pom{ + name.set("Processing Core") + description.set("Processing Core") + url.set("https://processing.org") + licenses { + license { + name.set("LGPL") + url.set("https://www.gnu.org/licenses/lgpl-2.1.html") + } + } + developers { + developer { + id.set("steftervelde") + name.set("Stef Tervelde") + } + developer { + id.set("benfry") + name.set("Ben Fry") + } + } + scm{ + url.set("https://github.com/processing/processing4-carbon-aug-19") + connection.set("scm:git:git://github.com/processing/processing4-carbon-aug-19.git") + developerConnection.set("scm:git:ssh://git@github.com/processing/processing4-carbon-aug-19.git") } } } + tasks.test { useJUnit() } \ No newline at end of file From 9dc3644c7143d11f2d8d8c1d5de2a15f7342a2a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 11 Oct 2024 12:14:49 +0200 Subject: [PATCH 085/459] Updated instructions for local build --- README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 9ef8fa265..6c8030fda 100644 --- a/README.md +++ b/README.md @@ -12,19 +12,23 @@ If you're interested in *using* Processing, head over to the [download page](htt For assistance with your own sketches, projects, or code, please post your question on the Processing forum: https://discourse.processing.org/. Our community is full of experienced developers and knowledgeable users who are eager to help. Before you post, please take a moment to read the [guidelines on asking questions](https://discourse.processing.org/t/guidelines-asking-questions/2147) to make sure you get the best possible help. We’re incredibly grateful for the support and knowledge shared by everyone on the forum over the years. ## Contributing to Processing -We welcome new contributors. The work on Processing 4.0 was done by a [tiny number of people](https://github.com/processing/processing4/graphs/contributors?from=2019-10-01&to=2022-08-09&type=c). Every contribution helps! +We welcome new contributors. If you want to fix a bug that's been bothering you or want to give back to the project, you're in the right place! -If you want to fix a bug that's been bothering you or want to give back to the project, you're in the right place! +For detailed guidelines on how to contribute, please refer to our [CONTRIBUTING.md]. -To get started, clone this repository to your machine and build the code. For instructions, check out our guide on [How to Build Processing](build/README.md). +## Building Processing -### Structure of the Repository -The Processing software consists of two main parts: +Building Processing locally on your machine will let you troubleshoot and make sure your contributions work as intended before submitting them to this repository. It also gives you the flexibility to experiment and learn more about how Processing is structured. -1. **The Core Library:** This includes essential components such as the graphics renderer, event handling, input/output (I/O) functions, and mathematical utilities. -2. **The Processing Development Environment (PDE):** This includes a text editor, a pre-processor, a contributions manager, and other tools to assist with writing and managing code. +For a quick start: +1. Fork and clone the repository. +1. Open it in IntelliJ IDEA. +1. Install the required Ant plugin. +1. Hit Run. -### About the Processing 4.0 release +For more information and detailed instructions, follow our [How to Build Processing](build/README.md) guide. + +## About the Processing 4.0 release We've moved to a new repository for the 4.0 release so that we could cull a lot of the accumulated mess of the last 20 years. This made `git clone` (and most other `git` operations) a lot faster. @@ -46,10 +50,6 @@ For non-technical inquiries, here’s how to get in touch: - For press inquiries, general information about the Processing software, or other non-technical questions, contact [hello@processing.org](mailto:hello@processing.org). - For anything related to the Processing Foundation or broader topics beyond the software, please reach out to [foundation@processingfoundation.org](mailto:foundation@processingfoundation.org). ---- - -This version now includes guidance for bug reports and feature requests. How does this look? - ## License & Copyright - The **core library** is licensed under the GNU Lesser General Public License version 2.1 ([LGPL-2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html)). From d75ad3ddc6fdd3933708c8b8ac24a5d7137ce4d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 11 Oct 2024 12:16:07 +0200 Subject: [PATCH 086/459] Fixed link --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 6c8030fda..b0518176d 100644 --- a/README.md +++ b/README.md @@ -12,9 +12,7 @@ If you're interested in *using* Processing, head over to the [download page](htt For assistance with your own sketches, projects, or code, please post your question on the Processing forum: https://discourse.processing.org/. Our community is full of experienced developers and knowledgeable users who are eager to help. Before you post, please take a moment to read the [guidelines on asking questions](https://discourse.processing.org/t/guidelines-asking-questions/2147) to make sure you get the best possible help. We’re incredibly grateful for the support and knowledge shared by everyone on the forum over the years. ## Contributing to Processing -We welcome new contributors. If you want to fix a bug that's been bothering you or want to give back to the project, you're in the right place! - -For detailed guidelines on how to contribute, please refer to our [CONTRIBUTING.md]. +We welcome new contributors. If you want to fix a bug that's been bothering you or want to give back to the project, you're in the right place! Please see our [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines on how to contribute. ## Building Processing From e0d2946b6538a06d0194e82500292a6d1709460c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 11 Oct 2024 12:45:23 +0200 Subject: [PATCH 087/459] Update CONTRIBUTING.md --- CONTRIBUTING.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6af6e5b70..822b16cd9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,8 +8,6 @@ For coding questions or help getting started, our [online forum](https://discour If your issue remains unresolved after exploring these options, we'd appreciate it if you could [file a bug report](https://github.com/processing/processing4/issues). Your feedback is crucial as it helps us address issues we might not be aware of yet. -Remember, Processing is a labor of love, run by volunteers and offered free of charge. We're here because we believe in this community and genuinely enjoy contributing to it. We always welcome constructive feedback—just keep it friendly and helpful, please! For more tips on how to communicate within the project, take a peek at our Code of Conduct (coming soon). - ## Interested in Contributing? We're glad to hear that! [Our team is small](https://github.com/processing/processing4/graphs/contributors), and with the large number of users, every extra hand makes a big difference! Here’s how you can start: From 39ce911c41e5f3c77a66af83e63724d949f0a139 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 11 Oct 2024 12:52:06 +0200 Subject: [PATCH 088/459] Update CONTRIBUTING.md --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 822b16cd9..75ada71aa 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,7 +10,7 @@ If your issue remains unresolved after exploring these options, we'd appreciate ## Interested in Contributing? -We're glad to hear that! [Our team is small](https://github.com/processing/processing4/graphs/contributors), and with the large number of users, every extra hand makes a big difference! Here’s how you can start: +We're glad to hear that! Every extra hand makes a big difference. Here’s how you can start: * **Help Wanted** – Most [issues marked help wanted](https://github.com/processing/processing4/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) are a good place to start. Issues are marked with this tag when: From fddbf895f2f16230efb6d39cbbe0f6d4dec416f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 11 Oct 2024 12:55:18 +0200 Subject: [PATCH 089/459] Added link to the JetBrains Ant Plugin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b0518176d..72cd50edf 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Building Processing locally on your machine will let you troubleshoot and make s For a quick start: 1. Fork and clone the repository. 1. Open it in IntelliJ IDEA. -1. Install the required Ant plugin. +1. Install the required [Ant plugin](https://plugins.jetbrains.com/plugin/23025-ant). 1. Hit Run. For more information and detailed instructions, follow our [How to Build Processing](build/README.md) guide. From 0547108d94e347342b2ba2c04c03e1ef4f3c9f60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 11 Oct 2024 12:58:20 +0200 Subject: [PATCH 090/459] Added section on expected behavior --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 72cd50edf..6651343e6 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,9 @@ For assistance with your own sketches, projects, or code, please post your quest ## Contributing to Processing We welcome new contributors. If you want to fix a bug that's been bothering you or want to give back to the project, you're in the right place! Please see our [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines on how to contribute. +## Expected Behavior +Remember, Processing is a labor of love, run in large part by volunteers, and offered free of charge. We're here because we believe in this community and genuinely enjoy contributing to it. We always welcome constructive feedback. Just keep it friendly and helpful, please! For more tips on how to communicate within the project, take a peek at our [Code of Conduct](https://github.com/processing/processing4-carbon-aug-19?tab=coc-ov-file). + ## Building Processing Building Processing locally on your machine will let you troubleshoot and make sure your contributions work as intended before submitting them to this repository. It also gives you the flexibility to experiment and learn more about how Processing is structured. From 07836047f18e05497a0915164043c2e2c88dea36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 11 Oct 2024 12:59:59 +0200 Subject: [PATCH 091/459] Update CODE-OF-CONDUCT.md More inclusive language for non-code contributors --- CODE-OF-CONDUCT.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CODE-OF-CONDUCT.md b/CODE-OF-CONDUCT.md index 517eea276..2ce63905a 100644 --- a/CODE-OF-CONDUCT.md +++ b/CODE-OF-CONDUCT.md @@ -6,7 +6,7 @@ Processing is a flexible software sketchbook and a language for learning how to We make room for people to get involved in the project at any point they wish. This means that we: -* Welcome contributors at any stage of their programming journey, from newcomers to professionals; +* Welcome contributors at any stage of their journey, from newcomers to professionals; * Do not assume knowledge or imply there are things that somebody should know; * Understand that people are the experts of their own experiences, and bring a variety of valid perspectives to the development of open source projects; * Know that contribution is not just limited to code, and can also include working on documentation, filing issues and bug reports, and other important forms of input; @@ -14,7 +14,7 @@ We make room for people to get involved in the project at any point they wish. T ## Our Standards -All developers who contribute to the Processing project agree to abide by the following code of conduct. +All contributors to the Processing project agree to abide by the following code of conduct. ### Respect other people From 7f9c348a8019ca3558030ac5a579dfc9725c048e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 1 Nov 2024 11:45:44 +0100 Subject: [PATCH 092/459] Added all-contributors section to README.md --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 6651343e6..3f2df6eae 100644 --- a/README.md +++ b/README.md @@ -62,3 +62,14 @@ For complete licensing information about the Processing core library and softwar For licensing information about the Processing website see the [processing-website README](https://github.com/processing/processing-website/blob/main/README.md#licenses). Copyright (c) 2015-now The Processing Foundation + +## Contributors + + + + + + + + + From ac633d6ef22d2813a6a067c29add125cde3c4e88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 1 Nov 2024 11:58:41 +0100 Subject: [PATCH 093/459] Added all-contributors shield to README.md (commented out for now) --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 3f2df6eae..3f2d7ab73 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ + + + Processing is a flexible software sketchbook and a programming language designed for learning how to code. From 3682fa969bc2e1569e4f1abe7aca71d2d95f3270 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 1 Nov 2024 12:00:19 +0100 Subject: [PATCH 094/459] Create .all-contributorsrc --- .all-contributorsrc | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .all-contributorsrc diff --git a/.all-contributorsrc b/.all-contributorsrc new file mode 100644 index 000000000..771cd6c8b --- /dev/null +++ b/.all-contributorsrc @@ -0,0 +1,4 @@ +{ + "projectName": "processing4-carbon-aug-19", + "projectOwner": "processing" +} From f8ec84ada038ecb9c3c452656a29ad3b9d6c06f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 1 Nov 2024 12:03:52 +0100 Subject: [PATCH 095/459] Update .all-contributorsrc to match p5.js' settings --- .all-contributorsrc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 771cd6c8b..4e28fbf8e 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -1,4 +1,16 @@ { "projectName": "processing4-carbon-aug-19", "projectOwner": "processing" + "files": [ + "README.md" + ], + "imageSize": 120, + "contributorsPerLine": 6, + "commit": true, + "contributors": [], + "repoType": "github", + "repoHost": "https://github.com", + "skipCi": true, + "commitConvention": "angular", + "commitType": "docs" } From f1834839204cf41795e8d4e7e97d0e9f08beadb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 1 Nov 2024 12:21:47 +0100 Subject: [PATCH 096/459] Update config.yml to allow blank issues --- .github/ISSUE_TEMPLATE/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 0153d5fc4..42fdd39f4 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,4 +1,4 @@ -blank_issues_enabled: false +blank_issues_enabled: true contact_links: - name: 🌐 Processing Website Issues url: https://github.com/processing/processing-website/issues From 8a1ae45d78b06a0e5898e89104376ffaf9c9d99c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 1 Nov 2024 12:46:06 +0100 Subject: [PATCH 097/459] Added welcoming language and all-contributors instructions to CONTRIBUTING --- CONTRIBUTING.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 75ada71aa..a0125257b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,5 +1,15 @@ ## Welcome to Processing! +Thanks for your interest in contributing to Processing! Processing is a collaborative project with contributions from many volunteers. Our community is always looking for contributors and appreciates involvement in all forms. We acknowledge that not everyone has the capacity, time, or financial means to participate actively or in the same ways. We want to expand the meaning of the word “contributor.” Whether you're an experienced developer or just starting out, we value your involvement. Your unique perspectives, skills, and experiences enrich our community, and we encourage you to get involved in a way that works for you. It includes documentation, teaching, writing code, making art, writing, design, activism, organizing, curating, or anything else you might imagine. The [p5.js contribute page](https://p5js.org/contribute/) gives a great overview of different ways to get involved and contribute. + +The Processing project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification, recognizing all types of contributions, not just code. We use the @all-contributors bot to handle adding people to the README.md file. You can ask the @all-contributors bot to add you in an issue or PR comment like so: + +``` +@all-contributors please add @[your GitHub handle] for [your contribution type] +``` + +We recognize a variety of contribution types such as `design`, `documentation`, `eventOrganizing`, and `mentoring`, among others. You can find the full list of recognized contribution types [here](https://allcontributors.org/docs/en/emoji-key). We usually add contributors automatically after merging a PR, but feel free to request addition yourself if needed. For contributions wich don't involve a Pull Request, please comment on [this issue](https://github.com/processing/processing4-carbon-aug-19/issues/839) to add yourself. + ## Found a Bug? First, please visit our [troubleshooting](https://github.com/processing/processing/wiki/Troubleshooting) page for common issues—you might find the answer there! From 48d7352b043a57196de5e2d83b7ccaa4a10ea136 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 1 Nov 2024 12:48:15 +0100 Subject: [PATCH 098/459] Simplified language and instructions --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a0125257b..61703f779 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,7 +8,7 @@ The Processing project follows the [all-contributors](https://github.com/kentcdo @all-contributors please add @[your GitHub handle] for [your contribution type] ``` -We recognize a variety of contribution types such as `design`, `documentation`, `eventOrganizing`, and `mentoring`, among others. You can find the full list of recognized contribution types [here](https://allcontributors.org/docs/en/emoji-key). We usually add contributors automatically after merging a PR, but feel free to request addition yourself if needed. For contributions wich don't involve a Pull Request, please comment on [this issue](https://github.com/processing/processing4-carbon-aug-19/issues/839) to add yourself. +We usually add contributors automatically after merging a PR, but feel free to request addition yourself by commenting on [this issue](https://github.com/processing/processing4-carbon-aug-19/issues/839). ## Found a Bug? From d08f8e97469a6591e41a6245817c83601b3526c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 1 Nov 2024 12:53:38 +0100 Subject: [PATCH 099/459] Update CONTRIBUTING.md --- CONTRIBUTING.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 61703f779..8676bf662 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -18,9 +18,7 @@ For coding questions or help getting started, our [online forum](https://discour If your issue remains unresolved after exploring these options, we'd appreciate it if you could [file a bug report](https://github.com/processing/processing4/issues). Your feedback is crucial as it helps us address issues we might not be aware of yet. -## Interested in Contributing? - -We're glad to hear that! Every extra hand makes a big difference. Here’s how you can start: +## Making Your First Contribution * **Help Wanted** – Most [issues marked help wanted](https://github.com/processing/processing4/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) are a good place to start. Issues are marked with this tag when: From c52d1182e425e874b7b6e0bf42e074c8aeb10949 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 1 Nov 2024 13:03:35 +0100 Subject: [PATCH 100/459] Update .all-contributorsrc to add missing comma --- .all-contributorsrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 4e28fbf8e..a60d845da 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -1,6 +1,6 @@ { "projectName": "processing4-carbon-aug-19", - "projectOwner": "processing" + "projectOwner": "processing", "files": [ "README.md" ], From d7e46a5e3d537b31e32b7f0e0c77f9392876eb49 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 12:09:35 +0000 Subject: [PATCH 101/459] docs: update README.md [skip ci] --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 3f2d7ab73..d4fc8a0cd 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,13 @@ Copyright (c) 2015-now The Processing Foundation + + + + + + +
Ben Fry
Ben Fry

💻 🤔 🚇 🧑‍🏫 🚧 🖋 📢
From f7b1b0d80f8a3b11b582eead1736f6fdc97d9218 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 12:09:37 +0000 Subject: [PATCH 102/459] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index a60d845da..77515ae35 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -2,12 +2,28 @@ "projectName": "processing4-carbon-aug-19", "projectOwner": "processing", "files": [ - "README.md" - ], + "README.md" + ], "imageSize": 120, "contributorsPerLine": 6, "commit": true, - "contributors": [], + "contributors": [ + { + "login": "benfry", + "name": "Ben Fry", + "avatar_url": "https://avatars.githubusercontent.com/u/1623101?v=4", + "profile": "https://fathom.info", + "contributions": [ + "code", + "ideas", + "infra", + "mentoring", + "maintenance", + "content", + "talk" + ] + } + ], "repoType": "github", "repoHost": "https://github.com", "skipCi": true, From b35ff87ee510a165d031a81273bb10094429765f Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 12:10:07 +0000 Subject: [PATCH 103/459] docs: update README.md [skip ci] --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 3f2d7ab73..7c5d17cfc 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,13 @@ Copyright (c) 2015-now The Processing Foundation + + + + + + +
Casey Reas
Casey Reas

💻 🤔 🚇 🧑‍🏫 🖋 📢
From 23f9b5ab036cba474f07796f0bf0ca129c7b2536 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 12:10:08 +0000 Subject: [PATCH 104/459] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index a60d845da..e3d12f4cb 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -2,12 +2,28 @@ "projectName": "processing4-carbon-aug-19", "projectOwner": "processing", "files": [ - "README.md" - ], + "README.md" + ], "imageSize": 120, "contributorsPerLine": 6, "commit": true, - "contributors": [], + "contributors": [ + { + "login": "REAS", + "name": "Casey Reas", + "avatar_url": "https://avatars.githubusercontent.com/u/677774?v=4", + "profile": "http://reas.com", + "contributions": [ + "code", + "ideas", + "infra", + "mentoring", + "content", + "talk", + "tutorial" + ] + } + ], "repoType": "github", "repoHost": "https://github.com", "skipCi": true, From 33a574651d855712e328d94937644a7015aeae01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 1 Nov 2024 13:38:52 +0100 Subject: [PATCH 105/459] Update .all-contributorsrc Auto-generated list of code contributors for the processing4 repository. Used https://www.npmjs.com/package/all-contributors-for-repository. Output was re-formatted with GPT 4o. --- .all-contributorsrc | 205 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 201 insertions(+), 4 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index e11410d6e..5b01987f8 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -1,9 +1,7 @@ { "projectName": "processing4-carbon-aug-19", "projectOwner": "processing", - "files": [ - "README.md" - ], + "files": ["README.md"], "imageSize": 120, "contributorsPerLine": 6, "commit": true, @@ -21,7 +19,9 @@ "maintenance", "content", "talk" - ], + ] + }, + { "login": "REAS", "name": "Casey Reas", "avatar_url": "https://avatars.githubusercontent.com/u/677774?v=4", @@ -35,6 +35,203 @@ "talk", "tutorial" ] + }, + { + "login": "anadroid", + "contributions": {"code": [191, 222]} + }, + { + "login": "arnoudvanderleer", + "contributions": {"code": [459]} + }, + { + "login": "arya-gupta", + "contributions": {"code": [655]} + }, + { + "login": "benfry", + "contributions": { + "maintenance": [556, 655, 659, 660, 661, 678, 690, 696, 728, 745, 746, 752, 757, 758, 759, 772, 776, 782], + "code": [70, 758] + } + }, + { + "login": "bsapozhnikov", + "contributions": {"code": [659]} + }, + { + "login": "cathiecode", + "contributions": {"code": [225]} + }, + { + "login": "clarvel", + "contributions": {"code": [759]} + }, + { + "login": "codeanticode", + "contributions": {"code": [313, 314, 316, 363, 367, 418, 432, 433, 435, 470]} + }, + { + "login": "cyberflamego", + "contributions": {"code": [757]} + }, + { + "login": "dzaima", + "contributions": {"code": [216, 274, 493]} + }, + { + "login": "efratror", + "contributions": { + "maintenance": [676], + "code": [678, 690] + } + }, + { + "login": "ghost", + "contributions": {"maintenance": [669, 767]} + }, + { + "login": "guilhermesilveira", + "contributions": {"code": [479]} + }, + { + "login": "hectorcarral", + "contributions": {"code": [480, 481]} + }, + { + "login": "hkiel", + "contributions": {"code": [483]} + }, + { + "login": "hx2a", + "contributions": {"code": [776, 782]} + }, + { + "login": "jaysonh", + "contributions": {"code": [198]} + }, + { + "login": "kgtkr", + "contributions": {"code": [564]} + }, + { + "login": "knupel", + "contributions": {"code": [41]} + }, + { + "login": "lesleywagner", + "contributions": {"code": [539]} + }, + { + "login": "letorbi", + "contributions": {"code": [215]} + }, + { + "login": "maharal", + "contributions": {"code": [146, 147]} + }, + { + "login": "mglst", + "contributions": {"code": [660]} + }, + { + "login": "minimaximize", + "contributions": {"code": [49, 51]} + }, + { + "login": "montardon", + "contributions": {"code": [661]} + }, + { + "login": "mvaladas", + "contributions": {"code": [728]} + }, + { + "login": "nking07049925", + "contributions": {"code": [175]} + }, + { + "login": "oseph", + "contributions": {"code": [183, 184]} + }, + { + "login": "peonix0", + "contributions": {"code": [696]} + }, + { + "login": "qazcetelic", + "contributions": {"code": [513]} + }, + { + "login": "robog-two", + "contributions": {"code": [495]} + }, + { + "login": "runemadsen", + "contributions": {"code": [132, 168]} + }, + { + "login": "rupeshkumar22", + "contributions": {"code": [329, 498]} + }, + { + "login": "rzats", + "contributions": {"code": [301, 585]} + }, + { + "login": "sableraf", + "contributions": {"code": [258, 542, 605]} + }, + { + "login": "sampottinger", + "contributions": { + "maintenance": [692, 715, 716, 721, 729], + "code": [ + 1, 5, 12, 13, 15, 18, 20, 30, 33, 34, 37, 38, 40, 42, 45, 60, 68, 74, 75, 76, 85, 88, + 91, 93, 95, 96, 103, 105, 107, 123, 125, 138, 139, 152, 219, 229, 230, 246, 257, 288, + 384, 392, 400, 474, 502, 504, 577, 597, 609, 622, 635, 636, 637, 715, 716, 721, 752, 772 + ] + } + }, + { + "login": "sashashura", + "contributions": {"code": [556]} + }, + { + "login": "shahnoor-khan", + "contributions": {"maintenance": [665]} + }, + { + "login": "thomasleplus", + "contributions": {"code": [266]} + }, + { + "login": "tn8001", + "contributions": {"code": [436, 461, 462]} + }, + { + "login": "trikaphundo", + "contributions": {"code": [554, 574, 745, 746]} + }, + { + "login": "urbanskimichal", + "contributions": {"code": [100]} + }, + { + "login": "vepo", + "contributions": {"code": [599]} + }, + { + "login": "villares", + "contributions": {"code": [133, 134]} + }, + { + "login": "willrabalais04", + "contributions": {"code": [692, 729]} + }, + { + "login": "yblake", + "contributions": {"code": [172]} } ], "repoType": "github", From 4f065326359c6bb1bb45fc24e85d216f406d6e6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 1 Nov 2024 13:46:55 +0100 Subject: [PATCH 106/459] Update .all-contributorsrc Fix the schema --- .all-contributorsrc | 107 +++++++++++++++++++------------------------- 1 file changed, 45 insertions(+), 62 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 5b01987f8..317c2954e 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -38,200 +38,183 @@ }, { "login": "anadroid", - "contributions": {"code": [191, 222]} + "contributions": ["code"] }, { "login": "arnoudvanderleer", - "contributions": {"code": [459]} + "contributions": ["code"] }, { "login": "arya-gupta", - "contributions": {"code": [655]} - }, - { - "login": "benfry", - "contributions": { - "maintenance": [556, 655, 659, 660, 661, 678, 690, 696, 728, 745, 746, 752, 757, 758, 759, 772, 776, 782], - "code": [70, 758] - } + "contributions": ["code"] }, { "login": "bsapozhnikov", - "contributions": {"code": [659]} + "contributions": ["code"] }, { "login": "cathiecode", - "contributions": {"code": [225]} + "contributions": ["code"] }, { "login": "clarvel", - "contributions": {"code": [759]} + "contributions": ["code"] }, { "login": "codeanticode", - "contributions": {"code": [313, 314, 316, 363, 367, 418, 432, 433, 435, 470]} + "contributions": ["code"] }, { "login": "cyberflamego", - "contributions": {"code": [757]} + "contributions": ["code"] }, { "login": "dzaima", - "contributions": {"code": [216, 274, 493]} + "contributions": ["code"] }, { "login": "efratror", - "contributions": { - "maintenance": [676], - "code": [678, 690] - } + "contributions": ["maintenance", "code"] }, { "login": "ghost", - "contributions": {"maintenance": [669, 767]} + "contributions": ["maintenance"] }, { "login": "guilhermesilveira", - "contributions": {"code": [479]} + "contributions": ["code"] }, { "login": "hectorcarral", - "contributions": {"code": [480, 481]} + "contributions": ["code"] }, { "login": "hkiel", - "contributions": {"code": [483]} + "contributions": ["code"] }, { "login": "hx2a", - "contributions": {"code": [776, 782]} + "contributions": ["code"] }, { "login": "jaysonh", - "contributions": {"code": [198]} + "contributions": ["code"] }, { "login": "kgtkr", - "contributions": {"code": [564]} + "contributions": ["code"] }, { "login": "knupel", - "contributions": {"code": [41]} + "contributions": ["code"] }, { "login": "lesleywagner", - "contributions": {"code": [539]} + "contributions": ["code"] }, { "login": "letorbi", - "contributions": {"code": [215]} + "contributions": ["code"] }, { "login": "maharal", - "contributions": {"code": [146, 147]} + "contributions": ["code"] }, { "login": "mglst", - "contributions": {"code": [660]} + "contributions": ["code"] }, { "login": "minimaximize", - "contributions": {"code": [49, 51]} + "contributions": ["code"] }, { "login": "montardon", - "contributions": {"code": [661]} + "contributions": ["code"] }, { "login": "mvaladas", - "contributions": {"code": [728]} + "contributions": ["code"] }, { "login": "nking07049925", - "contributions": {"code": [175]} + "contributions": ["code"] }, { "login": "oseph", - "contributions": {"code": [183, 184]} + "contributions": ["code"] }, { "login": "peonix0", - "contributions": {"code": [696]} + "contributions": ["code"] }, { "login": "qazcetelic", - "contributions": {"code": [513]} + "contributions": ["code"] }, { "login": "robog-two", - "contributions": {"code": [495]} + "contributions": ["code"] }, { "login": "runemadsen", - "contributions": {"code": [132, 168]} + "contributions": ["code"] }, { "login": "rupeshkumar22", - "contributions": {"code": [329, 498]} + "contributions": ["code"] }, { "login": "rzats", - "contributions": {"code": [301, 585]} + "contributions": ["code"] }, { "login": "sableraf", - "contributions": {"code": [258, 542, 605]} + "contributions": ["code"] }, { "login": "sampottinger", - "contributions": { - "maintenance": [692, 715, 716, 721, 729], - "code": [ - 1, 5, 12, 13, 15, 18, 20, 30, 33, 34, 37, 38, 40, 42, 45, 60, 68, 74, 75, 76, 85, 88, - 91, 93, 95, 96, 103, 105, 107, 123, 125, 138, 139, 152, 219, 229, 230, 246, 257, 288, - 384, 392, 400, 474, 502, 504, 577, 597, 609, 622, 635, 636, 637, 715, 716, 721, 752, 772 - ] - } + "contributions": ["maintenance", "code"] }, { "login": "sashashura", - "contributions": {"code": [556]} + "contributions": ["code"] }, { "login": "shahnoor-khan", - "contributions": {"maintenance": [665]} + "contributions": ["maintenance"] }, { "login": "thomasleplus", - "contributions": {"code": [266]} + "contributions": ["code"] }, { "login": "tn8001", - "contributions": {"code": [436, 461, 462]} + "contributions": ["code"] }, { "login": "trikaphundo", - "contributions": {"code": [554, 574, 745, 746]} + "contributions": ["code"] }, { "login": "urbanskimichal", - "contributions": {"code": [100]} + "contributions": ["code"] }, { "login": "vepo", - "contributions": {"code": [599]} + "contributions": ["code"] }, { "login": "villares", - "contributions": {"code": [133, 134]} + "contributions": ["code"] }, { "login": "willrabalais04", - "contributions": {"code": [692, 729]} + "contributions": ["code"] }, { "login": "yblake", - "contributions": {"code": [172]} + "contributions": ["code"] } ], "repoType": "github", From 49db1d7d0406b8141728824d2ab3c5113b5d8ae8 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 12:47:44 +0000 Subject: [PATCH 107/459] docs: update README.md [skip ci] --- README.md | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3a939ecfd..b42ede7a0 100644 --- a/README.md +++ b/README.md @@ -74,8 +74,68 @@ Copyright (c) 2015-now The Processing Foundation - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Casey Reas
Casey Reas

💻 🤔 🚇 🧑‍🏫 🖋 📢
Ben Fry
Ben Fry

💻 🤔 🚇 🧑‍🏫 🚧 🖋 📢
Casey Reas
Casey Reas

💻 🤔 🚇 🧑‍🏫 🖋 📢
anadroid
anadroid
💻
arnoudvanderleer
arnoudvanderleer
💻
arya-gupta
arya-gupta
💻
bsapozhnikov
bsapozhnikov
💻
cathiecode
cathiecode
💻
clarvel
clarvel
💻
codeanticode
codeanticode
💻
cyberflamego
cyberflamego
💻
dzaima
dzaima
💻
efratror
efratror
🚧 💻
ghost
ghost
🚧
guilhermesilveira
guilhermesilveira
💻
hectorcarral
hectorcarral
💻
hkiel
hkiel
💻
hx2a
hx2a
💻
jaysonh
jaysonh
💻
kgtkr
kgtkr
💻
knupel
knupel
💻
lesleywagner
lesleywagner
💻
letorbi
letorbi
💻
maharal
maharal
💻
mglst
mglst
💻
minimaximize
minimaximize
💻
montardon
montardon
💻
mvaladas
mvaladas
💻
nking07049925
nking07049925
💻
oseph
oseph
💻
peonix0
peonix0
💻
qazcetelic
qazcetelic
💻
robog-two
robog-two
💻
runemadsen
runemadsen
💻
rupeshkumar22
rupeshkumar22
💻
rzats
rzats
💻
sableraf
sableraf
💻
sampottinger
sampottinger
🚧 💻
sashashura
sashashura
💻
shahnoor-khan
shahnoor-khan
🚧
thomasleplus
thomasleplus
💻
tn8001
tn8001
💻
trikaphundo
trikaphundo
💻
urbanskimichal
urbanskimichal
💻
vepo
vepo
💻
villares
villares
💻
willrabalais04
willrabalais04
💻
yblake
yblake
💻
mingness
mingness

🚇
From 0093c0fc34003dd0f38190be237411db046bc53b Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 12:47:45 +0000 Subject: [PATCH 108/459] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 195 +++++++++++++++++++++++++++++++++----------- 1 file changed, 149 insertions(+), 46 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 317c2954e..cd3292ccb 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -1,7 +1,9 @@ { "projectName": "processing4-carbon-aug-19", "projectOwner": "processing", - "files": ["README.md"], + "files": [ + "README.md" + ], "imageSize": 120, "contributorsPerLine": 6, "commit": true, @@ -38,183 +40,284 @@ }, { "login": "anadroid", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "arnoudvanderleer", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "arya-gupta", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "bsapozhnikov", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "cathiecode", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "clarvel", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "codeanticode", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "cyberflamego", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "dzaima", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "efratror", - "contributions": ["maintenance", "code"] + "contributions": [ + "maintenance", + "code" + ] }, { "login": "ghost", - "contributions": ["maintenance"] + "contributions": [ + "maintenance" + ] }, { "login": "guilhermesilveira", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "hectorcarral", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "hkiel", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "hx2a", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "jaysonh", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "kgtkr", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "knupel", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "lesleywagner", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "letorbi", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "maharal", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "mglst", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "minimaximize", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "montardon", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "mvaladas", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "nking07049925", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "oseph", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "peonix0", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "qazcetelic", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "robog-two", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "runemadsen", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "rupeshkumar22", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "rzats", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "sableraf", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "sampottinger", - "contributions": ["maintenance", "code"] + "contributions": [ + "maintenance", + "code" + ] }, { "login": "sashashura", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "shahnoor-khan", - "contributions": ["maintenance"] + "contributions": [ + "maintenance" + ] }, { "login": "thomasleplus", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "tn8001", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "trikaphundo", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "urbanskimichal", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "vepo", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "villares", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "willrabalais04", - "contributions": ["code"] + "contributions": [ + "code" + ] }, { "login": "yblake", - "contributions": ["code"] + "contributions": [ + "code" + ] + }, + { + "login": "mingness", + "name": "mingness", + "avatar_url": "https://avatars.githubusercontent.com/u/5671413?v=4", + "profile": "https://github.com/mingness", + "contributions": [ + "infra" + ] } ], "repoType": "github", From 2e69ab86fe81bc1f31aa4baff312bd6f0a4f9774 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 1 Nov 2024 14:08:55 +0100 Subject: [PATCH 109/459] Update .all-contributorsrc to fix avatars --- .all-contributorsrc | 335 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 288 insertions(+), 47 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index cd3292ccb..7d231d30f 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -39,273 +39,514 @@ ] }, { - "login": "anadroid", + "login": "codeanticode", + "name": "codeanticode", + "avatar_url": "https://avatars.githubusercontent.com/u/62246?v=4", + "profile": "http://andrescolubri.net/", "contributions": [ "code" ] }, { - "login": "arnoudvanderleer", + "login": "Manindra29", + "name": "Manindra Moharana", + "avatar_url": "https://avatars.githubusercontent.com/u/1686425?v=4", + "profile": "http://mkmoharana.com/", "contributions": [ "code" ] }, { - "login": "arya-gupta", + "login": "JakubValtar", + "name": "Jakub Valtar", + "avatar_url": "https://avatars.githubusercontent.com/u/3177098?v=4", + "profile": "https://jakubvaltar.com/", "contributions": [ "code" ] }, { - "login": "bsapozhnikov", + "login": "REAS", + "name": "Casey Reas", + "avatar_url": "https://avatars.githubusercontent.com/u/677774?v=4", + "profile": "http://reas.com/", "contributions": [ "code" ] }, { - "login": "cathiecode", + "login": "sampottinger", + "name": "A Samuel Pottinger", + "avatar_url": "https://avatars.githubusercontent.com/u/110391?v=4", + "profile": "http://gleap.org/", "contributions": [ "code" ] }, { - "login": "clarvel", + "login": "gohai", + "name": "Gottfried Haider", + "avatar_url": "https://avatars.githubusercontent.com/u/4945451?v=4", + "profile": "http://twitter.com/mrgohai", "contributions": [ "code" ] }, { - "login": "codeanticode", + "login": "Akarshit", + "name": "Akarshit Wal", + "avatar_url": "https://avatars.githubusercontent.com/u/7762605?v=4", + "profile": "https://github.com/Akarshit", "contributions": [ "code" ] }, { - "login": "cyberflamego", + "login": "peskal", + "name": "Peter Kalauskas", + "avatar_url": "https://avatars.githubusercontent.com/u/1523978?v=4", + "profile": "https://github.com/peskal", "contributions": [ "code" ] }, { - "login": "dzaima", + "login": "shiffman", + "name": "Daniel Shiffman", + "avatar_url": "https://avatars.githubusercontent.com/u/191758?v=4", + "profile": "https://thecodingtrain.com/", "contributions": [ "code" ] }, { - "login": "efratror", + "login": "joelmoniz", + "name": "Joel Moniz", + "avatar_url": "https://avatars.githubusercontent.com/u/4526417?v=4", + "profile": "http://joelmoniz.com/", "contributions": [ - "maintenance", "code" ] }, { - "login": "ghost", + "login": "lonnen", + "name": "Lonnen", + "avatar_url": "https://avatars.githubusercontent.com/u/21467?v=4", + "profile": "https://github.com/lonnen", "contributions": [ - "maintenance" + "code" ] }, { - "login": "guilhermesilveira", + "login": "fjenett", + "name": "Florian Jenett", + "avatar_url": "https://avatars.githubusercontent.com/u/59608?v=4", + "profile": "http://bezier.de/", "contributions": [ "code" ] }, { - "login": "hectorcarral", + "login": "scotthmurray", + "name": "Scott Murray", + "avatar_url": "https://avatars.githubusercontent.com/u/1034002?v=4", + "profile": "https://github.com/scotthmurray", "contributions": [ "code" ] }, { - "login": "hkiel", + "login": "federicobond", + "name": "Federico Bond", + "avatar_url": "https://avatars.githubusercontent.com/u/138426?v=4", + "profile": "https://federicobond.com/", "contributions": [ "code" ] }, { - "login": "hx2a", + "login": "pvrs12", + "name": "pvrs12", + "avatar_url": "https://avatars.githubusercontent.com/u/6956401?v=4", + "profile": "https://github.com/pvrs12", "contributions": [ "code" ] }, { - "login": "jaysonh", + "login": "GKFX", + "name": "George Bateman", + "avatar_url": "https://avatars.githubusercontent.com/u/5357642?v=4", + "profile": "https://github.com/GKFX", "contributions": [ "code" ] }, { - "login": "kgtkr", + "login": "mckennapsean", + "name": "Sean McKenna", + "avatar_url": "https://avatars.githubusercontent.com/u/1406149?v=4", + "profile": "http://mckennapsean.com/", "contributions": [ "code" ] }, { - "login": "knupel", + "login": "kfeuz", + "name": "kfeuz", + "avatar_url": "https://avatars.githubusercontent.com/u/2780385?v=4", + "profile": "https://github.com/kfeuz", "contributions": [ "code" ] }, { - "login": "lesleywagner", + "login": "sansumbrella", + "name": "David Wicks", + "avatar_url": "https://avatars.githubusercontent.com/u/81553?v=4", + "profile": "https://sansumbrella.com/", "contributions": [ "code" ] }, { - "login": "letorbi", + "login": "wirsing", + "name": "Wilm Thoben", + "avatar_url": "https://avatars.githubusercontent.com/u/938075?v=4", + "profile": "https://github.com/wirsing", "contributions": [ "code" ] }, { - "login": "maharal", + "login": "Anadroid", + "name": "Ana", + "avatar_url": "https://avatars.githubusercontent.com/u/1826278?v=4", + "profile": "https://github.com/Anadroid", "contributions": [ "code" ] }, { - "login": "mglst", + "login": "AmnonOwed", + "name": "Amnon Owed", + "avatar_url": "https://avatars.githubusercontent.com/u/4075846?v=4", + "profile": "http://vimeo.com/amnon", "contributions": [ "code" ] }, { - "login": "minimaximize", + "login": "galsasson", + "name": "Gal Sasson", + "avatar_url": "https://avatars.githubusercontent.com/u/3430521?v=4", + "profile": "https://github.com/galsasson", "contributions": [ "code" ] }, { - "login": "montardon", + "login": "scollovati", + "name": "scollovati", + "avatar_url": "https://avatars.githubusercontent.com/u/20740642?v=4", + "profile": "https://github.com/scollovati", "contributions": [ "code" ] }, { - "login": "mvaladas", + "login": "ybakos", + "name": "Yong Joseph Bakos", + "avatar_url": "https://avatars.githubusercontent.com/u/5502?v=4", + "profile": "https://yongbakos.com/", "contributions": [ "code" ] }, { - "login": "nking07049925", + "login": "crazymaster", + "name": "Kenichi Ito", + "avatar_url": "https://avatars.githubusercontent.com/u/1528093?v=4", + "profile": "https://github.com/crazymaster", "contributions": [ "code" ] }, { - "login": "oseph", + "login": "Efratror", + "name": "Efratror", + "avatar_url": "https://avatars.githubusercontent.com/u/19653269?v=4", + "profile": "https://github.com/Efratror", "contributions": [ "code" ] }, { - "login": "peonix0", + "login": "aengelke", + "name": "Alexis Engelke", + "avatar_url": "https://avatars.githubusercontent.com/u/4236689?v=4", + "profile": "https://github.com/aengelke", "contributions": [ "code" ] }, { - "login": "qazcetelic", + "login": "tyfkda", + "name": "tyfkda", + "avatar_url": "https://avatars.githubusercontent.com/u/7347125?v=4", + "profile": "https://tyfkda.github.io/", "contributions": [ "code" ] }, { - "login": "robog-two", + "login": "juniperoserra", + "name": "Simon Greenwold", + "avatar_url": "https://avatars.githubusercontent.com/u/125713?v=4", + "profile": "https://github.com/juniperoserra", "contributions": [ "code" ] }, { "login": "runemadsen", + "name": "Rune Skjoldborg Madsen", + "avatar_url": "https://avatars.githubusercontent.com/u/192021?v=4", + "profile": "https://github.com/runemadsen", "contributions": [ "code" ] }, { - "login": "rupeshkumar22", + "login": "inkwellsiesta", + "name": "Leslie Watkins", + "avatar_url": "https://avatars.githubusercontent.com/u/6732005?v=4", + "profile": "https://github.com/inkwellsiesta", "contributions": [ "code" ] }, { "login": "rzats", + "name": "Rostyslav Zatserkovnyi", + "avatar_url": "https://avatars.githubusercontent.com/u/13783592?v=4", + "profile": "https://www.linkedin.com/in/rostyslav-zatserkovnyi/", "contributions": [ "code" ] }, { - "login": "sableraf", + "login": "trikaphundo", + "name": "Dan", + "avatar_url": "https://avatars.githubusercontent.com/u/24832650?v=4", + "profile": "https://github.com/trikaphundo", "contributions": [ "code" ] }, { - "login": "sampottinger", + "login": "dhowe", + "name": "Daniel Howe", + "avatar_url": "https://avatars.githubusercontent.com/u/737638?v=4", + "profile": "https://github.com/dhowe", "contributions": [ - "maintenance", "code" ] }, { - "login": "sashashura", + "login": "joshgiesbrecht", + "name": "Josh Giesbrecht", + "avatar_url": "https://avatars.githubusercontent.com/u/3434564?v=4", + "profile": "https://github.com/joshgiesbrecht", "contributions": [ "code" ] }, { - "login": "shahnoor-khan", + "login": "liquidev", + "name": "liquidex", + "avatar_url": "https://avatars.githubusercontent.com/u/16415678?v=4", + "profile": "https://liquidex.house/", "contributions": [ - "maintenance" + "code" ] }, { - "login": "thomasleplus", + "login": "bgc", + "name": "bgc", + "avatar_url": "https://avatars.githubusercontent.com/u/516129?v=4", + "profile": "https://github.com/bgc", "contributions": [ "code" ] }, { - "login": "tn8001", + "login": "omerjerk", + "name": "Mohammad Umair", + "avatar_url": "https://avatars.githubusercontent.com/u/3191547?v=4", + "profile": "https://umair.io/", "contributions": [ "code" ] }, { - "login": "trikaphundo", + "login": "mtsio", + "name": "T Michail", + "avatar_url": "https://avatars.githubusercontent.com/u/8008901?v=4", + "profile": "https://github.com/mtsio", + "contributions": [ + "code" + ] + }, + { + "login": "ohommos", + "name": "ohommos", + "avatar_url": "https://avatars.githubusercontent.com/u/3680307?v=4", + "profile": "https://twitter.com/omarhommos", "contributions": [ "code" ] }, { - "login": "urbanskimichal", + "login": "google-feinberg", + "name": "Jonathan Feinberg", + "avatar_url": "https://avatars.githubusercontent.com/u/2643627?v=4", + "profile": "https://github.com/google-feinberg", "contributions": [ "code" ] }, { - "login": "vepo", + "login": "davidfokkema", + "name": "David Fokkema", + "avatar_url": "https://avatars.githubusercontent.com/u/917137?v=4", + "profile": "https://github.com/davidfokkema", "contributions": [ "code" ] }, { - "login": "villares", + "login": "liquidzym", + "name": "liquid", + "avatar_url": "https://avatars.githubusercontent.com/u/51957?v=4", + "profile": "https://github.com/liquidzym", "contributions": [ "code" ] }, { - "login": "willrabalais04", + "login": "kisarur", + "name": "Kisaru Liyanage", + "avatar_url": "https://avatars.githubusercontent.com/u/23295399?v=4", + "profile": "https://github.com/kisarur", "contributions": [ "code" ] }, { - "login": "yblake", + "login": "boubpopsyteam", + "name": "BouB", + "avatar_url": "https://avatars.githubusercontent.com/u/3597918?v=4", + "profile": "https://github.com/boubpopsyteam", + "contributions": [ + "code" + ] + }, + { + "login": "5atk6", + "name": "atk", + "avatar_url": "https://avatars.githubusercontent.com/u/8381460?v=4", + "profile": "https://twitter.com/ijkxy", + "contributions": [ + "code" + ] + }, + { + "login": "xranby", + "name": "Xerxes Rånby", + "avatar_url": "https://avatars.githubusercontent.com/u/1233011?v=4", + "profile": "http://twitter.com/xranby", + "contributions": [ + "code" + ] + }, + { + "login": "WillRabalais04", + "name": "Will Rabalais", + "avatar_url": "https://avatars.githubusercontent.com/u/69363495?v=4", + "profile": "https://github.com/WillRabalais04", + "contributions": [ + "code" + ] + }, + { + "login": "iamutkarshtiwari", + "name": "Utkarsh Tiwari", + "avatar_url": "https://avatars.githubusercontent.com/u/6258810?v=4", + "profile": "https://github.com/iamutkarshtiwari", + "contributions": [ + "code" + ] + }, + { + "login": "Prince-Polka", + "name": "Prince-Polka", + "avatar_url": "https://avatars.githubusercontent.com/u/29307694?v=4", + "profile": "https://github.com/Prince-Polka", + "contributions": [ + "code" + ] + }, + { + "login": "jamesjgrady", + "name": "jamesjgrady", + "avatar_url": "https://avatars.githubusercontent.com/u/2600893?v=4", + "profile": "https://github.com/jamesjgrady", + "contributions": [ + "code" + ] + }, + { + "login": "SableRaf", + "name": "Raphaël de Courville", + "avatar_url": "https://avatars.githubusercontent.com/u/290261?v=4", + "profile": "https://github.com/SableRaf", + "contributions": [ + "code" + ] + }, + { + "login": "satoshiokita", + "name": "Satoshi Okita", + "avatar_url": "https://avatars.githubusercontent.com/u/16870334?v=4", + "profile": "https://github.com/satoshiokita", + "contributions": [ + "code" + ] + }, + { + "login": "rocha", + "name": "Carlos Andrés Rocha", + "avatar_url": "https://avatars.githubusercontent.com/u/51551?v=4", + "profile": "https://github.com/rocha", + "contributions": [ + "code" + ] + }, + { + "login": "vijnv", + "name": "Vincent Vijn", + "avatar_url": "https://avatars.githubusercontent.com/u/1311387?v=4", + "profile": "https://github.com/vijnv", + "contributions": [ + "code" + ] + }, + { + "login": "dzaima", + "name": "dzaima", + "avatar_url": "https://avatars.githubusercontent.com/u/5551338?v=4", + "profile": "https://github.com/dzaima", "contributions": [ "code" ] From 91b030e0cd57d28dfb26e04567168f8b635b9b0e Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 13:10:51 +0000 Subject: [PATCH 110/459] docs: update README.md [skip ci] --- README.md | 109 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 64 insertions(+), 45 deletions(-) diff --git a/README.md b/README.md index b42ede7a0..96416cf8b 100644 --- a/README.md +++ b/README.md @@ -76,67 +76,86 @@ Copyright (c) 2015-now The Processing Foundation Ben Fry
Ben Fry

💻 🤔 🚇 🧑‍🏫 🚧 🖋 📢 Casey Reas
Casey Reas

💻 🤔 🚇 🧑‍🏫 🖋 📢 - anadroid
anadroid
💻 - arnoudvanderleer
arnoudvanderleer
💻 - arya-gupta
arya-gupta
💻 - bsapozhnikov
bsapozhnikov
💻 + codeanticode
codeanticode

💻 + Manindra Moharana
Manindra Moharana

💻 + Jakub Valtar
Jakub Valtar

💻 + Casey Reas
Casey Reas

💻 - cathiecode
cathiecode
💻 - clarvel
clarvel
💻 - codeanticode
codeanticode
💻 - cyberflamego
cyberflamego
💻 - dzaima
dzaima
💻 - efratror
efratror
🚧 💻 + A Samuel Pottinger
A Samuel Pottinger

💻 + Gottfried Haider
Gottfried Haider

💻 + Akarshit Wal
Akarshit Wal

💻 + Peter Kalauskas
Peter Kalauskas

💻 + Daniel Shiffman
Daniel Shiffman

💻 + Joel Moniz
Joel Moniz

💻 - ghost
ghost
🚧 - guilhermesilveira
guilhermesilveira
💻 - hectorcarral
hectorcarral
💻 - hkiel
hkiel
💻 - hx2a
hx2a
💻 - jaysonh
jaysonh
💻 + Lonnen
Lonnen

💻 + Florian Jenett
Florian Jenett

💻 + Scott Murray
Scott Murray

💻 + Federico Bond
Federico Bond

💻 + pvrs12
pvrs12

💻 + George Bateman
George Bateman

💻 - kgtkr
kgtkr
💻 - knupel
knupel
💻 - lesleywagner
lesleywagner
💻 - letorbi
letorbi
💻 - maharal
maharal
💻 - mglst
mglst
💻 + Sean McKenna
Sean McKenna

💻 + kfeuz
kfeuz

💻 + David Wicks
David Wicks

💻 + Wilm Thoben
Wilm Thoben

💻 + Ana
Ana

💻 + Amnon Owed
Amnon Owed

💻 - minimaximize
minimaximize
💻 - montardon
montardon
💻 - mvaladas
mvaladas
💻 - nking07049925
nking07049925
💻 - oseph
oseph
💻 - peonix0
peonix0
💻 + Gal Sasson
Gal Sasson

💻 + scollovati
scollovati

💻 + Yong Joseph Bakos
Yong Joseph Bakos

💻 + Kenichi Ito
Kenichi Ito

💻 + Efratror
Efratror

💻 + Alexis Engelke
Alexis Engelke

💻 - qazcetelic
qazcetelic
💻 - robog-two
robog-two
💻 - runemadsen
runemadsen
💻 - rupeshkumar22
rupeshkumar22
💻 - rzats
rzats
💻 - sableraf
sableraf
💻 + tyfkda
tyfkda

💻 + Simon Greenwold
Simon Greenwold

💻 + Rune Skjoldborg Madsen
Rune Skjoldborg Madsen

💻 + Leslie Watkins
Leslie Watkins

💻 + Rostyslav Zatserkovnyi
Rostyslav Zatserkovnyi

💻 + Dan
Dan

💻 - sampottinger
sampottinger
🚧 💻 - sashashura
sashashura
💻 - shahnoor-khan
shahnoor-khan
🚧 - thomasleplus
thomasleplus
💻 - tn8001
tn8001
💻 - trikaphundo
trikaphundo
💻 + Daniel Howe
Daniel Howe

💻 + Josh Giesbrecht
Josh Giesbrecht

💻 + liquidex
liquidex

💻 + bgc
bgc

💻 + Mohammad Umair
Mohammad Umair

💻 + T Michail
T Michail

💻 - urbanskimichal
urbanskimichal
💻 - vepo
vepo
💻 - villares
villares
💻 - willrabalais04
willrabalais04
💻 - yblake
yblake
💻 + ohommos
ohommos

💻 + Jonathan Feinberg
Jonathan Feinberg

💻 + David Fokkema
David Fokkema

💻 + liquid
liquid

💻 + Kisaru Liyanage
Kisaru Liyanage

💻 + BouB
BouB

💻 + + + atk
atk

💻 + Xerxes Rånby
Xerxes Rånby

💻 + Will Rabalais
Will Rabalais

💻 + Utkarsh Tiwari
Utkarsh Tiwari

💻 + Prince-Polka
Prince-Polka

💻 + jamesjgrady
jamesjgrady

💻 + + + Raphaël de Courville
Raphaël de Courville

💻 + Satoshi Okita
Satoshi Okita

💻 + Carlos Andrés Rocha
Carlos Andrés Rocha

💻 + Vincent Vijn
Vincent Vijn

💻 + dzaima
dzaima

💻 mingness
mingness

🚇 + + Dora Do
Dora Do

🚇 + From e283ae73317a7000ac3533a3d4d7f3ac6a038455 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 13:10:52 +0000 Subject: [PATCH 111/459] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 7d231d30f..35f26c441 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -559,6 +559,15 @@ "contributions": [ "infra" ] + }, + { + "login": "doradocodes", + "name": "Dora Do", + "avatar_url": "https://avatars.githubusercontent.com/u/140831752?v=4", + "profile": "https://doradocodes.com/", + "contributions": [ + "infra" + ] } ], "repoType": "github", From 51783b54394787269c1db28c26a0883c321f5f3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 1 Nov 2024 14:23:33 +0100 Subject: [PATCH 112/459] Add contributors from processing/processing repo --- .all-contributorsrc | 801 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 801 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 35f26c441..173517e6c 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -568,6 +568,807 @@ "contributions": [ "infra" ] + }, + { + "login": "Stefterv", + "name": "Stef Tervelde", + "avatar_url": "https://avatars.githubusercontent.com/u/4988953?v=4", + "profile": "https://steftervel.de/", + "contributions": [ + "code" + ] + }, + { + "login": "allcontributors[bot]", + "name": "allcontributors[bot]", + "avatar_url": "https://avatars.githubusercontent.com/in/23186?v=4", + "profile": "https://github.com/apps/allcontributors", + "contributions": [ + "code" + ] + }, + { + "login": "datguy", + "name": "Dave", + "avatar_url": "https://avatars.githubusercontent.com/u/131480?v=4", + "profile": "http://www.linkedin.com/in/davidtregay/", + "contributions": [ + "code" + ] + }, + { + "login": "TN8001", + "name": "TN8001", + "avatar_url": "https://avatars.githubusercontent.com/u/28250188?v=4", + "profile": "https://github.com/TN8001", + "contributions": [ + "code" + ] + }, + { + "login": "Sardtok", + "name": "Sigmund Hansen", + "avatar_url": "https://avatars.githubusercontent.com/u/613667?v=4", + "profile": "https://github.com/Sardtok", + "contributions": [ + "code" + ] + }, + { + "login": "rbonifacio", + "name": "Rodrigo Bonifácio", + "avatar_url": "https://avatars.githubusercontent.com/u/1269433?v=4", + "profile": "http://rbonifacio.github.io/", + "contributions": [ + "code" + ] + }, + { + "login": "Plastix", + "name": "Aidan Pieper", + "avatar_url": "https://avatars.githubusercontent.com/u/1526881?v=4", + "profile": "https://github.com/Plastix", + "contributions": [ + "code" + ] + }, + { + "login": "Minimaximize", + "name": "Liam James", + "avatar_url": "https://avatars.githubusercontent.com/u/12061276?v=4", + "profile": "https://www.minimaximize.com/", + "contributions": [ + "code" + ] + }, + { + "login": "kazimuth", + "name": "james gilles", + "avatar_url": "https://avatars.githubusercontent.com/u/555667?v=4", + "profile": "https://github.com/kazimuth", + "contributions": [ + "code" + ] + }, + { + "login": "prisonerjohn", + "name": "Elie Zananiri", + "avatar_url": "https://avatars.githubusercontent.com/u/119702?v=4", + "profile": "http://www.prisonerjohn.com/", + "contributions": [ + "code" + ] + }, + { + "login": "cosimoc", + "name": "Cosimo Cecchi", + "avatar_url": "https://avatars.githubusercontent.com/u/13906?v=4", + "profile": "http://blogs.gnome.org/cosimoc", + "contributions": [ + "code" + ] + }, + { + "login": "liam-middlebrook", + "name": "Liam Middlebrook", + "avatar_url": "https://avatars.githubusercontent.com/u/3920942?v=4", + "profile": "https://github.com/liam-middlebrook", + "contributions": [ + "code" + ] + }, + { + "login": "myrjola", + "name": "Martin Yrjölä", + "avatar_url": "https://avatars.githubusercontent.com/u/36122?v=4", + "profile": "https://github.com/myrjola", + "contributions": [ + "code" + ] + }, + { + "login": "urbanskimichal", + "name": "Michał Urbański", + "avatar_url": "https://avatars.githubusercontent.com/u/18449680?v=4", + "profile": "https://tajnyprojekt.com/", + "contributions": [ + "code" + ] + }, + { + "login": "pacoelayudante", + "name": "Paco", + "avatar_url": "https://avatars.githubusercontent.com/u/9141115?v=4", + "profile": "https://github.com/pacoelayudante", + "contributions": [ + "code" + ] + }, + { + "login": "pjryan93", + "name": "Patrick Ryan", + "avatar_url": "https://avatars.githubusercontent.com/u/7769635?v=4", + "profile": "https://github.com/pjryan93", + "contributions": [ + "code" + ] + }, + { + "login": "qiubit", + "name": "Paweł Goliński", + "avatar_url": "https://avatars.githubusercontent.com/u/8190751?v=4", + "profile": "https://mimotaurs.pl/", + "contributions": [ + "code" + ] + }, + { + "login": "rupeshkumar22", + "name": "Rupesh Kumar", + "avatar_url": "https://avatars.githubusercontent.com/u/46577873?v=4", + "profile": "https://iamrupesh.me/", + "contributions": [ + "code" + ] + }, + { + "login": "suheb", + "name": "Suhaib Khan", + "avatar_url": "https://avatars.githubusercontent.com/u/4609293?v=4", + "profile": "https://suhaibkhan.com/", + "contributions": [ + "code" + ] + }, + { + "login": "yblake", + "name": "Yves BLAKE", + "avatar_url": "https://avatars.githubusercontent.com/u/9674161?v=4", + "profile": "https://github.com/yblake", + "contributions": [ + "code" + ] + }, + { + "login": "ernestum", + "name": "M. Ernestus", + "avatar_url": "https://avatars.githubusercontent.com/u/1250234?v=4", + "profile": "https://github.com/ernestum", + "contributions": [ + "code" + ] + }, + { + "login": "francisli", + "name": "Francis Li", + "avatar_url": "https://avatars.githubusercontent.com/u/140766?v=4", + "profile": "https://github.com/francisli", + "contributions": [ + "code" + ] + }, + { + "login": "PARAG00991", + "name": "Parag Jain", + "avatar_url": "https://avatars.githubusercontent.com/u/8044561?v=4", + "profile": "https://github.com/PARAG00991", + "contributions": [ + "code" + ] + }, + { + "login": "rouxpz", + "name": "roopa vasudevan", + "avatar_url": "https://avatars.githubusercontent.com/u/1497519?v=4", + "profile": "http://roopavasudevan.com/", + "contributions": [ + "code" + ] + }, + { + "login": "kiwistrongis", + "name": "kiwistrongis", + "avatar_url": "https://avatars.githubusercontent.com/u/2838640?v=4", + "profile": "https://github.com/kiwistrongis", + "contributions": [ + "code" + ] + }, + { + "login": "alranel", + "name": "Alessandro Ranellucci", + "avatar_url": "https://avatars.githubusercontent.com/u/594957?v=4", + "profile": "https://www.linkedin.com/in/alessandro-ranellucci/", + "contributions": [ + "code" + ] + }, + { + "login": "villares", + "name": "Alexandre B A Villares", + "avatar_url": "https://avatars.githubusercontent.com/u/3694604?v=4", + "profile": "https://abav.lugaralgum.com/", + "contributions": [ + "code" + ] + }, + { + "login": "Arty2", + "name": "Heracles", + "avatar_url": "https://avatars.githubusercontent.com/u/3519269?v=4", + "profile": "http://heracl.es/", + "contributions": [ + "code" + ] + }, + { + "login": "Arya-Gupta", + "name": "Arya Gupta", + "avatar_url": "https://avatars.githubusercontent.com/u/84087089?v=4", + "profile": "https://github.com/Arya-Gupta", + "contributions": [ + "code" + ] + }, + { + "login": "ddf", + "name": "Damien Quartz", + "avatar_url": "https://avatars.githubusercontent.com/u/141640?v=4", + "profile": "https://github.com/ddf", + "contributions": [ + "code" + ] + }, + { + "login": "GABBAR1947", + "name": "Shubham Rathore", + "avatar_url": "https://avatars.githubusercontent.com/u/9786291?v=4", + "profile": "https://rathoresaab.wordpress.com/", + "contributions": [ + "code" + ] + }, + { + "login": "gtitaev", + "name": "Grigoriy Titaev", + "avatar_url": "https://avatars.githubusercontent.com/u/6291442?v=4", + "profile": "https://github.com/gtitaev", + "contributions": [ + "code" + ] + }, + { + "login": "guilhermesilveira", + "name": "Guilherme Silveira", + "avatar_url": "https://avatars.githubusercontent.com/u/51391?v=4", + "profile": "https://www.alura.com.br/", + "contributions": [ + "code" + ] + }, + { + "login": "HectorCarral", + "name": "Héctor López Carral", + "avatar_url": "https://avatars.githubusercontent.com/u/26223377?v=4", + "profile": "https://hectorcarral.com/", + "contributions": [ + "code" + ] + }, + { + "login": "jeremydouglass", + "name": "Jeremy Douglass", + "avatar_url": "https://avatars.githubusercontent.com/u/798570?v=4", + "profile": "http://jeremydouglass.com/", + "contributions": [ + "code" + ] + }, + { + "login": "whackashoe", + "name": "Jett LaRue", + "avatar_url": "https://avatars.githubusercontent.com/u/855581?v=4", + "profile": "https://jettlarue.com/", + "contributions": [ + "code" + ] + }, + { + "login": "hx2A", + "name": "Jim", + "avatar_url": "https://avatars.githubusercontent.com/u/4044283?v=4", + "profile": "https://github.com/hx2A", + "contributions": [ + "code" + ] + }, + { + "login": "jperals", + "name": "Joan Perals", + "avatar_url": "https://avatars.githubusercontent.com/u/1257272?v=4", + "profile": "https://perals.io/", + "contributions": [ + "code" + ] + }, + { + "login": "oseph", + "name": "Josh Holinaty", + "avatar_url": "https://avatars.githubusercontent.com/u/23200117?v=4", + "profile": "https://github.com/oseph", + "contributions": [ + "code" + ] + }, + { + "login": "cathiecode", + "name": "Keito Takeda", + "avatar_url": "https://avatars.githubusercontent.com/u/74973441?v=4", + "profile": "https://catherine.superneko.net/", + "contributions": [ + "code" + ] + }, + { + "login": "vepo", + "name": "Victor Osório", + "avatar_url": "https://avatars.githubusercontent.com/u/353569?v=4", + "profile": "https://github.com/vepo", + "contributions": [ + "code" + ] + }, + { + "login": "letorbi", + "name": "Torben", + "avatar_url": "https://avatars.githubusercontent.com/u/1268015?v=4", + "profile": "https://letorbi.com/", + "contributions": [ + "code" + ] + }, + { + "login": "TobiPristupin", + "name": "Tobias Pristupin", + "avatar_url": "https://avatars.githubusercontent.com/u/22137035?v=4", + "profile": "https://github.com/TobiPristupin", + "contributions": [ + "code" + ] + }, + { + "login": "thomasleplus", + "name": "Thomas Leplus", + "avatar_url": "https://avatars.githubusercontent.com/u/1929743?v=4", + "profile": "https://www.leplus.org/", + "contributions": [ + "code" + ] + }, + { + "login": "arnoudvanderleer", + "name": "Arnoud van der Leer", + "avatar_url": "https://avatars.githubusercontent.com/u/6382058?v=4", + "profile": "https://github.com/arnoudvanderleer", + "contributions": [ + "code" + ] + }, + { + "login": "knupel", + "name": "Stanislas Marçais / Knupel", + "avatar_url": "https://avatars.githubusercontent.com/u/3332269?v=4", + "profile": "http://knupel.art/", + "contributions": [ + "code" + ] + }, + { + "login": "DarkPrince304", + "name": "Sanchit Kapoor", + "avatar_url": "https://avatars.githubusercontent.com/u/9005407?v=4", + "profile": "https://github.com/DarkPrince304", + "contributions": [ + "code" + ] + }, + { + "login": "hazmatsuitor", + "name": "Miles Fogle", + "avatar_url": "https://avatars.githubusercontent.com/u/6372134?v=4", + "profile": "https://github.com/hazmatsuitor", + "contributions": [ + "code" + ] + }, + { + "login": "mvaladas", + "name": "Miguel Valadas", + "avatar_url": "https://avatars.githubusercontent.com/u/120122?v=4", + "profile": "https://github.com/mvaladas", + "contributions": [ + "code" + ] + }, + { + "login": "mglst", + "name": "Maximilien Tirard", + "avatar_url": "https://avatars.githubusercontent.com/u/13157227?v=4", + "profile": "https://github.com/mglst", + "contributions": [ + "code" + ] + }, + { + "login": "Clarvel", + "name": "Matthew Russell", + "avatar_url": "https://avatars.githubusercontent.com/u/4959627?v=4", + "profile": "https://github.com/Clarvel", + "contributions": [ + "code" + ] + }, + { + "login": "dcuartielles", + "name": "dcuartielles", + "avatar_url": "https://avatars.githubusercontent.com/u/40865?v=4", + "profile": "https://github.com/dcuartielles", + "contributions": [ + "code" + ] + }, + { + "login": "jaysonkh", + "name": "Jayson Haebich", + "avatar_url": "https://avatars.githubusercontent.com/u/1037665?v=4", + "profile": "https://github.com/jaysonkh", + "contributions": [ + "code" + ] + }, + { + "login": "jordirosa-p5", + "name": "jordirosa", + "avatar_url": "https://avatars.githubusercontent.com/u/4674664?v=4", + "profile": "https://github.com/jordirosa-p5", + "contributions": [ + "code" + ] + }, + { + "login": "jshrake", + "name": "Justin Shrake", + "avatar_url": "https://avatars.githubusercontent.com/u/3046816?v=4", + "profile": "https://github.com/jshrake", + "contributions": [ + "code" + ] + }, + { + "login": "kevinstadler", + "name": "Kevin", + "avatar_url": "https://avatars.githubusercontent.com/u/7602414?v=4", + "profile": "https://github.com/kevinstadler", + "contributions": [ + "code" + ] + }, + { + "login": "kgtkr", + "name": "kgtkr", + "avatar_url": "https://avatars.githubusercontent.com/u/17868838?v=4", + "profile": "https://kgtkr.net/", + "contributions": [ + "code" + ] + }, + { + "login": "markluffel", + "name": "Mark Luffel", + "avatar_url": "https://avatars.githubusercontent.com/u/13292?v=4", + "profile": "https://github.com/markluffel", + "contributions": [ + "code" + ] + }, + { + "login": "nking07049925", + "name": "Никита Король", + "avatar_url": "https://avatars.githubusercontent.com/u/11886663?v=4", + "profile": "https://github.com/nking07049925", + "contributions": [ + "code" + ] + }, + { + "login": "montardon", + "name": "raguenets", + "avatar_url": "https://avatars.githubusercontent.com/u/238749?v=4", + "profile": "https://github.com/montardon", + "contributions": [ + "code" + ] + }, + { + "login": "robog-two", + "name": "robog-two", + "avatar_url": "https://avatars.githubusercontent.com/u/77205106?v=4", + "profile": "https://github.com/robog-two", + "contributions": [ + "code" + ] + }, + { + "login": "teddywing", + "name": "teddywing", + "avatar_url": "https://avatars.githubusercontent.com/u/342964?v=4", + "profile": "https://github.com/teddywing", + "contributions": [ + "code" + ] + }, + { + "login": "tiwawan", + "name": "chikuwa", + "avatar_url": "https://avatars.githubusercontent.com/u/4486076?v=4", + "profile": "https://github.com/tiwawan", + "contributions": [ + "code" + ] + }, + { + "login": "QazCetelic", + "name": "ಠ_ಠ", + "avatar_url": "https://avatars.githubusercontent.com/u/51381523?v=4", + "profile": "https://github.com/QazCetelic", + "contributions": [ + "code" + ] + }, + { + "login": "hamoid", + "name": "Abe Pazos", + "avatar_url": "https://avatars.githubusercontent.com/u/108264?v=4", + "profile": "https://hamoid.com/", + "contributions": [ + "code" + ] + }, + { + "login": "sashashura", + "name": "Alex", + "avatar_url": "https://avatars.githubusercontent.com/u/93376818?v=4", + "profile": "https://github.com/sashashura", + "contributions": [ + "code" + ] + }, + { + "login": "alexanderghurst", + "name": "Alexander Hurst", + "avatar_url": "https://avatars.githubusercontent.com/u/34695105?v=4", + "profile": "https://github.com/alexanderghurst", + "contributions": [ + "code" + ] + }, + { + "login": "Xwhn", + "name": "Anıl", + "avatar_url": "https://avatars.githubusercontent.com/u/8299732?v=4", + "profile": "https://github.com/Xwhn", + "contributions": [ + "code" + ] + }, + { + "login": "setanarut", + "name": "Barış", + "avatar_url": "https://avatars.githubusercontent.com/u/36481442?v=4", + "profile": "https://github.com/setanarut", + "contributions": [ + "code" + ] + }, + { + "login": "bsapozhnikov", + "name": "Brian Sapozhnikov", + "avatar_url": "https://avatars.githubusercontent.com/u/5421484?v=4", + "profile": "https://github.com/bsapozhnikov", + "contributions": [ + "code" + ] + }, + { + "login": "charlesbones", + "name": "Carlos Mario Rodriguez Perdomo", + "avatar_url": "https://avatars.githubusercontent.com/u/3228784?v=4", + "profile": "https://github.com/charlesbones", + "contributions": [ + "code" + ] + }, + { + "login": "CyberFlameGO", + "name": "CyberFlame", + "avatar_url": "https://avatars.githubusercontent.com/u/24910512?v=4", + "profile": "https://github.com/CyberFlameGO", + "contributions": [ + "code" + ] + }, + { + "login": "dhruv13J", + "name": "Dhruv Jawali", + "avatar_url": "https://avatars.githubusercontent.com/u/4868174?v=4", + "profile": "https://github.com/dhruv13J", + "contributions": [ + "code" + ] + }, + { + "login": "FlorisVO", + "name": "FlorisVO", + "avatar_url": "https://avatars.githubusercontent.com/u/29863403?v=4", + "profile": "https://github.com/FlorisVO", + "contributions": [ + "code" + ] + }, + { + "login": "frankleonrose", + "name": "Frank Leon Rose", + "avatar_url": "https://avatars.githubusercontent.com/u/1261725?v=4", + "profile": "https://github.com/frankleonrose", + "contributions": [ + "code" + ] + }, + { + "login": "atduskgreg", + "name": "Greg Borenstein", + "avatar_url": "https://avatars.githubusercontent.com/u/165?v=4", + "profile": "http://gregborenstein.com/", + "contributions": [ + "code" + ] + }, + { + "login": "libasoles", + "name": "Guillermo Perez", + "avatar_url": "https://avatars.githubusercontent.com/u/8009070?v=4", + "profile": "https://github.com/libasoles", + "contributions": [ + "code" + ] + }, + { + "login": "hkiel", + "name": "Henning Kiel", + "avatar_url": "https://avatars.githubusercontent.com/u/9904830?v=4", + "profile": "https://github.com/hkiel", + "contributions": [ + "code" + ] + }, + { + "login": "jdeisenberg", + "name": "J David Eisenberg", + "avatar_url": "https://avatars.githubusercontent.com/u/160096?v=4", + "profile": "http://catcode.com/", + "contributions": [ + "code" + ] + }, + { + "login": "JEphron", + "name": "Jordan Ephron", + "avatar_url": "https://avatars.githubusercontent.com/u/1817241?v=4", + "profile": "https://github.com/JEphron", + "contributions": [ + "code" + ] + }, + { + "login": "therewasaguy", + "name": "Jason Sigal", + "avatar_url": "https://avatars.githubusercontent.com/u/504124?v=4", + "profile": "https://jasonsigal.cc/", + "contributions": [ + "code" + ] + }, + { + "login": "jordanorelli", + "name": "Jordan Orelli", + "avatar_url": "https://avatars.githubusercontent.com/u/400255?v=4", + "profile": "https://orel.li/", + "contributions": [ + "code" + ] + }, + { + "login": "karlre", + "name": "Kalle", + "avatar_url": "https://avatars.githubusercontent.com/u/22083320?v=4", + "profile": "https://github.com/karlre", + "contributions": [ + "code" + ] + }, + { + "login": "kamedin", + "name": "Laureano López", + "avatar_url": "https://avatars.githubusercontent.com/u/5443113?v=4", + "profile": "https://github.com/kamedin", + "contributions": [ + "code" + ] + }, + { + "login": "LesleyWagner", + "name": "Lesley Wagner", + "avatar_url": "https://avatars.githubusercontent.com/u/33584486?v=4", + "profile": "https://github.com/LesleyWagner", + "contributions": [ + "code" + ] + }, + { + "login": "mcslee", + "name": "Mark Slee", + "avatar_url": "https://avatars.githubusercontent.com/u/597850?v=4", + "profile": "http://mcslee.com/", + "contributions": [ + "code" + ] + }, + { + "login": "martinleopold", + "name": "MARTIN LEOPOLD GROEDL", + "avatar_url": "https://avatars.githubusercontent.com/u/1692826?v=4", + "profile": "https://groedl.xyz/", + "contributions": [ + "code" + ] + }, + { + "login": "monkstone", + "name": "Martin Prout", + "avatar_url": "https://avatars.githubusercontent.com/u/86850?v=4", + "profile": "https://monkstone.github.io/", + "contributions": [ + "code" + ] + }, + { + "login": "hbs", + "name": "Mathias Herberts", + "avatar_url": "https://avatars.githubusercontent.com/u/236594?v=4", + "profile": "https://github.com/hbs", + "contributions": [ + "code" + ] } ], "repoType": "github", From c77ff90d03a97f05b3752ba9fbd0222cb0b741dc Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 13:24:58 +0000 Subject: [PATCH 113/459] docs: update README.md [skip ci] --- README.md | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) diff --git a/README.md b/README.md index 96416cf8b..73f60b527 100644 --- a/README.md +++ b/README.md @@ -155,6 +155,126 @@ Copyright (c) 2015-now The Processing Foundation Dora Do
Dora Do

🚇 + Stef Tervelde
Stef Tervelde

💻 + allcontributors[bot]
allcontributors[bot]

💻 + Dave
Dave

💻 + TN8001
TN8001

💻 + Sigmund Hansen
Sigmund Hansen

💻 + + + Rodrigo Bonifácio
Rodrigo Bonifácio

💻 + Aidan Pieper
Aidan Pieper

💻 + Liam James
Liam James

💻 + james gilles
james gilles

💻 + Elie Zananiri
Elie Zananiri

💻 + Cosimo Cecchi
Cosimo Cecchi

💻 + + + Liam Middlebrook
Liam Middlebrook

💻 + Martin Yrjölä
Martin Yrjölä

💻 + Michał Urbański
Michał Urbański

💻 + Paco
Paco

💻 + Patrick Ryan
Patrick Ryan

💻 + Paweł Goliński
Paweł Goliński

💻 + + + Rupesh Kumar
Rupesh Kumar

💻 + Suhaib Khan
Suhaib Khan

💻 + Yves BLAKE
Yves BLAKE

💻 + M. Ernestus
M. Ernestus

💻 + Francis Li
Francis Li

💻 + Parag Jain
Parag Jain

💻 + + + roopa vasudevan
roopa vasudevan

💻 + kiwistrongis
kiwistrongis

💻 + Alessandro Ranellucci
Alessandro Ranellucci

💻 + Alexandre B A Villares
Alexandre B A Villares

💻 + Heracles
Heracles

💻 + Arya Gupta
Arya Gupta

💻 + + + Damien Quartz
Damien Quartz

💻 + Shubham Rathore
Shubham Rathore

💻 + Grigoriy Titaev
Grigoriy Titaev

💻 + Guilherme Silveira
Guilherme Silveira

💻 + Héctor López Carral
Héctor López Carral

💻 + Jeremy Douglass
Jeremy Douglass

💻 + + + Jett LaRue
Jett LaRue

💻 + Jim
Jim

💻 + Joan Perals
Joan Perals

💻 + Josh Holinaty
Josh Holinaty

💻 + Keito Takeda
Keito Takeda

💻 + Victor Osório
Victor Osório

💻 + + + Torben
Torben

💻 + Tobias Pristupin
Tobias Pristupin

💻 + Thomas Leplus
Thomas Leplus

💻 + Arnoud van der Leer
Arnoud van der Leer

💻 + Stanislas Marçais / Knupel
Stanislas Marçais / Knupel

💻 + Sanchit Kapoor
Sanchit Kapoor

💻 + + + Miles Fogle
Miles Fogle

💻 + Miguel Valadas
Miguel Valadas

💻 + Maximilien Tirard
Maximilien Tirard

💻 + Matthew Russell
Matthew Russell

💻 + dcuartielles
dcuartielles

💻 + Jayson Haebich
Jayson Haebich

💻 + + + jordirosa
jordirosa

💻 + Justin Shrake
Justin Shrake

💻 + Kevin
Kevin

💻 + kgtkr
kgtkr

💻 + Mark Luffel
Mark Luffel

💻 + Никита Король
Никита Король

💻 + + + raguenets
raguenets

💻 + robog-two
robog-two

💻 + teddywing
teddywing

💻 + chikuwa
chikuwa

💻 + ಠ_ಠ
ಠ_ಠ

💻 + Abe Pazos
Abe Pazos

💻 + + + Alex
Alex

💻 + Alexander Hurst
Alexander Hurst

💻 + Anıl
Anıl

💻 + Barış
Barış

💻 + Brian Sapozhnikov
Brian Sapozhnikov

💻 + Carlos Mario Rodriguez Perdomo
Carlos Mario Rodriguez Perdomo

💻 + + + CyberFlame
CyberFlame

💻 + Dhruv Jawali
Dhruv Jawali

💻 + FlorisVO
FlorisVO

💻 + Frank Leon Rose
Frank Leon Rose

💻 + Greg Borenstein
Greg Borenstein

💻 + Guillermo Perez
Guillermo Perez

💻 + + + Henning Kiel
Henning Kiel

💻 + J David Eisenberg
J David Eisenberg

💻 + Jordan Ephron
Jordan Ephron

💻 + Jason Sigal
Jason Sigal

💻 + Jordan Orelli
Jordan Orelli

💻 + Kalle
Kalle

💻 + + + Laureano López
Laureano López

💻 + Lesley Wagner
Lesley Wagner

💻 + Mark Slee
Mark Slee

💻 + MARTIN LEOPOLD GROEDL
MARTIN LEOPOLD GROEDL

💻 + Martin Prout
Martin Prout

💻 + Mathias Herberts
Mathias Herberts

💻 + + + Diya Solanki
Diya Solanki

🚇 From 2b6515a00796051552379def42ac5538d474d61f Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 13:24:59 +0000 Subject: [PATCH 114/459] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 173517e6c..e468816bd 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -1369,6 +1369,15 @@ "contributions": [ "code" ] + }, + { + "login": "diyaayay", + "name": "Diya Solanki", + "avatar_url": "https://avatars.githubusercontent.com/u/110971977?v=4", + "profile": "http://www.diyasolanki.com", + "contributions": [ + "infra" + ] } ], "repoType": "github", From 9872f5bd3906b14ce3cbf3bacb76c870426c0a74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 1 Nov 2024 14:28:15 +0100 Subject: [PATCH 115/459] Update .all-contributorsrc to remove duplicate --- .all-contributorsrc | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index e468816bd..57e4cdd94 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -65,15 +65,6 @@ "code" ] }, - { - "login": "REAS", - "name": "Casey Reas", - "avatar_url": "https://avatars.githubusercontent.com/u/677774?v=4", - "profile": "http://reas.com/", - "contributions": [ - "code" - ] - }, { "login": "sampottinger", "name": "A Samuel Pottinger", From 11c0b77cd3113769a649660421c6ed9d9cc44229 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 1 Nov 2024 14:41:40 +0100 Subject: [PATCH 116/459] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 73f60b527..94b470f4c 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,8 @@ Copyright (c) 2015-now The Processing Foundation ## Contributors +If you contributed to Processing in any way shape or form, add yourself to the contributors list [here](https://github.com/processing/processing4-carbon-aug-19/issues/839)! + From 348092860836ead82a66a96f26575f44bfa770f6 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 13:43:27 +0000 Subject: [PATCH 117/459] docs: update README.md [skip ci] --- README.md | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 94b470f4c..c726b89ab 100644 --- a/README.md +++ b/README.md @@ -81,202 +81,202 @@ If you contributed to Processing in any way shape or form, add yourself to the c codeanticode
codeanticode

💻 Manindra Moharana
Manindra Moharana

💻 Jakub Valtar
Jakub Valtar

💻 - Casey Reas
Casey Reas

💻 + A Samuel Pottinger
A Samuel Pottinger

💻 - A Samuel Pottinger
A Samuel Pottinger

💻 Gottfried Haider
Gottfried Haider

💻 Akarshit Wal
Akarshit Wal

💻 Peter Kalauskas
Peter Kalauskas

💻 Daniel Shiffman
Daniel Shiffman

💻 Joel Moniz
Joel Moniz

💻 + Lonnen
Lonnen

💻 - Lonnen
Lonnen

💻 Florian Jenett
Florian Jenett

💻 Scott Murray
Scott Murray

💻 Federico Bond
Federico Bond

💻 pvrs12
pvrs12

💻 George Bateman
George Bateman

💻 + Sean McKenna
Sean McKenna

💻 - Sean McKenna
Sean McKenna

💻 kfeuz
kfeuz

💻 David Wicks
David Wicks

💻 Wilm Thoben
Wilm Thoben

💻 Ana
Ana

💻 Amnon Owed
Amnon Owed

💻 + Gal Sasson
Gal Sasson

💻 - Gal Sasson
Gal Sasson

💻 scollovati
scollovati

💻 Yong Joseph Bakos
Yong Joseph Bakos

💻 Kenichi Ito
Kenichi Ito

💻 Efratror
Efratror

💻 Alexis Engelke
Alexis Engelke

💻 + tyfkda
tyfkda

💻 - tyfkda
tyfkda

💻 Simon Greenwold
Simon Greenwold

💻 Rune Skjoldborg Madsen
Rune Skjoldborg Madsen

💻 Leslie Watkins
Leslie Watkins

💻 Rostyslav Zatserkovnyi
Rostyslav Zatserkovnyi

💻 Dan
Dan

💻 + Daniel Howe
Daniel Howe

💻 - Daniel Howe
Daniel Howe

💻 Josh Giesbrecht
Josh Giesbrecht

💻 liquidex
liquidex

💻 bgc
bgc

💻 Mohammad Umair
Mohammad Umair

💻 T Michail
T Michail

💻 + ohommos
ohommos

💻 - ohommos
ohommos

💻 Jonathan Feinberg
Jonathan Feinberg

💻 David Fokkema
David Fokkema

💻 liquid
liquid

💻 Kisaru Liyanage
Kisaru Liyanage

💻 BouB
BouB

💻 + atk
atk

💻 - atk
atk

💻 Xerxes Rånby
Xerxes Rånby

💻 Will Rabalais
Will Rabalais

💻 Utkarsh Tiwari
Utkarsh Tiwari

💻 Prince-Polka
Prince-Polka

💻 jamesjgrady
jamesjgrady

💻 + Raphaël de Courville
Raphaël de Courville

💻 - Raphaël de Courville
Raphaël de Courville

💻 Satoshi Okita
Satoshi Okita

💻 Carlos Andrés Rocha
Carlos Andrés Rocha

💻 Vincent Vijn
Vincent Vijn

💻 dzaima
dzaima

💻 mingness
mingness

🚇 + Dora Do
Dora Do

🚇 - Dora Do
Dora Do

🚇 Stef Tervelde
Stef Tervelde

💻 allcontributors[bot]
allcontributors[bot]

💻 Dave
Dave

💻 TN8001
TN8001

💻 Sigmund Hansen
Sigmund Hansen

💻 + Rodrigo Bonifácio
Rodrigo Bonifácio

💻 - Rodrigo Bonifácio
Rodrigo Bonifácio

💻 Aidan Pieper
Aidan Pieper

💻 Liam James
Liam James

💻 james gilles
james gilles

💻 Elie Zananiri
Elie Zananiri

💻 Cosimo Cecchi
Cosimo Cecchi

💻 + Liam Middlebrook
Liam Middlebrook

💻 - Liam Middlebrook
Liam Middlebrook

💻 Martin Yrjölä
Martin Yrjölä

💻 Michał Urbański
Michał Urbański

💻 Paco
Paco

💻 Patrick Ryan
Patrick Ryan

💻 Paweł Goliński
Paweł Goliński

💻 + Rupesh Kumar
Rupesh Kumar

💻 - Rupesh Kumar
Rupesh Kumar

💻 Suhaib Khan
Suhaib Khan

💻 Yves BLAKE
Yves BLAKE

💻 M. Ernestus
M. Ernestus

💻 Francis Li
Francis Li

💻 Parag Jain
Parag Jain

💻 + roopa vasudevan
roopa vasudevan

💻 - roopa vasudevan
roopa vasudevan

💻 kiwistrongis
kiwistrongis

💻 Alessandro Ranellucci
Alessandro Ranellucci

💻 Alexandre B A Villares
Alexandre B A Villares

💻 Heracles
Heracles

💻 Arya Gupta
Arya Gupta

💻 + Damien Quartz
Damien Quartz

💻 - Damien Quartz
Damien Quartz

💻 Shubham Rathore
Shubham Rathore

💻 Grigoriy Titaev
Grigoriy Titaev

💻 Guilherme Silveira
Guilherme Silveira

💻 Héctor López Carral
Héctor López Carral

💻 Jeremy Douglass
Jeremy Douglass

💻 + Jett LaRue
Jett LaRue

💻 - Jett LaRue
Jett LaRue

💻 Jim
Jim

💻 Joan Perals
Joan Perals

💻 Josh Holinaty
Josh Holinaty

💻 Keito Takeda
Keito Takeda

💻 Victor Osório
Victor Osório

💻 + Torben
Torben

💻 - Torben
Torben

💻 Tobias Pristupin
Tobias Pristupin

💻 Thomas Leplus
Thomas Leplus

💻 Arnoud van der Leer
Arnoud van der Leer

💻 Stanislas Marçais / Knupel
Stanislas Marçais / Knupel

💻 Sanchit Kapoor
Sanchit Kapoor

💻 + Miles Fogle
Miles Fogle

💻 - Miles Fogle
Miles Fogle

💻 Miguel Valadas
Miguel Valadas

💻 Maximilien Tirard
Maximilien Tirard

💻 Matthew Russell
Matthew Russell

💻 dcuartielles
dcuartielles

💻 Jayson Haebich
Jayson Haebich

💻 + jordirosa
jordirosa

💻 - jordirosa
jordirosa

💻 Justin Shrake
Justin Shrake

💻 Kevin
Kevin

💻 kgtkr
kgtkr

💻 Mark Luffel
Mark Luffel

💻 Никита Король
Никита Король

💻 + raguenets
raguenets

💻 - raguenets
raguenets

💻 robog-two
robog-two

💻 teddywing
teddywing

💻 chikuwa
chikuwa

💻 ಠ_ಠ
ಠ_ಠ

💻 Abe Pazos
Abe Pazos

💻 + Alex
Alex

💻 - Alex
Alex

💻 Alexander Hurst
Alexander Hurst

💻 Anıl
Anıl

💻 Barış
Barış

💻 Brian Sapozhnikov
Brian Sapozhnikov

💻 Carlos Mario Rodriguez Perdomo
Carlos Mario Rodriguez Perdomo

💻 + CyberFlame
CyberFlame

💻 - CyberFlame
CyberFlame

💻 Dhruv Jawali
Dhruv Jawali

💻 FlorisVO
FlorisVO

💻 Frank Leon Rose
Frank Leon Rose

💻 Greg Borenstein
Greg Borenstein

💻 Guillermo Perez
Guillermo Perez

💻 + Henning Kiel
Henning Kiel

💻 - Henning Kiel
Henning Kiel

💻 J David Eisenberg
J David Eisenberg

💻 Jordan Ephron
Jordan Ephron

💻 Jason Sigal
Jason Sigal

💻 Jordan Orelli
Jordan Orelli

💻 Kalle
Kalle

💻 + Laureano López
Laureano López

💻 - Laureano López
Laureano López

💻 Lesley Wagner
Lesley Wagner

💻 Mark Slee
Mark Slee

💻 MARTIN LEOPOLD GROEDL
MARTIN LEOPOLD GROEDL

💻 Martin Prout
Martin Prout

💻 Mathias Herberts
Mathias Herberts

💻 + Diya Solanki
Diya Solanki

🚇 - Diya Solanki
Diya Solanki

🚇 + Neil C Smith
Neil C Smith

🚇 From 799dd41e32eaa3b1d7bc9fe4a9131d665ef3a685 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 13:43:28 +0000 Subject: [PATCH 118/459] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 57e4cdd94..4d8d96e2c 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -1369,6 +1369,15 @@ "contributions": [ "infra" ] + }, + { + "login": "neilcsmith-net", + "name": "Neil C Smith", + "avatar_url": "https://avatars.githubusercontent.com/u/3975960?v=4", + "profile": "https://www.codelerity.com/", + "contributions": [ + "infra" + ] } ], "repoType": "github", From d4a7731d86248450f47c730af49545b4b6af9880 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 1 Nov 2024 15:13:05 +0100 Subject: [PATCH 119/459] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c726b89ab..5e63f8365 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ Copyright (c) 2015-now The Processing Foundation ## Contributors -If you contributed to Processing in any way shape or form, add yourself to the contributors list [here](https://github.com/processing/processing4-carbon-aug-19/issues/839)! +Add yourself to the contributors list [here](https://github.com/processing/processing4-carbon-aug-19/issues/839)! From 3b67535f4bc4b63eb63f4a924483cda0f3661a4f Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 18:37:43 +0000 Subject: [PATCH 120/459] docs: update README.md [skip ci] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5e63f8365..15aac5374 100644 --- a/README.md +++ b/README.md @@ -204,7 +204,7 @@ Add yourself to the contributors list [here](https://github.com/processing/proce Jett LaRue
Jett LaRue

💻 - Jim
Jim

💻 + Jim
Jim

💻 🐛 Joan Perals
Joan Perals

💻 Josh Holinaty
Josh Holinaty

💻 Keito Takeda
Keito Takeda

💻 From 7c4e80b740a602a4a2eb67121fcde6ccfa16bfe1 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 18:37:44 +0000 Subject: [PATCH 121/459] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 4d8d96e2c..64d183d6a 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -890,7 +890,8 @@ "avatar_url": "https://avatars.githubusercontent.com/u/4044283?v=4", "profile": "https://github.com/hx2A", "contributions": [ - "code" + "code", + "bug" ] }, { From 614f31aab3ead8a471c00dafabe41017e05f133e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Thu, 7 Nov 2024 10:47:22 +0100 Subject: [PATCH 122/459] Update todo.txt --- todo.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/todo.txt b/todo.txt index b43c9304f..e23bdbcfe 100755 --- a/todo.txt +++ b/todo.txt @@ -1,4 +1,20 @@ 1294 (4.3.1) +^^^^^^^^^^^^ +NOTE: The first line in this file is the source for the current +revision of Processing for the build system. + +*************************************************************** +IMPORTANT: The rest of this file is left here for historical +reference and should not be used as a guide for current tasks +or priorities. Many items in this list are outdated or no longer +relevant. + +For contributors, please refer to the CONTRIBUTING guidelines +and check the open issues list for actionable items. If anything +here sparks interest, consider opening a new issue to discuss +its current relevance. +*************************************************************** + X add an extra note about the Ant version X https://github.com/processing/processing4/pull/783 From e276a7b4d8d02b7475d113c6624e4971d14e10aa Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Thu, 7 Nov 2024 10:50:25 +0100 Subject: [PATCH 123/459] Update build.yml [skip-ci] --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d8bdef980..9059ea736 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,6 +3,7 @@ on: push: paths-ignore: - '**/*.md' + - '.all-contributorsrc' jobs: test: From 9fcdbe3bf84dfaf9a675f2f6e286737c7e9e7c3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Thu, 7 Nov 2024 10:52:46 +0100 Subject: [PATCH 124/459] Update done.txt [skip ci] --- done.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/done.txt b/done.txt index 502328035..97a0ea8e9 100644 --- a/done.txt +++ b/done.txt @@ -1,4 +1,14 @@ 1293 (4.3) + +*************************************************************** +IMPORTANT: This file is left here for historical reference only. + +For contributors, please refer to the CONTRIBUTING guidelines +and check the open issues list for actionable items. If anything +here sparks interest, consider opening a new issue to discuss +its current relevance. +*************************************************************** + o ' appearing in code with Copy as HTML X could not reproduce / Cannot load any user language files for i18n From 425faffca0e2f7508449b12260763571baa4b9d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Thu, 7 Nov 2024 11:56:45 +0100 Subject: [PATCH 125/459] Update README.md Switch paragraph order [skip ci] --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 15aac5374..b74d6d49d 100644 --- a/README.md +++ b/README.md @@ -17,9 +17,6 @@ For assistance with your own sketches, projects, or code, please post your quest ## Contributing to Processing We welcome new contributors. If you want to fix a bug that's been bothering you or want to give back to the project, you're in the right place! Please see our [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines on how to contribute. -## Expected Behavior -Remember, Processing is a labor of love, run in large part by volunteers, and offered free of charge. We're here because we believe in this community and genuinely enjoy contributing to it. We always welcome constructive feedback. Just keep it friendly and helpful, please! For more tips on how to communicate within the project, take a peek at our [Code of Conduct](https://github.com/processing/processing4-carbon-aug-19?tab=coc-ov-file). - ## Building Processing Building Processing locally on your machine will let you troubleshoot and make sure your contributions work as intended before submitting them to this repository. It also gives you the flexibility to experiment and learn more about how Processing is structured. @@ -32,6 +29,9 @@ For a quick start: For more information and detailed instructions, follow our [How to Build Processing](build/README.md) guide. +## Expected Behavior +Remember, Processing is a labor of love, run in large part by volunteers, and offered free of charge. We're here because we believe in this community and genuinely enjoy contributing to it. We always welcome constructive feedback. Just keep it friendly and helpful, please! For more tips on how to communicate within the project, take a peek at our [Code of Conduct](https://github.com/processing/processing4-carbon-aug-19?tab=coc-ov-file). + ## About the Processing 4.0 release We've moved to a new repository for the 4.0 release so that we could cull a lot of the accumulated mess of the last 20 years. This made `git clone` (and most other `git` operations) a lot faster. From 4e834f0d8514757bcaf5a5ca8727947ce1f09c67 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 09:23:07 +0100 Subject: [PATCH 126/459] Added missing examples --- .github/workflows/build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9059ea736..6b5127b46 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -53,6 +53,11 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v4 + - name: Checkout Examples Repository + uses: actions/checkout@v4 + with: + repository: processing/processing-examples + path: ../processing-examples - name: Install Java uses: actions/setup-java@v4 with: From ec9b7c500ca49c72213bb7a5f28c17bef52e26da Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 09:26:41 +0100 Subject: [PATCH 127/459] Update build.yml Adding a side-repository in Github Actions does not seem to be allowed, we need to change the build file --- .github/workflows/build.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6b5127b46..9059ea736 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -53,11 +53,6 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v4 - - name: Checkout Examples Repository - uses: actions/checkout@v4 - with: - repository: processing/processing-examples - path: ../processing-examples - name: Install Java uses: actions/setup-java@v4 with: From a7b7b2f533f5079b5eb7cc78f5a543ccbc4847a5 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 09:49:39 +0100 Subject: [PATCH 128/459] processing-examples modification no longer use processing-examples on a sibling path --- .github/workflows/build.yml | 5 +++++ .gitignore | 5 ++++- build/build.xml | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9059ea736..457234604 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -51,6 +51,11 @@ jobs: os_prefix: linux arch: aarch64 steps: + - name: Checkout Examples Repository + uses: actions/checkout@v4 + with: + repository: processing/processing-examples + path: processing-examples - name: Checkout Repository uses: actions/checkout@v4 - name: Install Java diff --git a/.gitignore b/.gitignore index e3b98dcf5..9e915534c 100644 --- a/.gitignore +++ b/.gitignore @@ -92,4 +92,7 @@ bin-test # VS Code Java project files .project -.vscode/ \ No newline at end of file +.vscode/ + +# Processing examples +processing-examples \ No newline at end of file diff --git a/build/build.xml b/build/build.xml index 49cb5509b..10f0b5704 100644 --- a/build/build.xml +++ b/build/build.xml @@ -28,7 +28,7 @@ + location="processing-examples" /> From b26caa54b7fe6e1f0b2129f8134000df20071630 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 10:05:44 +0100 Subject: [PATCH 129/459] Update build.yml --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 457234604..29e165a39 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -51,13 +51,13 @@ jobs: os_prefix: linux arch: aarch64 steps: + - name: Checkout Repository + uses: actions/checkout@v4 - name: Checkout Examples Repository uses: actions/checkout@v4 with: repository: processing/processing-examples path: processing-examples - - name: Checkout Repository - uses: actions/checkout@v4 - name: Install Java uses: actions/setup-java@v4 with: From 9e2500a877a63f96b19c0e0bc3e0df991f6e8314 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 10:26:14 +0100 Subject: [PATCH 130/459] Update build.xml --- build/build.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/build.xml b/build/build.xml index 10f0b5704..4d873869b 100644 --- a/build/build.xml +++ b/build/build.xml @@ -28,7 +28,7 @@ + location="../processing-examples" /> From f67b34de275abfe726732f97236b0fb7fefd16d6 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 14:52:45 +0100 Subject: [PATCH 131/459] version bump --- .gitignore | 1 + core/build.gradle.kts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 550b70b6e..8c37b714f 100644 --- a/.gitignore +++ b/.gitignore @@ -100,3 +100,4 @@ gradlew gradlew.bat gradle/wrapper/gradle-wrapper.properties gradle/wrapper/gradle-wrapper.jar +build/publish/ diff --git a/core/build.gradle.kts b/core/build.gradle.kts index f97111369..21a63e35b 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -6,7 +6,7 @@ plugins { } group = "org.processing.core" -version = "4.3.0" +version = "4.3.1" repositories { mavenCentral() From 7821511cadba54029d105be66188a36cb399949c Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 15:34:34 +0100 Subject: [PATCH 132/459] Maven Central Publishing CI/CD --- .github/workflows/maven.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .github/workflows/maven.yml diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml new file mode 100644 index 000000000..d0a8cb813 --- /dev/null +++ b/.github/workflows/maven.yml @@ -0,0 +1,21 @@ +name: Maven Release +on: + workflow_dispatch: + +jobs: + publish: + name: Create Processing Core Release on Maven Central + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v3 + - name: Build with Gradle + run: ./gradlew publish + env: + MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }} + MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} + ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_IN_MEMORY_KEY }} + ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.SIGNING_IN_MEMORY_KEY_ID }} + ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_IN_MEMORY_KEY_PASSWORD }} \ No newline at end of file From 3b399e056e3b44d1c69169c26cecbcfce0323ab5 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 15:52:35 +0100 Subject: [PATCH 133/459] Added missing files --- .gitignore | 2 - gradlew | 249 ++++++++++++++++++++++++++++++++++++++++++++++++++++ gradlew.bat | 92 +++++++++++++++++++ 3 files changed, 341 insertions(+), 2 deletions(-) create mode 100755 gradlew create mode 100644 gradlew.bat diff --git a/.gitignore b/.gitignore index dde7936ff..779639542 100644 --- a/.gitignore +++ b/.gitignore @@ -100,8 +100,6 @@ processing-examples # Maven ignores .gradle core/build/ -gradlew -gradlew.bat gradle/wrapper/gradle-wrapper.properties gradle/wrapper/gradle-wrapper.jar build/publish/ diff --git a/gradlew b/gradlew new file mode 100755 index 000000000..1aa94a426 --- /dev/null +++ b/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 000000000..93e3f59f1 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega From 9f262323eb36dfce500e4eab7d3ae022fbf62ca2 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 15:54:36 +0100 Subject: [PATCH 134/459] more missing gradle files --- .gitignore | 2 -- gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43462 bytes gradle/wrapper/gradle-wrapper.properties | 7 +++++++ 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties diff --git a/.gitignore b/.gitignore index 779639542..d5f761a04 100644 --- a/.gitignore +++ b/.gitignore @@ -100,6 +100,4 @@ processing-examples # Maven ignores .gradle core/build/ -gradle/wrapper/gradle-wrapper.properties -gradle/wrapper/gradle-wrapper.jar build/publish/ diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..d64cd4917707c1f8861d8cb53dd15194d4248596 GIT binary patch literal 43462 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 literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000..1af9e0930 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists From 67b6b9fa481d2fef9a0779d48a71d61a46ac32f5 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 15:57:12 +0100 Subject: [PATCH 135/459] Add java to maven setup --- .github/workflows/maven.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index d0a8cb813..777085c74 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -9,6 +9,11 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v4 + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: 17 - name: Setup Gradle uses: gradle/actions/setup-gradle@v3 - name: Build with Gradle From 75f38a09dc6df1b08d5fb7f2417bab90b6ef9e4a Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 16:37:16 +0100 Subject: [PATCH 136/459] No key ID --- .github/workflows/maven.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 777085c74..c22344400 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -21,6 +21,6 @@ jobs: env: MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }} MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} + ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_IN_MEMORY_KEY }} - ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.SIGNING_IN_MEMORY_KEY_ID }} ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_IN_MEMORY_KEY_PASSWORD }} \ No newline at end of file From a6bf95b4c82292aaefb276636ab0b247019b89f7 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 16:49:11 +0100 Subject: [PATCH 137/459] Update maven.yml --- .github/workflows/maven.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index c22344400..5a0ca3198 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -13,7 +13,7 @@ jobs: uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: 17 + java-version: 11 - name: Setup Gradle uses: gradle/actions/setup-gradle@v3 - name: Build with Gradle From 43efbf9b7a90dabd6b64b5de95068cbe0a26c649 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 17:00:55 +0100 Subject: [PATCH 138/459] Update maven.yml --- .github/workflows/maven.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 5a0ca3198..c22344400 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -13,7 +13,7 @@ jobs: uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: 11 + java-version: 17 - name: Setup Gradle uses: gradle/actions/setup-gradle@v3 - name: Build with Gradle From ded974718f411e7c871bc6fef9d333828fa56a94 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 17:02:46 +0100 Subject: [PATCH 139/459] Update maven.yml [skip ci] --- .github/workflows/maven.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index c22344400..bf244fcf8 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -17,7 +17,7 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v3 - name: Build with Gradle - run: ./gradlew publish + run: ./gradlew publish --stacktrace env: MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }} MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} From cc6cfd9cc44379faa3077d5d89def54ced74e463 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 17:07:07 +0100 Subject: [PATCH 140/459] version bump [skip ci] --- core/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 21a63e35b..4d7c36dd1 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -2,7 +2,7 @@ import com.vanniktech.maven.publish.SonatypeHost plugins { id("java") - id("com.vanniktech.maven.publish") version "0.29.0" + id("com.vanniktech.maven.publish") version "0.30.0" } group = "org.processing.core" From 218ea7266f5b145edf42ee44ada637eb841b0c09 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 17:09:48 +0100 Subject: [PATCH 141/459] Update maven.yml [skip ci] --- .github/workflows/maven.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index bf244fcf8..8749f09ce 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -15,9 +15,9 @@ jobs: distribution: 'temurin' java-version: 17 - name: Setup Gradle - uses: gradle/actions/setup-gradle@v3 + uses: gradle/actions/setup-gradle@v4 - name: Build with Gradle - run: ./gradlew publish --stacktrace + run: ./gradlew publish env: MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }} MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} From 4904b63ca9a2aa2aa7ab539636151e62d0743a19 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 17:22:09 +0100 Subject: [PATCH 142/459] Update build.gradle.kts [skip ci] --- core/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 4d7c36dd1..c195b857f 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -34,8 +34,8 @@ dependencies { } mavenPublishing{ - signAllPublications() publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() pom{ name.set("Processing Core") From 3508de6f94a4e135ead3d766bf2a41d0a711ebe0 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 17:26:44 +0100 Subject: [PATCH 143/459] Update gradle-wrapper.properties [skip ci] --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1af9e0930..94113f200 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From 82192a795581eabf067bb8b9ed99710d9d0b54f5 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 17:34:51 +0100 Subject: [PATCH 144/459] Update build.gradle.kts [skip ci] --- core/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build.gradle.kts b/core/build.gradle.kts index c195b857f..0370702a0 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -34,7 +34,7 @@ dependencies { } mavenPublishing{ - publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + publishToMavenCentral(SonatypeHost.DEFAULT) signAllPublications() pom{ From 50b833e063f0c7b2c440b38ca0ec8177e7f92ed1 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 17:36:43 +0100 Subject: [PATCH 145/459] Update maven.yml [skip ci] --- .github/workflows/maven.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 8749f09ce..f9a2ff460 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -19,8 +19,8 @@ jobs: - name: Build with Gradle run: ./gradlew publish env: - MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }} - MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} + ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }} + ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_IN_MEMORY_KEY }} ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_IN_MEMORY_KEY_PASSWORD }} \ No newline at end of file From 9d39061cc7464c0f9b47bc2346e800b93faad290 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 17:38:43 +0100 Subject: [PATCH 146/459] Update build.gradle.kts [skip ci] --- core/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 0370702a0..c195b857f 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -34,7 +34,7 @@ dependencies { } mavenPublishing{ - publishToMavenCentral(SonatypeHost.DEFAULT) + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) signAllPublications() pom{ From 9d02a498ee32e5658644dd2b2ba98aa311452447 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 17:49:32 +0100 Subject: [PATCH 147/459] Update maven.yml [skip ci] --- .github/workflows/maven.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index f9a2ff460..739cbe41f 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -19,8 +19,11 @@ jobs: - name: Build with Gradle run: ./gradlew publish env: + MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }} + MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} + ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }} ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} - + ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_IN_MEMORY_KEY }} ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_IN_MEMORY_KEY_PASSWORD }} \ No newline at end of file From 63482da17bff54495e7212260ee6b90d7c1ec2d6 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 17:59:03 +0100 Subject: [PATCH 148/459] dynamic versioning [skip ci] --- .github/workflows/maven.yml | 10 +++++++++- core/build.gradle.kts | 1 - 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 739cbe41f..b66dcdeed 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -1,6 +1,12 @@ name: Maven Release on: workflow_dispatch: + inputs: + version: + description: 'Version to release' + required: true + default: '1.0.0' + jobs: publish: @@ -26,4 +32,6 @@ jobs: ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_IN_MEMORY_KEY }} - ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_IN_MEMORY_KEY_PASSWORD }} \ No newline at end of file + ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_IN_MEMORY_KEY_PASSWORD }} + + ORG_GRADLE_PROJECT_version: ${{ github.event.inputs.version }} \ No newline at end of file diff --git a/core/build.gradle.kts b/core/build.gradle.kts index c195b857f..64f7396ba 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -6,7 +6,6 @@ plugins { } group = "org.processing.core" -version = "4.3.1" repositories { mavenCentral() From b35259b5b580eee6423de38950db5214372e05bf Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 18:06:37 +0100 Subject: [PATCH 149/459] Added Maven Central release step to release [skip ci] --- .github/workflows/release.yml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 76c98cd57..63c894878 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,6 +24,33 @@ jobs: # Set outputs for use in later jobs or steps echo "build_number=$BUILD_NUMBER" >> $GITHUB_OUTPUT echo "version=$VERSION" >> $GITHUB_OUTPUT + publish: + name: Create Processing Core Release on Maven Central + runs-on: ubuntu-latest + needs: version + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: 17 + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Build with Gradle + run: ./gradlew publish + env: + MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }} + MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} + + ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }} + ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} + + ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_IN_MEMORY_KEY }} + ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_IN_MEMORY_KEY_PASSWORD }} + + ORG_GRADLE_PROJECT_version: ${{ needs.version.outputs.version }} build: name: Publish Release for ${{ matrix.os_prefix }} (${{ matrix.arch }}) runs-on: ${{ matrix.os }} @@ -63,6 +90,9 @@ jobs: architecture: ${{ matrix.arch }} - name: Setup Ant uses: cedx/setup-ant@v3 + - name: Write to todo.txt + run: | + echo "${{ needs.version.outputs.build_number }} (${{ needs.version.outputs.version }})" >> todo.txt - name: Install Certificates for Code Signing if: ${{ matrix.os_prefix == 'macos' }} uses: apple-actions/import-codesign-certs@v3 From 873647db8769eaef41671a9000f9ab640aa3a769 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Mon, 11 Nov 2024 18:14:25 +0100 Subject: [PATCH 150/459] Update release.yml [skip ci] --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 63c894878..5d2b8a8cc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,7 +25,7 @@ jobs: echo "build_number=$BUILD_NUMBER" >> $GITHUB_OUTPUT echo "version=$VERSION" >> $GITHUB_OUTPUT publish: - name: Create Processing Core Release on Maven Central + name: Publish Processing Core to Maven Central runs-on: ubuntu-latest needs: version steps: @@ -92,7 +92,7 @@ jobs: uses: cedx/setup-ant@v3 - name: Write to todo.txt run: | - echo "${{ needs.version.outputs.build_number }} (${{ needs.version.outputs.version }})" >> todo.txt + echo "${{ needs.version.outputs.build_number }} (${{ needs.version.outputs.version }})" > todo.txt - name: Install Certificates for Code Signing if: ${{ matrix.os_prefix == 'macos' }} uses: apple-actions/import-codesign-certs@v3 From 9087437928aee4c2d3a1d8afa7bacb9fcfd591f0 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Tue, 12 Nov 2024 11:49:26 +0000 Subject: [PATCH 151/459] docs: update README.md [skip ci] --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b74d6d49d..7e2043297 100644 --- a/README.md +++ b/README.md @@ -277,6 +277,7 @@ Add yourself to the contributors list [here](https://github.com/processing/proce Neil C Smith
Neil C Smith

🚇 + kate hollenbach
kate hollenbach

💻 📦 🧑‍🏫 🐛 From e5e585aad6d723649f7d3eab19adbf1d1844a734 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Tue, 12 Nov 2024 11:49:27 +0000 Subject: [PATCH 152/459] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 64d183d6a..19940c7f0 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -1379,6 +1379,18 @@ "contributions": [ "infra" ] + }, + { + "login": "kjhollen", + "name": "kate hollenbach", + "avatar_url": "https://avatars.githubusercontent.com/u/78966?v=4", + "profile": "http://www.katehollenbach.com", + "contributions": [ + "code", + "platform", + "mentoring", + "bug" + ] } ], "repoType": "github", From c65c7c7ecd5b55a4d7f000e16a73ee7bf32437ab Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Tue, 12 Nov 2024 15:02:01 +0100 Subject: [PATCH 153/459] Add the examples fix to the other builds scripts --- .github/workflows/pull_request.yml | 5 +++++ .github/workflows/release.yml | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 08ae3c8c5..54ae96e71 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -38,6 +38,11 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v4 + - name: Checkout Examples Repository + uses: actions/checkout@v4 + with: + repository: processing/processing-examples + path: processing-examples - name: Install Java uses: actions/setup-java@v4 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5d2b8a8cc..554dfb945 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -82,6 +82,11 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v4 + - name: Checkout Examples Repository + uses: actions/checkout@v4 + with: + repository: processing/processing-examples + path: processing-examples - name: Install Java uses: actions/setup-java@v4 with: From e570375bcd75a910d2508aaf1403ad5c2e533be6 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Tue, 12 Nov 2024 15:37:08 +0100 Subject: [PATCH 154/459] Update release.yml [skip ci] --- .github/workflows/release.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 554dfb945..b5712ab3e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,9 +2,6 @@ name: Releases on: release: types: [published] - push: - tags: - - processing-* jobs: version: From 1a3f5e4c3acf2ce155f4e75a3a4ef341b7d38d98 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Tue, 12 Nov 2024 16:16:35 +0100 Subject: [PATCH 155/459] Updated Build instructions for first time contributors [skip ci] --- build/README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/build/README.md b/build/README.md index e6afadba3..0062002be 100644 --- a/build/README.md +++ b/build/README.md @@ -6,10 +6,12 @@ First, [download the IntelliJ IDEA Community Edition](https://www.jetbrains.com/ 1. Clone the Processing4 repository to your machine locally 1. Open the cloned repository in IntelliJ IDEA CE -1. Click `Install Required Plugins` on the bottom right -1. Restart IntelliJ IDEA CE +1. Click `Install Required Plugins` on the bottom right or in the notification tray +1. In the main menu, go to File > Project Structure > Project Settings > Project. +1. In the SDK Dropdown option, select a JDK version 17 or Download the jdk 1. Select your platform (Windows, MacOS or Linux) in the top right of the window 1. Click the green Run Icon next to it +1. Logs can be found in the `messages` or `run` pane on the bottom left of the window ## Manual Approach From e1d6fe254d85531baa39715b8c3aedc8085c49b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Tue, 12 Nov 2024 17:03:10 +0100 Subject: [PATCH 156/459] Update README.md [skip ci] --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 7e2043297..d2759263a 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,10 @@ Processing is a flexible software sketchbook and a programming language designed This repository contains the source code for the [Processing](https://processing.org/) project for people who want to help improve the code. +## Announcing Processing 4.3.1 (release candidate) + +We’re excited to announce the release candidate for 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-(release-candidate)). + ## Using Processing If you're interested in *using* Processing, head over to the [download page](https://processing.org/download), or read more about the project on the [Processing website](https://processing.org/). There are also several [tutorials](https://processing.org/tutorials) that provide a helpful introduction. They are complemented by hundreds of examples that are included with the software itself. From fc463efed9b272d22e6b76e6a798377eada7fcc5 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Wed, 13 Nov 2024 22:37:29 +0100 Subject: [PATCH 157/459] namespace fix [skip ci] --- core/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 64f7396ba..c2a872430 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -5,7 +5,7 @@ plugins { id("com.vanniktech.maven.publish") version "0.30.0" } -group = "org.processing.core" +group = "org.processing" repositories { mavenCentral() From ce06ac8435889125f30b2c682857a9457806f4e5 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Thu, 14 Nov 2024 09:06:55 +0100 Subject: [PATCH 158/459] run app with the jetpack compose runner --- .gitignore | 1 + .idea/compiler.xml | 13 ++++ .idea/jarRepositories.xml | 25 +++++++ .idea/kotlinc.xml | 6 ++ .idea/modules.xml | 14 ++-- .idea/modules/app/processing.app.iml | 12 ++++ .idea/modules/app/processing.app.main.iml | 63 +++++++++++++++++ .idea/modules/app/processing.app.test.iml | 57 ++++++++++++++++ .../different/processing.core.different.iml | 12 ++++ .idea/modules/core/processing.core.iml | 12 ++++ .idea/modules/core/processing.core.main.iml | 16 +++++ .idea/modules/core/processing.core.test.iml | 17 +++++ .idea/modules/processing.iml | 12 ++++ .idea/vcs.xml | 2 +- app/build.gradle.kts | 41 +++++++++++ app/processing4-app.iml | 68 ------------------- app/src/processing/app/Platform.java | 48 +++++++++++-- build.gradle.kts | 1 + core/processing4-core.iml | 12 ---- settings.gradle.kts | 12 +++- 20 files changed, 354 insertions(+), 90 deletions(-) create mode 100644 .idea/compiler.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/kotlinc.xml create mode 100644 .idea/modules/app/processing.app.iml create mode 100644 .idea/modules/app/processing.app.main.iml create mode 100644 .idea/modules/app/processing.app.test.iml create mode 100644 .idea/modules/core/different/processing.core.different.iml create mode 100644 .idea/modules/core/processing.core.iml create mode 100644 .idea/modules/core/processing.core.main.iml create mode 100644 .idea/modules/core/processing.core.test.iml create mode 100644 .idea/modules/processing.iml create mode 100644 app/build.gradle.kts delete mode 100644 app/processing4-app.iml create mode 100644 build.gradle.kts delete mode 100644 core/processing4-core.iml diff --git a/.gitignore b/.gitignore index d5f761a04..346a60bea 100644 --- a/.gitignore +++ b/.gitignore @@ -101,3 +101,4 @@ processing-examples .gradle core/build/ build/publish/ +app/build diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 000000000..06b36e2a9 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 000000000..f850df254 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 000000000..fe63bb677 --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index 335d8c4b3..a50571deb 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,8 +2,15 @@ - - + + + + + + + + + @@ -12,8 +19,7 @@ - - + \ No newline at end of file diff --git a/.idea/modules/app/processing.app.iml b/.idea/modules/app/processing.app.iml new file mode 100644 index 000000000..45dbd6cb3 --- /dev/null +++ b/.idea/modules/app/processing.app.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/app/processing.app.main.iml b/.idea/modules/app/processing.app.main.iml new file mode 100644 index 000000000..d12ab6f0a --- /dev/null +++ b/.idea/modules/app/processing.app.main.iml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + $USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.compose.compiler/compiler/1.5.13.5/225cf6f6f3fcbd55fd532ec100452c4c07093bb/compiler-1.5.13.5.jar + $USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-scripting-jvm/1.9.23/12296ecbca7fc45d259e04cf8080bae89ca18a45/kotlin-scripting-jvm-1.9.23.jar + $USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-scripting-common/1.9.23/962df7abf28182fc9af5cddfa721766d9c3fe828/kotlin-scripting-common-1.9.23.jar + $USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.9.23/dbaadea1f5e68f790d242a91a38355a83ec38747/kotlin-stdlib-1.9.23.jar + $USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar + $USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-script-runtime/1.9.23/1375a7343d05891119fac57f8b50a7578420ac27/kotlin-script-runtime-1.9.23.jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/app/processing.app.test.iml b/.idea/modules/app/processing.app.test.iml new file mode 100644 index 000000000..4681c8ad4 --- /dev/null +++ b/.idea/modules/app/processing.app.test.iml @@ -0,0 +1,57 @@ + + + + + + :app:main + + + + + + + + + + + + + + + + + $USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.compose.compiler/compiler/1.5.13.5/225cf6f6f3fcbd55fd532ec100452c4c07093bb/compiler-1.5.13.5.jar + $USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-scripting-jvm/1.9.23/12296ecbca7fc45d259e04cf8080bae89ca18a45/kotlin-scripting-jvm-1.9.23.jar + $USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-scripting-common/1.9.23/962df7abf28182fc9af5cddfa721766d9c3fe828/kotlin-scripting-common-1.9.23.jar + $USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.9.23/dbaadea1f5e68f790d242a91a38355a83ec38747/kotlin-stdlib-1.9.23.jar + $USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar + $USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-script-runtime/1.9.23/1375a7343d05891119fac57f8b50a7578420ac27/kotlin-script-runtime-1.9.23.jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/core/different/processing.core.different.iml b/.idea/modules/core/different/processing.core.different.iml new file mode 100644 index 000000000..a4d906fc0 --- /dev/null +++ b/.idea/modules/core/different/processing.core.different.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/core/processing.core.iml b/.idea/modules/core/processing.core.iml new file mode 100644 index 000000000..ee196c1d1 --- /dev/null +++ b/.idea/modules/core/processing.core.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/core/processing.core.main.iml b/.idea/modules/core/processing.core.main.iml new file mode 100644 index 000000000..1ad505bed --- /dev/null +++ b/.idea/modules/core/processing.core.main.iml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/core/processing.core.test.iml b/.idea/modules/core/processing.core.test.iml new file mode 100644 index 000000000..1be616048 --- /dev/null +++ b/.idea/modules/core/processing.core.test.iml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/processing.iml b/.idea/modules/processing.iml new file mode 100644 index 000000000..08476d6fd --- /dev/null +++ b/.idea/modules/processing.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 94a25f7f4..35eb1ddfb 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts new file mode 100644 index 000000000..c08e91f26 --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,41 @@ +plugins{ + id("java") + kotlin("jvm") version "1.9.23" + id("org.jetbrains.compose") version "1.6.11" +} + +group = rootProject.group + +repositories{ + mavenCentral() + maven { url = uri("https://jogamp.org/deployment/maven") } +} + +sourceSets{ + main{ + java{ + srcDirs("src/processing/app") + } + resources{ + srcDirs("../build/shared/") + } + } +} + + +compose.desktop { + application { + mainClass = "processing.app.ui.Splash" + } +} + +dependencies { + implementation("com.formdev:flatlaf:3.4.1") + + implementation("net.java.dev.jna:jna:5.12.1") + implementation("net.java.dev.jna:jna-platform:5.12.1") + + + implementation(project(":core")) +// runtimeOnly(project(":java")) +} \ No newline at end of file diff --git a/app/processing4-app.iml b/app/processing4-app.iml deleted file mode 100644 index 62e9a8c3a..000000000 --- a/app/processing4-app.iml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/processing/app/Platform.java b/app/src/processing/app/Platform.java index d6f472abe..9352f0c79 100644 --- a/app/src/processing/app/Platform.java +++ b/app/src/processing/app/Platform.java @@ -28,10 +28,9 @@ import java.lang.management.ManagementFactory; import java.net.URISyntaxException; import java.net.URL; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.nio.file.*; +import java.nio.file.attribute.BasicFileAttributes; +import java.util.*; import com.sun.jna.platform.FileUtils; @@ -331,9 +330,21 @@ static public boolean isLinux() { * Get reference to a file adjacent to the executable on Windows and Linux, * or inside Contents/Resources/Java on Mac OS X. This will return the local * JRE location, *whether or not it is the active JRE*. + * @deprecated start using the build in JAR Resources system instead. */ + @Deprecated static public File getContentFile(String name) { if (processingRoot == null) { + var url = Platform.class.getClassLoader().getResource("lib/defaults.txt"); + if(url != null){ + try { + processingRoot = Files.createTempDirectory("processing").toFile(); + copyFromJar("/", processingRoot.toPath()); + return new File(processingRoot, name); + } catch (IOException | URISyntaxException e) { + e.printStackTrace(); + } + } // Get the path to the .jar file that contains Base.class URL pathURL = Base.class.getProtectionDomain().getCodeSource().getLocation(); @@ -382,6 +393,35 @@ static public File getContentFile(String name) { return new File(processingRoot, name); } + public static void copyFromJar(String source, final Path target) throws URISyntaxException, IOException { + var resource = Platform.class.getResource("").toURI(); + var fileSystem = FileSystems.newFileSystem( + resource, + Collections.emptyMap() + ); + + + final Path jarPath = fileSystem.getPath(source); + + Files.walkFileTree(jarPath, new SimpleFileVisitor() { + + private Path currentTarget; + + @Override + public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { + currentTarget = target.resolve(jarPath.relativize(dir).toString()); + Files.createDirectories(currentTarget); + return FileVisitResult.CONTINUE; + } + + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { + Files.copy(file, target.resolve(jarPath.relativize(file).toString()), StandardCopyOption.REPLACE_EXISTING); + return FileVisitResult.CONTINUE; + } + + }); + } static public File getJavaHome() { if (Platform.isMacOS()) { diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 000000000..7817d7f36 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1 @@ +group = "org.processing" \ No newline at end of file diff --git a/core/processing4-core.iml b/core/processing4-core.iml deleted file mode 100644 index 129c87525..000000000 --- a/core/processing4-core.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 4f5525784..0f4d3ce9f 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,5 +1,15 @@ rootProject.name = "processing" -include("core", "core:different") +include( + "core", + "core:different", + "app" +) + +pluginManagement { + plugins { + kotlin("jvm") version "1.9.23" + } +} buildscript { repositories { From e082481594195335d708b493a8e2fe56f527de5c Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Thu, 14 Nov 2024 10:30:56 +0100 Subject: [PATCH 159/459] Run app with Java Mode --- .gitignore | 1 + .idea/compiler.xml | 3 + .idea/modules.xml | 4 +- .idea/modules/app/processing.app.main.iml | 42 +- .idea/modules/app/processing.app.test.iml | 36 ++ .idea/modules/core/processing.core.main.iml | 3 +- .idea/modules/java/processing.java.iml | 12 + .idea/modules/java/processing.java.main.iml | 60 ++ .idea/modules/java/processing.java.test.iml | 58 ++ app/build.gradle.kts | 7 +- build/reports/problems/problems-report.html | 663 ++++++++++++++++++++ core/build.gradle.kts | 2 +- java/build.gradle.kts | 43 ++ java/processing4-java.iml | 201 ------ java/src/processing/mode/java/JavaMode.java | 54 ++ settings.gradle.kts | 3 +- 16 files changed, 978 insertions(+), 214 deletions(-) create mode 100644 .idea/modules/java/processing.java.iml create mode 100644 .idea/modules/java/processing.java.main.iml create mode 100644 .idea/modules/java/processing.java.test.iml create mode 100644 build/reports/problems/problems-report.html create mode 100644 java/build.gradle.kts delete mode 100644 java/processing4-java.iml diff --git a/.gitignore b/.gitignore index 346a60bea..2853501d5 100644 --- a/.gitignore +++ b/.gitignore @@ -102,3 +102,4 @@ processing-examples core/build/ build/publish/ app/build +java/build/ diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 06b36e2a9..4794b2338 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -8,6 +8,9 @@ + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index a50571deb..fc9f8b84e 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -10,10 +10,12 @@ + + + - diff --git a/.idea/modules/app/processing.app.main.iml b/.idea/modules/app/processing.app.main.iml index d12ab6f0a..e6ee4fe11 100644 --- a/.idea/modules/app/processing.app.main.iml +++ b/.idea/modules/app/processing.app.main.iml @@ -41,11 +41,10 @@ - - - + + - + @@ -56,8 +55,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/app/processing.app.test.iml b/.idea/modules/app/processing.app.test.iml index 4681c8ad4..fca4f944b 100644 --- a/.idea/modules/app/processing.app.test.iml +++ b/.idea/modules/app/processing.app.test.iml @@ -49,9 +49,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/core/processing.core.main.iml b/.idea/modules/core/processing.core.main.iml index 1ad505bed..307326303 100644 --- a/.idea/modules/core/processing.core.main.iml +++ b/.idea/modules/core/processing.core.main.iml @@ -4,8 +4,7 @@ - - + diff --git a/.idea/modules/java/processing.java.iml b/.idea/modules/java/processing.java.iml new file mode 100644 index 000000000..80774819b --- /dev/null +++ b/.idea/modules/java/processing.java.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/java/processing.java.main.iml b/.idea/modules/java/processing.java.main.iml new file mode 100644 index 000000000..d497c49c7 --- /dev/null +++ b/.idea/modules/java/processing.java.main.iml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/java/processing.java.test.iml b/.idea/modules/java/processing.java.test.iml new file mode 100644 index 000000000..232833025 --- /dev/null +++ b/.idea/modules/java/processing.java.test.iml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c08e91f26..49d055ba0 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,10 +14,10 @@ repositories{ sourceSets{ main{ java{ - srcDirs("src/processing/app") + srcDirs("src") } resources{ - srcDirs("../build/shared/") + srcDirs("src","../build/shared/") } } } @@ -35,7 +35,6 @@ dependencies { implementation("net.java.dev.jna:jna:5.12.1") implementation("net.java.dev.jna:jna-platform:5.12.1") - implementation(project(":core")) -// runtimeOnly(project(":java")) + runtimeOnly(project(":java")) } \ No newline at end of file diff --git a/build/reports/problems/problems-report.html b/build/reports/problems/problems-report.html new file mode 100644 index 000000000..e80394809 --- /dev/null +++ b/build/reports/problems/problems-report.html @@ -0,0 +1,663 @@ + + + + + + + + + + + + + Gradle Configuration Cache + + + +

+ +
+ Loading... +
+ + + + + + diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 64f7396ba..dbccb3629 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -15,7 +15,7 @@ repositories { sourceSets{ main{ java{ - srcDirs("src/processing") + srcDirs("src") } resources{ srcDirs("src") diff --git a/java/build.gradle.kts b/java/build.gradle.kts new file mode 100644 index 000000000..65c01817d --- /dev/null +++ b/java/build.gradle.kts @@ -0,0 +1,43 @@ +plugins { + id("java") + id("antlr") +} + +repositories{ + mavenCentral() + maven { url = uri("https://jogamp.org/deployment/maven") } +} + +sourceSets{ + main{ + java{ + srcDirs("src", "generated") + } + resources{ + srcDirs("../build/shared/", "src/main/resources/") + } + } +} + +dependencies{ + implementation(project(":app")) + implementation(project(":core")) + + antlr("org.antlr:antlr4:4.13.1") + + implementation("org.eclipse.jdt:org.eclipse.jdt.core:3.37.0") + implementation("com.google.classpath-explorer:classpath-explorer:1.0") + implementation("org.netbeans.api:org-netbeans-swing-outline:RELEASE210") + implementation("org.apache.ant:ant:1.10.14") + implementation("org.eclipse.lsp4j:org.eclipse.lsp4j:0.22.0") + implementation("org.jsoup:jsoup:1.17.2") +} + + +tasks.register("extraResources"){ + from(".") + include("keywords.txt") + into("build/resources/main") +} +tasks.jar { dependsOn("extraResources") } +tasks.processResources{ finalizedBy("extraResources") } diff --git a/java/processing4-java.iml b/java/processing4-java.iml deleted file mode 100644 index 953c28d4d..000000000 --- a/java/processing4-java.iml +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/java/src/processing/mode/java/JavaMode.java b/java/src/processing/mode/java/JavaMode.java index 4f9613c99..5d0e3740a 100644 --- a/java/src/processing/mode/java/JavaMode.java +++ b/java/src/processing/mode/java/JavaMode.java @@ -25,6 +25,9 @@ import java.awt.*; import java.io.File; import java.io.IOException; +import java.net.URISyntaxException; +import java.nio.file.*; +import java.nio.file.attribute.BasicFileAttributes; import java.util.*; import java.util.concurrent.ConcurrentHashMap; @@ -56,7 +59,58 @@ public JavaMode(Base base, File folder) { public String getTitle() { return "Java"; } + + File resourcesFolder; + + @Override + public File[] getKeywordFiles() { + var url = JavaMode.class.getClassLoader().getResource("keywords.txt"); + if(url != null) { + if(resourcesFolder == null){ + try { + resourcesFolder = Files.createTempDirectory("processing").toFile(); + copyFromJar("/", resourcesFolder.toPath()); + return new File[] { new File(resourcesFolder, "keywords.txt") }; + } catch (IOException | URISyntaxException e) { + e.printStackTrace(); + } + }else{ + return new File[] { new File(resourcesFolder, "keywords.txt") }; + } + + return new File[] { new File(url.getFile()) }; + } + return new File[] { new File(folder, "keywords.txt") }; + } + public static void copyFromJar(String source, final Path target) throws URISyntaxException, IOException { + var resource = JavaMode.class.getResource("").toURI(); + var fileSystem = FileSystems.newFileSystem( + resource, + Collections.emptyMap() + ); + + + final Path jarPath = fileSystem.getPath(source); + Files.walkFileTree(jarPath, new SimpleFileVisitor() { + + private Path currentTarget; + + @Override + public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { + currentTarget = target.resolve(jarPath.relativize(dir).toString()); + Files.createDirectories(currentTarget); + return FileVisitResult.CONTINUE; + } + + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { + Files.copy(file, target.resolve(jarPath.relativize(file).toString()), StandardCopyOption.REPLACE_EXISTING); + return FileVisitResult.CONTINUE; + } + + }); + } // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . diff --git a/settings.gradle.kts b/settings.gradle.kts index 0f4d3ce9f..e5ab17852 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -2,7 +2,8 @@ rootProject.name = "processing" include( "core", "core:different", - "app" + "app", + "java" ) pluginManagement { From 07f05f39c6595b44aaa4d533816957943f10af3f Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Thu, 14 Nov 2024 10:39:08 +0100 Subject: [PATCH 160/459] Deprecation indicators and removed unused resources --- java/build.gradle.kts | 5 +---- java/src/processing/mode/java/JavaMode.java | 2 ++ 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/java/build.gradle.kts b/java/build.gradle.kts index 65c01817d..0ba1117c7 100644 --- a/java/build.gradle.kts +++ b/java/build.gradle.kts @@ -13,9 +13,6 @@ sourceSets{ java{ srcDirs("src", "generated") } - resources{ - srcDirs("../build/shared/", "src/main/resources/") - } } } @@ -33,7 +30,7 @@ dependencies{ implementation("org.jsoup:jsoup:1.17.2") } - +// TODO: This is a temporary workaround until the resources are properly handled tasks.register("extraResources"){ from(".") include("keywords.txt") diff --git a/java/src/processing/mode/java/JavaMode.java b/java/src/processing/mode/java/JavaMode.java index 5d0e3740a..79c790c12 100644 --- a/java/src/processing/mode/java/JavaMode.java +++ b/java/src/processing/mode/java/JavaMode.java @@ -62,6 +62,7 @@ public String getTitle() { File resourcesFolder; + @Deprecated @Override public File[] getKeywordFiles() { var url = JavaMode.class.getClassLoader().getResource("keywords.txt"); @@ -82,6 +83,7 @@ public File[] getKeywordFiles() { } return new File[] { new File(folder, "keywords.txt") }; } + @Deprecated public static void copyFromJar(String source, final Path target) throws URISyntaxException, IOException { var resource = JavaMode.class.getResource("").toURI(); var fileSystem = FileSystems.newFileSystem( From 70208d35617a5125db7e3c142e6eb90fad694780 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Thu, 14 Nov 2024 12:44:09 +0100 Subject: [PATCH 161/459] Build sketches with new app bundler --- app/build.gradle.kts | 12 +++++++++++- app/src/processing/app/Platform.java | 4 ++++ java/build.gradle.kts | 4 ++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 49d055ba0..f68e8f8f9 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -37,4 +37,14 @@ dependencies { implementation(project(":core")) runtimeOnly(project(":java")) -} \ No newline at end of file +} + +tasks.register("addCore"){ + dependsOn(project(":core").tasks.jar) + from("../core/build/libs/") + include("*.jar") + into("build/resources/main/core/library") +} +tasks.jar { dependsOn("addCore") } +tasks.processResources{ finalizedBy("addCore") } + diff --git a/app/src/processing/app/Platform.java b/app/src/processing/app/Platform.java index 9352f0c79..bf0d13438 100644 --- a/app/src/processing/app/Platform.java +++ b/app/src/processing/app/Platform.java @@ -424,6 +424,10 @@ public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IO } static public File getJavaHome() { + var home = System.getProperty("java.home"); + if(home != null){ + return new File(home); + } if (Platform.isMacOS()) { //return "Contents/PlugIns/jdk1.7.0_40.jdk/Contents/Home/jre/bin/java"; File[] plugins = getContentFile("../PlugIns").listFiles((dir, name) -> dir.isDirectory() && diff --git a/java/build.gradle.kts b/java/build.gradle.kts index 0ba1117c7..3c22e39f8 100644 --- a/java/build.gradle.kts +++ b/java/build.gradle.kts @@ -1,6 +1,5 @@ plugins { id("java") - id("antlr") } repositories{ @@ -20,7 +19,7 @@ dependencies{ implementation(project(":app")) implementation(project(":core")) - antlr("org.antlr:antlr4:4.13.1") + implementation("org.eclipse.jdt:org.eclipse.jdt.core:3.37.0") implementation("com.google.classpath-explorer:classpath-explorer:1.0") @@ -28,6 +27,7 @@ dependencies{ implementation("org.apache.ant:ant:1.10.14") implementation("org.eclipse.lsp4j:org.eclipse.lsp4j:0.22.0") implementation("org.jsoup:jsoup:1.17.2") + implementation("org.antlr:antlr4:4.7.2") } // TODO: This is a temporary workaround until the resources are properly handled From 78da74d6c284310601fb4d647cd7f857b225161b Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Thu, 14 Nov 2024 13:05:20 +0100 Subject: [PATCH 162/459] Added all modules for JAR filesystem --- app/build.gradle.kts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index f68e8f8f9..a52164d62 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -26,6 +26,9 @@ sourceSets{ compose.desktop { application { mainClass = "processing.app.ui.Splash" + nativeDistributions{ + includeAllModules = true + } } } From b1e40666cca1a31093dbb349e9d0901180147c31 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Thu, 14 Nov 2024 13:18:45 +0100 Subject: [PATCH 163/459] Work with external JDK --- app/build.gradle.kts | 5 +++++ app/src/processing/app/Platform.java | 7 ++++++- build.gradle.kts | 3 ++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index a52164d62..116dd181d 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,3 +1,5 @@ +import org.jetbrains.compose.desktop.application.dsl.TargetFormat + plugins{ id("java") kotlin("jvm") version "1.9.23" @@ -28,6 +30,9 @@ compose.desktop { mainClass = "processing.app.ui.Splash" nativeDistributions{ includeAllModules = true + targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) + packageName = "Processing" + packageVersion = rootProject.version as String } } } diff --git a/app/src/processing/app/Platform.java b/app/src/processing/app/Platform.java index bf0d13438..459c46665 100644 --- a/app/src/processing/app/Platform.java +++ b/app/src/processing/app/Platform.java @@ -426,7 +426,12 @@ public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IO static public File getJavaHome() { var home = System.getProperty("java.home"); if(home != null){ - return new File(home); + if(new File(home, "bin/java").exists()){ + return new File(home); + }else{ + // TODO make platform independent + return new File("/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home"); + } } if (Platform.isMacOS()) { //return "Contents/PlugIns/jdk1.7.0_40.jdk/Contents/Home/jre/bin/java"; diff --git a/build.gradle.kts b/build.gradle.kts index 7817d7f36..97b5ab214 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1 +1,2 @@ -group = "org.processing" \ No newline at end of file +group = "org.processing" +version = "4.4.0" \ No newline at end of file From d98cab9f853bf5479666a53b09567bf42ce97f65 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Thu, 14 Nov 2024 15:11:35 +0100 Subject: [PATCH 164/459] Distribution icons --- app/build.gradle.kts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 116dd181d..2e1f1ab2b 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -28,11 +28,26 @@ sourceSets{ compose.desktop { application { mainClass = "processing.app.ui.Splash" + nativeDistributions{ includeAllModules = true targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) packageName = "Processing" packageVersion = rootProject.version as String + + macOS{ + bundleID = "org.processingfoundation.processing.app" + iconFile = project.file("../build/macos/processing.icns") + } + windows{ + iconFile = project.file("../build/windows/processing.ico") + } + linux { + iconFile = project.file("../build/linux/processing.png") + } + buildTypes.release.proguard{ + optimize = false + } } } } From 9405e4ac1279366455c7191129293e1a30d7f708 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Thu, 14 Nov 2024 16:32:28 +0100 Subject: [PATCH 165/459] First functional Composable --- app/build.gradle.kts | 21 ++++++- app/src/processing/app/Platform.java | 3 + app/src/processing/app/ui/Editor.java | 4 ++ app/src/processing/app/ui/JVMManager.kt | 84 +++++++++++++++++++++++++ 4 files changed, 109 insertions(+), 3 deletions(-) create mode 100644 app/src/processing/app/ui/JVMManager.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2e1f1ab2b..435b37af4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -10,6 +10,7 @@ group = rootProject.group repositories{ mavenCentral() + google() maven { url = uri("https://jogamp.org/deployment/maven") } } @@ -18,6 +19,9 @@ sourceSets{ java{ srcDirs("src") } + kotlin{ + srcDirs("src") + } resources{ srcDirs("src","../build/shared/") } @@ -45,9 +49,11 @@ compose.desktop { linux { iconFile = project.file("../build/linux/processing.png") } - buildTypes.release.proguard{ - optimize = false - } + + // Allow swing to use the system look and feel + jvmArgs( + "-Dapple.awt.application.appearance=system" + ) } } } @@ -60,6 +66,15 @@ dependencies { implementation(project(":core")) runtimeOnly(project(":java")) + + implementation(compose.runtime) + implementation(compose.foundation) + implementation(compose.material) + implementation(compose.ui) + implementation(compose.components.resources) + implementation(compose.components.uiToolingPreview) + + implementation(compose.desktop.currentOs) } tasks.register("addCore"){ diff --git a/app/src/processing/app/Platform.java b/app/src/processing/app/Platform.java index 459c46665..f391ad262 100644 --- a/app/src/processing/app/Platform.java +++ b/app/src/processing/app/Platform.java @@ -430,6 +430,9 @@ static public File getJavaHome() { return new File(home); }else{ // TODO make platform independent + // Windows: C:\Program Files\Eclipse Adoptium\jdk-17* + // macOS/Linux: /usr/lib/jvm/, /opt/, /Library/Java/JavaVirtualMachines/ + return new File("/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home"); } } diff --git a/app/src/processing/app/ui/Editor.java b/app/src/processing/app/ui/Editor.java index 3babbb6df..9ae03e3b6 100644 --- a/app/src/processing/app/ui/Editor.java +++ b/app/src/processing/app/ui/Editor.java @@ -71,6 +71,8 @@ import processing.app.syntax.*; import processing.core.*; +import static processing.app.ui.JVMManagerKt.addJDKManger; + /** * Main editor panel for the Processing Development Environment. @@ -218,6 +220,8 @@ public void windowDeactivated(WindowEvent e) { header = createHeader(); upper.add(header); + addJDKManger(upper); + textarea = createTextArea(); textarea.setRightClickPopup(new TextAreaPopup()); textarea.setHorizontalOffset(JEditTextArea.leftHandGutter); diff --git a/app/src/processing/app/ui/JVMManager.kt b/app/src/processing/app/ui/JVMManager.kt new file mode 100644 index 000000000..24ce0cc5d --- /dev/null +++ b/app/src/processing/app/ui/JVMManager.kt @@ -0,0 +1,84 @@ +package processing.app.ui + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.material.Button +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.awt.ComposePanel +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp +import processing.app.Language +import processing.app.Platform +import java.awt.BorderLayout +import java.awt.Desktop +import java.io.File +import java.net.URI +import javax.swing.Box +import javax.swing.SwingUtilities + + +fun addJDKManger(parent: Box){ + SwingUtilities.invokeLater { + val composePanel = ComposePanel().apply { + setContent { + JDKManager() + } + } + parent.apply { + add(composePanel, BorderLayout.EAST) + } + } +} + + +// If the user does not have a valid JDK installed on their system, this function will display a message and a button to download the JDK +// Temporary workaround until we ship Processing with a JDK again +@Composable +fun JDKManager(){ + val home = Platform.getJavaHome() + val valid = File(home, "bin/java").exists() + if(valid) return + + val color = Theme.getColor("editor.gradient.bottom") + + val os = System.getProperty("os.name") + val arch = System.getProperty("os.arch") + val platform = when { + os.contains("Windows") -> "windows" + os.contains("Mac") -> "mac" + else -> "linux" + } + + Row(modifier = Modifier + .background(color = Color(color.rgb)) + .padding(8.dp) + .fillMaxWidth() + ) { + Text(Language.text("editor.status.missing.jvm")) + Spacer(modifier = Modifier.weight(1f)) + Button(onClick = { openWebpage(URI("https://api.adoptium.net/v3/installer/latest/17/ga/${platform}/${arch}/jre/hotspot/normal/eclipse?project=jdk")) }) { + Text( + text = "Open a link", + color = Color.Black + ) + } + } +} + +fun openWebpage(uri: URI?): Boolean { + val desktop = Desktop.getDesktop() ?: return false + if (desktop.isSupported(Desktop.Action.BROWSE)) { + try { + desktop.browse(uri) + return true + } catch (e: Exception) { + e.printStackTrace() + } + } + return false +} From 27313b24f388743b7acc5e57f15045316f8e61c4 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Thu, 14 Nov 2024 19:08:17 +0100 Subject: [PATCH 166/459] Proper styling --- app/src/processing/app/ui/JVMManager.kt | 83 +++++++++++++++++++------ 1 file changed, 65 insertions(+), 18 deletions(-) diff --git a/app/src/processing/app/ui/JVMManager.kt b/app/src/processing/app/ui/JVMManager.kt index 24ce0cc5d..40003c226 100644 --- a/app/src/processing/app/ui/JVMManager.kt +++ b/app/src/processing/app/ui/JVMManager.kt @@ -1,16 +1,28 @@ package processing.app.ui -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.material.Button +import androidx.compose.foundation.* +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.interaction.collectIsHoveredAsState +import androidx.compose.foundation.interaction.collectIsPressedAsState +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.awt.ComposePanel +import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color +import androidx.compose.ui.input.pointer.PointerEventType +import androidx.compose.ui.input.pointer.onPointerEvent +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.platform.Font import androidx.compose.ui.unit.dp import processing.app.Language import processing.app.Platform @@ -18,11 +30,10 @@ import java.awt.BorderLayout import java.awt.Desktop import java.io.File import java.net.URI -import javax.swing.Box import javax.swing.SwingUtilities -fun addJDKManger(parent: Box){ +fun addJDKManger(parent: javax.swing.Box){ SwingUtilities.invokeLater { val composePanel = ComposePanel().apply { setContent { @@ -38,13 +49,25 @@ fun addJDKManger(parent: Box){ // If the user does not have a valid JDK installed on their system, this function will display a message and a button to download the JDK // Temporary workaround until we ship Processing with a JDK again +@OptIn(ExperimentalFoundationApi::class, ExperimentalComposeUiApi::class) @Composable fun JDKManager(){ val home = Platform.getJavaHome() val valid = File(home, "bin/java").exists() if(valid) return - val color = Theme.getColor("editor.gradient.bottom") + val color = Theme.getColor("status.notice.bgcolor") + val colorText = Theme.getColor("status.notice.fgcolor") + val buttonColor = Theme.getColor("toolbar.button.enabled.field") + val buttonTextColor = Theme.getColor("toolbar.button.enabled.glyph") + + val fontFamily = FontFamily( + Font( + resource = "font/ProcessingSansPro-Regular.ttf", + weight = FontWeight.W400, + style = FontStyle.Normal + ) + ) val os = System.getProperty("os.name") val arch = System.getProperty("os.arch") @@ -54,18 +77,42 @@ fun JDKManager(){ else -> "linux" } - Row(modifier = Modifier - .background(color = Color(color.rgb)) - .padding(8.dp) - .fillMaxWidth() + Box( + modifier = Modifier + .fillMaxWidth() + .background(color = Color(color.rgb)), + contentAlignment = Alignment.Center ) { - Text(Language.text("editor.status.missing.jvm")) - Spacer(modifier = Modifier.weight(1f)) - Button(onClick = { openWebpage(URI("https://api.adoptium.net/v3/installer/latest/17/ga/${platform}/${arch}/jre/hotspot/normal/eclipse?project=jdk")) }) { + Row( + modifier = Modifier + .padding(16.dp, 8.dp) + .fillMaxWidth() + ) { Text( - text = "Open a link", - color = Color.Black + "JDK not found. Please download the JDK to run Processing.", + fontFamily = fontFamily, + modifier = Modifier.align(Alignment.CenterVertically), + color = Color(colorText.rgb) ) + Spacer(modifier = Modifier.weight(1f)) + Row( + + modifier = Modifier + .clip(RoundedCornerShape(16.dp)) + .clickable{ + openWebpage(URI("https://api.adoptium.net/v3/installer/latest/17/ga/${platform}/${arch}/jre/hotspot/normal/eclipse?project=jdk")) + } + .background(color = Color(buttonColor.rgb)) + .padding(16.dp, 8.dp) + + , + ) { + Text( + text = "Download JDK", + color = Color(buttonTextColor.rgb), + fontFamily = fontFamily + ) + } } } } From 28ab38a11caec011f7caf62735f2fac156f8f7e9 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Thu, 14 Nov 2024 19:57:23 +0100 Subject: [PATCH 167/459] Lottie animations --- app/build.gradle.kts | 6 +++- app/src/processing/app/ui/JVMManager.kt | 39 +++++++++++++++++++++---- java/build.gradle.kts | 1 + 3 files changed, 39 insertions(+), 7 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 435b37af4..3c3a2e2ba 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -3,7 +3,7 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins{ id("java") kotlin("jvm") version "1.9.23" - id("org.jetbrains.compose") version "1.6.11" + id("org.jetbrains.compose") version "1.7.1" } group = rootProject.group @@ -58,6 +58,8 @@ compose.desktop { } } +val compottieVersion = "2.0.0-rc02" + dependencies { implementation("com.formdev:flatlaf:3.4.1") @@ -75,6 +77,8 @@ dependencies { implementation(compose.components.uiToolingPreview) implementation(compose.desktop.currentOs) + + implementation("io.github.alexzhirkevich:compottie:${compottieVersion}") } tasks.register("addCore"){ diff --git a/app/src/processing/app/ui/JVMManager.kt b/app/src/processing/app/ui/JVMManager.kt index 40003c226..103de7492 100644 --- a/app/src/processing/app/ui/JVMManager.kt +++ b/app/src/processing/app/ui/JVMManager.kt @@ -7,10 +7,7 @@ import androidx.compose.foundation.interaction.collectIsPressedAsState import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember +import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier @@ -24,12 +21,19 @@ import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.platform.Font import androidx.compose.ui.unit.dp +import androidx.compose.ui.window.Window +import androidx.compose.ui.window.application +import io.github.alexzhirkevich.compottie.* +import org.jetbrains.compose.resources.ExperimentalResourceApi +import org.processing.app.generated.resources.Res +import processing.app.Base import processing.app.Language import processing.app.Platform import java.awt.BorderLayout import java.awt.Desktop import java.io.File import java.net.URI +import java.nio.charset.Charset import javax.swing.SwingUtilities @@ -44,17 +48,23 @@ fun addJDKManger(parent: javax.swing.Box){ add(composePanel, BorderLayout.EAST) } } + } +fun main() = application { + Window(onCloseRequest = ::exitApplication) { +// JDKManager() + } +} // If the user does not have a valid JDK installed on their system, this function will display a message and a button to download the JDK // Temporary workaround until we ship Processing with a JDK again -@OptIn(ExperimentalFoundationApi::class, ExperimentalComposeUiApi::class) +@OptIn(ExperimentalResourceApi::class) @Composable fun JDKManager(){ val home = Platform.getJavaHome() val valid = File(home, "bin/java").exists() - if(valid) return +// if(valid) return val color = Theme.getColor("status.notice.bgcolor") val colorText = Theme.getColor("status.notice.fgcolor") @@ -77,6 +87,16 @@ fun JDKManager(){ else -> "linux" } + val composition by rememberLottieComposition { + LottieCompositionSpec.JsonString( +"{\"v\":\"5.3.4\",\"fr\":24,\"ip\":0,\"op\":55,\"w\":1000,\"h\":1000,\"nm\":\"Comp 1\",\"ddd\":0,\"assets\":[{\"id\":\"comp_0\",\"layers\":[{\"ddd\":0,\"ind\":1,\"ty\":0,\"nm\":\"roj\",\"refId\":\"comp_1\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.833],\"y\":[0.833]},\"o\":{\"x\":[0.167],\"y\":[0.167]},\"n\":[\"0p833_0p833_0p167_0p167\"],\"t\":6,\"s\":[0],\"e\":[84]},{\"t\":23}],\"ix\":10},\"p\":{\"a\":0,\"k\":[500,500,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[500,500,0],\"ix\":1},\"s\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.833,0.833,0.833],\"y\":[0.833,0.833,0.833]},\"o\":{\"x\":[0.167,0.167,0.167],\"y\":[0.167,0.167,0.167]},\"n\":[\"0p833_0p833_0p167_0p167\",\"0p833_0p833_0p167_0p167\",\"0p833_0p833_0p167_0p167\"],\"t\":6,\"s\":[100,100,100],\"e\":[157,157,100]},{\"t\":10}],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":6,\"op\":36,\"st\":6,\"bm\":0},{\"ddd\":0,\"ind\":2,\"ty\":0,\"nm\":\"Ama\",\"refId\":\"comp_3\",\"sr\":1,\"ks\":{\"o\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.833],\"y\":[0.833]},\"o\":{\"x\":[0.167],\"y\":[0.167]},\"n\":[\"0p833_0p833_0p167_0p167\"],\"t\":20,\"s\":[100],\"e\":[1]},{\"t\":29}],\"ix\":11},\"r\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.833],\"y\":[0.833]},\"o\":{\"x\":[0.167],\"y\":[0.167]},\"n\":[\"0p833_0p833_0p167_0p167\"],\"t\":4,\"s\":[0],\"e\":[85]},{\"t\":29}],\"ix\":10},\"p\":{\"a\":0,\"k\":[497.25,498.5,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[496.75,500.5,0],\"ix\":1},\"s\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.833,0.833,0.833],\"y\":[0.833,0.833,0.833]},\"o\":{\"x\":[0.167,0.167,0.167],\"y\":[0.167,0.167,0.167]},\"n\":[\"0p833_0p833_0p167_0p167\",\"0p833_0p833_0p167_0p167\",\"0p833_0p833_0p167_0p167\"],\"t\":4,\"s\":[54,54,100],\"e\":[100,100,100]},{\"i\":{\"x\":[0.833,0.833,0.833],\"y\":[0.833,0.833,0.833]},\"o\":{\"x\":[0.167,0.167,0.167],\"y\":[0.167,0.167,0.167]},\"n\":[\"0p833_0p833_0p167_0p167\",\"0p833_0p833_0p167_0p167\",\"0p833_0p833_0p167_0p167\"],\"t\":8,\"s\":[100,100,100],\"e\":[134,134,100]},{\"i\":{\"x\":[0.833,0.833,0.833],\"y\":[0.833,0.833,0.833]},\"o\":{\"x\":[0.167,0.167,0.167],\"y\":[0.167,0.167,0.167]},\"n\":[\"0p833_0p833_0p167_0p167\",\"0p833_0p833_0p167_0p167\",\"0p833_0p833_0p167_0p167\"],\"t\":17,\"s\":[134,134,100],\"e\":[96,96,100]},{\"t\":19}],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":4,\"op\":34,\"st\":4,\"bm\":0},{\"ddd\":0,\"ind\":3,\"ty\":0,\"nm\":\"nar\",\"refId\":\"comp_5\",\"sr\":1,\"ks\":{\"o\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.833],\"y\":[0.833]},\"o\":{\"x\":[0.167],\"y\":[0.167]},\"n\":[\"0p833_0p833_0p167_0p167\"],\"t\":15,\"s\":[100],\"e\":[0]},{\"t\":20}],\"ix\":11},\"r\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.833],\"y\":[0.833]},\"o\":{\"x\":[0.167],\"y\":[0.167]},\"n\":[\"0p833_0p833_0p167_0p167\"],\"t\":5,\"s\":[0],\"e\":[46]},{\"t\":21}],\"ix\":10},\"p\":{\"a\":0,\"k\":[497.5,499.25,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[497.5,499.25,0],\"ix\":1},\"s\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.833,0.833,0.833],\"y\":[0.833,0.833,0.833]},\"o\":{\"x\":[0.167,0.167,0.167],\"y\":[0.167,0.167,0.167]},\"n\":[\"0p833_0p833_0p167_0p167\",\"0p833_0p833_0p167_0p167\",\"0p833_0p833_0p167_0p167\"],\"t\":1,\"s\":[30,30,100],\"e\":[100,100,100]},{\"i\":{\"x\":[0.833,0.833,0.833],\"y\":[0.833,0.833,0.833]},\"o\":{\"x\":[0.167,0.167,0.167],\"y\":[0.167,0.167,0.167]},\"n\":[\"0p833_0p833_0p167_0p167\",\"0p833_0p833_0p167_0p167\",\"0p833_0p833_0p167_0p167\"],\"t\":5,\"s\":[100,100,100],\"e\":[123,123,100]},{\"i\":{\"x\":[0.833,0.833,0.833],\"y\":[0.833,0.833,0.833]},\"o\":{\"x\":[0.167,0.167,0.167],\"y\":[0.167,0.167,0.167]},\"n\":[\"0p833_0p833_0p167_0p167\",\"0p833_0p833_0p167_0p167\",\"0p833_0p833_0p167_0p167\"],\"t\":8,\"s\":[123,123,100],\"e\":[273.393,273.393,100]},{\"t\":14}],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0}]},{\"id\":\"comp_1\",\"layers\":[{\"ddd\":0,\"ind\":1,\"ty\":0,\"nm\":\"ROJO\",\"refId\":\"comp_2\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-301.855,\"ix\":10},\"p\":{\"a\":0,\"k\":[497.875,499.375,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[496.944,499.56,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":2,\"ty\":0,\"nm\":\"ROJO\",\"refId\":\"comp_2\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-252.88,\"ix\":10},\"p\":{\"a\":0,\"k\":[497.875,499.375,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[496.944,499.56,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":3,\"ty\":0,\"nm\":\"ROJO\",\"refId\":\"comp_2\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-198.233,\"ix\":10},\"p\":{\"a\":0,\"k\":[497.875,499.375,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[496.944,499.56,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":4,\"ty\":0,\"nm\":\"ROJO\",\"refId\":\"comp_2\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-149.663,\"ix\":10},\"p\":{\"a\":0,\"k\":[497.875,499.375,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[496.944,499.56,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":5,\"ty\":0,\"nm\":\"ROJO\",\"refId\":\"comp_2\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-99.267,\"ix\":10},\"p\":{\"a\":0,\"k\":[497.875,499.375,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[496.944,499.56,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":6,\"ty\":0,\"nm\":\"ROJO\",\"refId\":\"comp_2\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-45.613,\"ix\":10},\"p\":{\"a\":0,\"k\":[497.875,499.375,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[496.944,499.56,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":7,\"ty\":0,\"nm\":\"ROJO\",\"refId\":\"comp_2\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":10.106,\"ix\":10},\"p\":{\"a\":0,\"k\":[497.875,499.375,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[496.944,499.56,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0}]},{\"id\":\"comp_2\",\"layers\":[{\"ddd\":0,\"ind\":1,\"ty\":4,\"nm\":\"Shape Layer 1\",\"sr\":1,\"ks\":{\"o\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.833],\"y\":[0.833]},\"o\":{\"x\":[0.167],\"y\":[0.167]},\"n\":[\"0p833_0p833_0p167_0p167\"],\"t\":11,\"s\":[100],\"e\":[0]},{\"t\":14}],\"ix\":11},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"p\":{\"a\":0,\"k\":[500,500,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"shapes\":[{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":1,\"k\":[{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":1,\"s\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[0.75,-5.625],[-3.625,0],[3.375,-0.75]],\"c\":true}],\"e\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[5.125,-10.125],[-3.625,0],[9.875,-1.75]],\"c\":true}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":3,\"s\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[5.125,-10.125],[-3.625,0],[9.875,-1.75]],\"c\":true}],\"e\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[19.625,-19.625],[5.875,-4.5],[25.375,-7.75]],\"c\":true}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":5.412,\"s\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[19.625,-19.625],[5.875,-4.5],[25.375,-7.75]],\"c\":true}],\"e\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[67.125,-43.625],[30.875,-18.5],[71.375,-36.25]],\"c\":true}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":7.529,\"s\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[67.125,-43.625],[30.875,-18.5],[71.375,-36.25]],\"c\":true}],\"e\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[135.625,-79.625],[73.875,-42],[136.375,-77.25]],\"c\":true}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":11,\"s\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[135.625,-79.625],[73.875,-42],[136.375,-77.25]],\"c\":true}],\"e\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[219.125,-134.125],[194.125,-119.75],[219.375,-133.5]],\"c\":true}]},{\"t\":14}],\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"st\",\"c\":{\"a\":0,\"k\":[0,0,0,1],\"ix\":3},\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":0,\"ix\":5},\"lc\":1,\"lj\":1,\"ml\":4,\"ml2\":{\"a\":0,\"k\":4,\"ix\":8},\"nm\":\"Stroke 1\",\"mn\":\"ADBE Vector Graphic - Stroke\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0.125670728496,0.339342573577,0.65306372549,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transformar\"}],\"nm\":\"Shape 1\",\"np\":3,\"cix\":2,\"ix\":1,\"mn\":\"ADBE Vector Group\",\"hd\":false}],\"ip\":0,\"op\":30,\"st\":0,\"bm\":0}]},{\"id\":\"comp_3\",\"layers\":[{\"ddd\":0,\"ind\":1,\"ty\":0,\"nm\":\"AMARILLO\",\"refId\":\"comp_4\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":298.463,\"ix\":10},\"p\":{\"a\":0,\"k\":[497.75,500.5,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[497.731,499.593,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":2,\"ty\":0,\"nm\":\"AMARILLO\",\"refId\":\"comp_4\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":257.603,\"ix\":10},\"p\":{\"a\":0,\"k\":[497.75,500.5,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[497.731,499.593,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":3,\"ty\":0,\"nm\":\"AMARILLO\",\"refId\":\"comp_4\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":211.954,\"ix\":10},\"p\":{\"a\":0,\"k\":[497.75,500.5,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[497.731,499.593,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":4,\"ty\":0,\"nm\":\"AMARILLO\",\"refId\":\"comp_4\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":166.163,\"ix\":10},\"p\":{\"a\":0,\"k\":[497.75,500.5,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[497.731,499.593,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":5,\"ty\":0,\"nm\":\"AMARILLO\",\"refId\":\"comp_4\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":119.533,\"ix\":10},\"p\":{\"a\":0,\"k\":[497.75,500.5,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[497.731,499.593,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":6,\"ty\":0,\"nm\":\"AMARILLO\",\"refId\":\"comp_4\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":69.838,\"ix\":10},\"p\":{\"a\":0,\"k\":[497.75,500.5,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[497.731,499.593,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":7,\"ty\":0,\"nm\":\"AMARILLO\",\"refId\":\"comp_4\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":24.35,\"ix\":10},\"p\":{\"a\":0,\"k\":[497.75,500.5,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[497.731,499.593,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":8,\"ty\":0,\"nm\":\"AMARILLO\",\"refId\":\"comp_4\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-22.692,\"ix\":10},\"p\":{\"a\":0,\"k\":[497.75,500.5,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[497.731,499.593,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0}]},{\"id\":\"comp_4\",\"layers\":[{\"ddd\":0,\"ind\":1,\"ty\":4,\"nm\":\"Shape Layer 1\",\"sr\":1,\"ks\":{\"o\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.833],\"y\":[0.833]},\"o\":{\"x\":[0.167],\"y\":[0.167]},\"n\":[\"0p833_0p833_0p167_0p167\"],\"t\":13,\"s\":[100],\"e\":[0]},{\"t\":16}],\"ix\":11},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"p\":{\"a\":0,\"k\":[496.25,499.875,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[-3.75,-0.125,0],\"ix\":1},\"s\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.833,0.833,0.833],\"y\":[0.833,0.833,0.833]},\"o\":{\"x\":[0.167,0.167,0.167],\"y\":[0.167,0.167,0.167]},\"n\":[\"0p833_0p833_0p167_0p167\",\"0p833_0p833_0p167_0p167\",\"0p833_0p833_0p167_0p167\"],\"t\":2,\"s\":[229,229,100],\"e\":[176,176,100]},{\"t\":15}],\"ix\":6}},\"ao\":0,\"shapes\":[{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":1,\"k\":[{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":3,\"s\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[0.75,-5.625],[-3.625,0],[3.375,-0.75]],\"c\":true}],\"e\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[5.125,-10.125],[-3.625,0],[9.875,-1.75]],\"c\":true}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":5,\"s\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[5.125,-10.125],[-3.625,0],[9.875,-1.75]],\"c\":true}],\"e\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[19.625,-19.625],[5.875,-4.5],[25.375,-7.75]],\"c\":true}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":7.412,\"s\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[19.625,-19.625],[5.875,-4.5],[25.375,-7.75]],\"c\":true}],\"e\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[67.125,-43.625],[30.875,-18.5],[71.375,-36.25]],\"c\":true}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":9.529,\"s\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[67.125,-43.625],[30.875,-18.5],[71.375,-36.25]],\"c\":true}],\"e\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[135.625,-79.625],[73.875,-42],[136.375,-77.25]],\"c\":true}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":13,\"s\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[135.625,-79.625],[73.875,-42],[136.375,-77.25]],\"c\":true}],\"e\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[219.125,-134.125],[194.125,-119.75],[219.375,-133.5]],\"c\":true}]},{\"t\":16}],\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"st\",\"c\":{\"a\":0,\"k\":[0,0,0,1],\"ix\":3},\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":0,\"ix\":5},\"lc\":1,\"lj\":1,\"ml\":4,\"ml2\":{\"a\":0,\"k\":4,\"ix\":8},\"nm\":\"Stroke 1\",\"mn\":\"ADBE Vector Graphic - Stroke\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0.985922181373,0.777212404737,0.310502085966,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transformar\"}],\"nm\":\"Shape 1\",\"np\":3,\"cix\":2,\"ix\":1,\"mn\":\"ADBE Vector Group\",\"hd\":false}],\"ip\":0,\"op\":30,\"st\":0,\"bm\":0}]},{\"id\":\"comp_5\",\"layers\":[{\"ddd\":0,\"ind\":1,\"ty\":0,\"nm\":\"NARANJA\",\"refId\":\"comp_6\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-329.986,\"ix\":10},\"p\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":2,\"ty\":0,\"nm\":\"NARANJA\",\"refId\":\"comp_6\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-296.86,\"ix\":10},\"p\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":3,\"ty\":0,\"nm\":\"NARANJA\",\"refId\":\"comp_6\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-266.081,\"ix\":10},\"p\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":4,\"ty\":0,\"nm\":\"NARANJA\",\"refId\":\"comp_6\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-236.454,\"ix\":10},\"p\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":5,\"ty\":0,\"nm\":\"NARANJA\",\"refId\":\"comp_6\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-208.651,\"ix\":10},\"p\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":6,\"ty\":0,\"nm\":\"NARANJA\",\"refId\":\"comp_6\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-180.777,\"ix\":10},\"p\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":7,\"ty\":0,\"nm\":\"NARANJA\",\"refId\":\"comp_6\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-153.807,\"ix\":10},\"p\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":8,\"ty\":0,\"nm\":\"NARANJA\",\"refId\":\"comp_6\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-124.081,\"ix\":10},\"p\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":9,\"ty\":0,\"nm\":\"NARANJA\",\"refId\":\"comp_6\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-95.258,\"ix\":10},\"p\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":10,\"ty\":0,\"nm\":\"NARANJA\",\"refId\":\"comp_6\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-64.449,\"ix\":10},\"p\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":11,\"ty\":0,\"nm\":\"NARANJA\",\"refId\":\"comp_6\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":-31.972,\"ix\":10},\"p\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":12,\"ty\":0,\"nm\":\"NARANJA\",\"refId\":\"comp_6\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"p\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[498.25,499.75,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":30,\"st\":0,\"bm\":0}]},{\"id\":\"comp_6\",\"layers\":[{\"ddd\":0,\"ind\":1,\"ty\":4,\"nm\":\"Shape Layer 1\",\"sr\":1,\"ks\":{\"o\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.833],\"y\":[0.833]},\"o\":{\"x\":[0.167],\"y\":[0.167]},\"n\":[\"0p833_0p833_0p167_0p167\"],\"t\":19,\"s\":[100],\"e\":[0]},{\"t\":24}],\"ix\":11},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"p\":{\"a\":0,\"k\":[500,500,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"shapes\":[{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":1,\"k\":[{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":2,\"s\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[5.125,-10.125],[-3.625,0],[9.875,-1.75]],\"c\":true}],\"e\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[19.625,-19.625],[5.875,-4.5],[25.375,-7.75]],\"c\":true}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":7,\"s\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[19.625,-19.625],[5.875,-4.5],[25.375,-7.75]],\"c\":true}],\"e\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[67.125,-43.625],[30.875,-18.5],[71.375,-36.25]],\"c\":true}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":12,\"s\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[67.125,-43.625],[30.875,-18.5],[71.375,-36.25]],\"c\":true}],\"e\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[135.625,-79.625],[73.875,-42],[136.375,-77.25]],\"c\":true}]},{\"i\":{\"x\":0.833,\"y\":0.833},\"o\":{\"x\":0.167,\"y\":0.167},\"n\":\"0p833_0p833_0p167_0p167\",\"t\":19,\"s\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[135.625,-79.625],[73.875,-42],[136.375,-77.25]],\"c\":true}],\"e\":[{\"i\":[[0,0],[0,0],[0,0]],\"o\":[[0,0],[0,0],[0,0]],\"v\":[[219.125,-134.125],[194.125,-119.75],[219.375,-133.5]],\"c\":true}]},{\"t\":25}],\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"st\",\"c\":{\"a\":0,\"k\":[0,0,0,1],\"ix\":3},\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":0,\"ix\":5},\"lc\":1,\"lj\":1,\"ml\":4,\"ml2\":{\"a\":0,\"k\":4,\"ix\":8},\"nm\":\"Stroke 1\",\"mn\":\"ADBE Vector Graphic - Stroke\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0.151382551006,0.753048406863,0.606834680894,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[0,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transformar\"}],\"nm\":\"Shape 1\",\"np\":3,\"cix\":2,\"ix\":1,\"mn\":\"ADBE Vector Group\",\"hd\":false}],\"ip\":0,\"op\":30,\"st\":0,\"bm\":0}]}],\"layers\":[{\"ddd\":0,\"ind\":1,\"ty\":0,\"nm\":\"1\",\"refId\":\"comp_0\",\"sr\":1.15,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"p\":{\"a\":0,\"k\":[672,664,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[500,500,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[76,76,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":25,\"op\":66.4,\"st\":25,\"bm\":0},{\"ddd\":0,\"ind\":2,\"ty\":0,\"nm\":\"1\",\"refId\":\"comp_0\",\"sr\":1.15,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"p\":{\"a\":0,\"k\":[332,676,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[500,500,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[76,76,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":13,\"op\":54.4,\"st\":13,\"bm\":0},{\"ddd\":0,\"ind\":3,\"ty\":0,\"nm\":\"1\",\"refId\":\"comp_0\",\"sr\":1.15,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"p\":{\"a\":0,\"k\":[280,288,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[500,500,0],\"ix\":1},\"s\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.833,0.833,0.833],\"y\":[0.833,0.833,0.833]},\"o\":{\"x\":[0.167,0.167,0.167],\"y\":[0.167,0.167,0.167]},\"n\":[\"0p833_0p833_0p167_0p167\",\"0p833_0p833_0p167_0p167\",\"0p833_0p833_0p167_0p167\"],\"t\":28.2,\"s\":[132.4,132.4,100],\"e\":[61.4,61.4,100]},{\"t\":39.7004882881608}],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":19,\"op\":60.4,\"st\":19,\"bm\":0},{\"ddd\":0,\"ind\":4,\"ty\":0,\"nm\":\"1\",\"refId\":\"comp_0\",\"sr\":1.15,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"p\":{\"a\":0,\"k\":[668,304,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[500,500,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[72.4,72.4,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":5,\"op\":46.4,\"st\":5,\"bm\":0},{\"ddd\":0,\"ind\":5,\"ty\":0,\"nm\":\"1\",\"refId\":\"comp_0\",\"sr\":1.15,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"p\":{\"a\":0,\"k\":[497.438,499.5,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[497.438,499.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":11,\"op\":52.4,\"st\":11,\"bm\":0},{\"ddd\":0,\"ind\":6,\"ty\":0,\"nm\":\"1\",\"refId\":\"comp_0\",\"sr\":1.15,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"p\":{\"a\":0,\"k\":[497.438,499.5,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[497.438,499.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":31,\"op\":72.4,\"st\":31,\"bm\":0},{\"ddd\":0,\"ind\":7,\"ty\":0,\"nm\":\"1\",\"refId\":\"comp_0\",\"sr\":1.15,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"p\":{\"a\":0,\"k\":[497.438,499.5,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[497.438,499.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"w\":1000,\"h\":1000,\"ip\":0,\"op\":41.4,\"st\":0,\"bm\":0}],\"markers\":[]}" + ) + } + val progress by animateLottieCompositionAsState( + composition, + iterations = Compottie.IterateForever, + ) + Box( modifier = Modifier .fillMaxWidth() @@ -88,6 +108,13 @@ fun JDKManager(){ .padding(16.dp, 8.dp) .fillMaxWidth() ) { + Image( + painter = rememberLottiePainter( + composition = composition, + progress = { progress }, + ), + contentDescription = "Lottie animation" + ) Text( "JDK not found. Please download the JDK to run Processing.", fontFamily = fontFamily, diff --git a/java/build.gradle.kts b/java/build.gradle.kts index 3c22e39f8..63492afb7 100644 --- a/java/build.gradle.kts +++ b/java/build.gradle.kts @@ -4,6 +4,7 @@ plugins { repositories{ mavenCentral() + google() maven { url = uri("https://jogamp.org/deployment/maven") } } From b42181f5c433c51b89ff8fc9c2fa0b3257e4e40c Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Thu, 14 Nov 2024 23:46:49 +0100 Subject: [PATCH 168/459] Update Base.java --- app/src/processing/app/Base.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index 0dca9a83a..9ad711a6e 100644 --- a/app/src/processing/app/Base.java +++ b/app/src/processing/app/Base.java @@ -1214,6 +1214,7 @@ public String getDescription() { private Editor openSketchBundle(String path) { File zipFile = new File(path); try { + untitledFolder.mkdirs(); File destFolder = File.createTempFile("zip", "tmp", untitledFolder); if (!destFolder.delete() || !destFolder.mkdirs()) { // Hard to imagine why this would happen, but... From 1de90d4c58c5a948e5fd98d6e1e6bd76ea499f9d Mon Sep 17 00:00:00 2001 From: vsquared Date: Sat, 16 Nov 2024 15:59:15 -0600 Subject: [PATCH 169/459] Create vsquared-patch-1 Please add _all seven of the javafx modules so that we may use JavaFX controls in our apps. Thanks. --- vsquared-patch-1 | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 vsquared-patch-1 diff --git a/vsquared-patch-1 b/vsquared-patch-1 new file mode 100644 index 000000000..10c3eac66 --- /dev/null +++ b/vsquared-patch-1 @@ -0,0 +1,5 @@ +In JavaBuild.java line 1086 +change this line: + "--add-modules", "javafx.base,javafx.graphics,javafx.swing", +to this: + "--add-modules", "javafx.base,javafx.graphics,javafx.swing,javafx.controls,javafx.media,javafx.web,javafx.fxml", From 461360123cf967a02829ca78955fb6d68a05187a Mon Sep 17 00:00:00 2001 From: vsquared Date: Sat, 16 Nov 2024 19:56:10 -0600 Subject: [PATCH 170/459] Add all seven of the javafx modules to JavaBuild.java Please add _all seven of the javafx modules so that we may use JavaFX controls in our apps. Thanks. --- java/src/processing/mode/java/JavaBuild.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/java/src/processing/mode/java/JavaBuild.java b/java/src/processing/mode/java/JavaBuild.java index b367e2c8f..96b9beaef 100644 --- a/java/src/processing/mode/java/JavaBuild.java +++ b/java/src/processing/mode/java/JavaBuild.java @@ -1083,7 +1083,9 @@ static public String[] getArgsJavaFX(String modulePath) { // Full list of modules, let's not commit to all of these unless // a compelling argument is made or a reason presents itself. //"javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web" - "--add-modules", "javafx.base,javafx.graphics,javafx.swing", + // "--add-modules", "javafx.base,javafx.graphics,javafx.swing", +// ***** change to: + "--add-modules", "javafx.base,javafx.graphics,javafx.swing,javafx.controls,javafx.media,javafx.web,javafx.fxml", // TODO Presumably, this is only because com.sun.* classes are being used? // https://github.com/processing/processing4/issues/208 From cb26c901812ca75e154604e1efbfb119eafb9127 Mon Sep 17 00:00:00 2001 From: vsquared Date: Sat, 16 Nov 2024 23:44:17 -0600 Subject: [PATCH 171/459] Delete vsquared-patch-1 --- vsquared-patch-1 | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 vsquared-patch-1 diff --git a/vsquared-patch-1 b/vsquared-patch-1 deleted file mode 100644 index 10c3eac66..000000000 --- a/vsquared-patch-1 +++ /dev/null @@ -1,5 +0,0 @@ -In JavaBuild.java line 1086 -change this line: - "--add-modules", "javafx.base,javafx.graphics,javafx.swing", -to this: - "--add-modules", "javafx.base,javafx.graphics,javafx.swing,javafx.controls,javafx.media,javafx.web,javafx.fxml", From 7df7f28a68f20c6abd4e4fecc6b5b4dc60629efa Mon Sep 17 00:00:00 2001 From: vsquared Date: Sat, 16 Nov 2024 23:48:01 -0600 Subject: [PATCH 172/459] Add all seven of the javafx modules to JavaBuild.java Please add _all seven of the javafx modules so that we may use JavaFX controls in our apps. Thanks. --- java/src/processing/mode/java/JavaBuild.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/java/src/processing/mode/java/JavaBuild.java b/java/src/processing/mode/java/JavaBuild.java index 96b9beaef..757954978 100644 --- a/java/src/processing/mode/java/JavaBuild.java +++ b/java/src/processing/mode/java/JavaBuild.java @@ -1083,8 +1083,6 @@ static public String[] getArgsJavaFX(String modulePath) { // Full list of modules, let's not commit to all of these unless // a compelling argument is made or a reason presents itself. //"javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web" - // "--add-modules", "javafx.base,javafx.graphics,javafx.swing", -// ***** change to: "--add-modules", "javafx.base,javafx.graphics,javafx.swing,javafx.controls,javafx.media,javafx.web,javafx.fxml", // TODO Presumably, this is only because com.sun.* classes are being used? From a82ac33f83468377110fe93ed5ddfbe13f7d2249 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Sun, 17 Nov 2024 09:39:08 +0100 Subject: [PATCH 173/459] Contribution Manager UI Test --- app/build.gradle.kts | 10 +- .../app/contrib/ui/ContributionManager.kt | 188 ++++++++++++++++++ app/src/processing/app/ui/JVMManager.kt | 4 +- build.gradle.kts | 11 +- gradle/libs.versions.toml | 11 + settings.gradle.kts | 6 - 6 files changed, 218 insertions(+), 12 deletions(-) create mode 100644 app/src/processing/app/contrib/ui/ContributionManager.kt create mode 100644 gradle/libs.versions.toml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 3c3a2e2ba..599b675c4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -2,8 +2,11 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins{ id("java") - kotlin("jvm") version "1.9.23" - id("org.jetbrains.compose") version "1.7.1" + + kotlin("jvm") version libs.versions.kotlin + alias(libs.plugins.compose.compiler) + alias(libs.plugins.jetbrainsCompose) + alias(libs.plugins.serialization) } group = rootProject.group @@ -28,7 +31,6 @@ sourceSets{ } } - compose.desktop { application { mainClass = "processing.app.ui.Splash" @@ -79,6 +81,8 @@ dependencies { implementation(compose.desktop.currentOs) implementation("io.github.alexzhirkevich:compottie:${compottieVersion}") + + implementation("com.charleskorn.kaml:kaml:0.65.0") } tasks.register("addCore"){ diff --git a/app/src/processing/app/contrib/ui/ContributionManager.kt b/app/src/processing/app/contrib/ui/ContributionManager.kt new file mode 100644 index 000000000..8f91401ee --- /dev/null +++ b/app/src/processing/app/contrib/ui/ContributionManager.kt @@ -0,0 +1,188 @@ +package processing.app.contrib.ui + +import androidx.compose.foundation.* +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.lazy.rememberLazyListState +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.input.pointer.PointerIcon +import androidx.compose.ui.input.pointer.pointerHoverIcon +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.LineHeightStyle +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.compose.ui.window.Window +import androidx.compose.ui.window.application +import com.charleskorn.kaml.Yaml +import com.charleskorn.kaml.YamlConfiguration +import kotlinx.serialization.Serializable +import java.net.URL + + +fun main() = application { + Window(onCloseRequest = ::exitApplication) { + ContributionsManager() + } +} + +enum class Status { + VALID, + BROKEN, + DEPRECATED +} +enum class Type { + library, + mode, + tool, + examples, +} + +@Serializable +data class Author( + val name: String, + val url: String? = null, +) + +@Serializable +data class Contribution( + val id: Int, + val status: Status, + val source: String, + val type: Type, + val name: String? = null, + val categories: List? = emptyList(), + val authors: String? = null, + val authorList: List? = emptyList(), + val url: String? = null, + val sentence: String? = null, + val paragraph: String? = null, + val version: String? = null, + val prettyVersion: String? = null, + val minRevision: Int? = null, + val maxRevision: Int? = null, + val download: String? = null, +) + +@Serializable +data class Contributions( + val contributions: List +) + +@Composable +fun ContributionsManager(){ + val contributions = remember { mutableStateOf(arrayOf()) } + val error = remember { mutableStateOf(null) } + + LaunchedEffect(Unit){ + try { + val url = URL("https://github.com/mingness/processing-contributions-new/raw/refs/heads/main/contributions.yaml") + val connection = url.openConnection() + val inputStream = connection.getInputStream() + val yaml = inputStream.readAllBytes().decodeToString() + // TODO cache in processing folder + + val parser = Yaml( + configuration = YamlConfiguration( + strictMode = false + ) + ) + val result = parser.decodeFromString(Contributions.serializer(), yaml) + + contributions.value = result.contributions + .filter { it.status == Status.VALID } + .map { + // TODO Parse better + val authorList = it.authors?.split(",")?.map { author -> + val parts = author.split("](") + val name = parts[0].removePrefix("[") + val url = parts.getOrNull(1)?.removeSuffix(")") + Author(name, url) + } ?: emptyList() + it.copy(authorList = authorList) + } + .toTypedArray() + } catch (e: Exception){ + error.value = e + } + } + if(error.value != null){ + Text("Error loading contributions: ${error.value}") + return + } + if(contributions.value.isEmpty()){ + Text("Loading contributions...") + return + } + + val contributionsByType = contributions.value.groupBy { it.type } + val types = Type.entries + val selectedType = remember { mutableStateOf(types.first()) } + val contributionsForType = (contributionsByType[selectedType.value] ?: emptyList()) + .sortedBy { it.name } + + val selectedContribution = remember { mutableStateOf(null) } + + Box{ + Column { + Row{ + for(type in types){ + Text(type.name, modifier = Modifier + .background(if(selectedType.value == type) Color.Gray else Color.Transparent) + .clickable { + selectedType.value = type + selectedContribution.value = null + } + .padding(8.dp) + ) + } + Spacer(modifier = Modifier.weight(1f)) + Text("Updates") + } + Box{ + val state = rememberLazyListState() + LazyColumn(state = state) { + item{ + // Table Header + } + items(contributionsForType){ contribution -> + Row(modifier = Modifier + .pointerHoverIcon(PointerIcon.Hand) + .clickable { selectedContribution.value = contribution } + .padding(8.dp) + ) { + Row(modifier = Modifier.weight(1f)){ + Text("status") + } + Row(horizontalArrangement = Arrangement.spacedBy(4.dp), modifier = Modifier.weight(8f)){ + Text(contribution.name ?: "Unnamed", fontWeight = FontWeight.Bold) + Text(contribution.sentence ?: "No description", maxLines = 1, overflow = TextOverflow.Ellipsis) + } + Row(modifier = Modifier.weight(4f)){ + Text(contribution.authorList?.joinToString { it.name } ?: "Unknown") + } + } + } + } + VerticalScrollbar( + modifier = Modifier + .align(Alignment.CenterEnd) + .background(Color.LightGray) + .fillMaxHeight(), + adapter = rememberScrollbarAdapter( + scrollState = state + ) + ) + } + } + + } + +} \ No newline at end of file diff --git a/app/src/processing/app/ui/JVMManager.kt b/app/src/processing/app/ui/JVMManager.kt index 103de7492..eda5b3e5e 100644 --- a/app/src/processing/app/ui/JVMManager.kt +++ b/app/src/processing/app/ui/JVMManager.kt @@ -64,11 +64,11 @@ fun main() = application { fun JDKManager(){ val home = Platform.getJavaHome() val valid = File(home, "bin/java").exists() -// if(valid) return + if(valid) return val color = Theme.getColor("status.notice.bgcolor") val colorText = Theme.getColor("status.notice.fgcolor") - val buttonColor = Theme.getColor("toolbar.button.enabled.field") + val buttonColor = Theme.getColor("toolbar.button.enabled.field") val buttonTextColor = Theme.getColor("toolbar.button.enabled.glyph") val fontFamily = FontFamily( diff --git a/build.gradle.kts b/build.gradle.kts index 97b5ab214..ec5bc3f2f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,2 +1,11 @@ group = "org.processing" -version = "4.4.0" \ No newline at end of file +version = "4.4.0" + +plugins { + kotlin("jvm") version libs.versions.kotlin apply false + alias(libs.plugins.kotlinMultiplatform) apply false + + alias(libs.plugins.compose.compiler) apply false + alias(libs.plugins.jetbrainsCompose) apply false + +} \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 000000000..9b6e36d78 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,11 @@ +[versions] +kotlin = "2.0.20" +compose-plugin = "1.7.1" + +[libraries] + +[plugins] +jetbrainsCompose = { id = "org.jetbrains.compose", version.ref = "compose-plugin" } +kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } +compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } +serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index e5ab17852..31f11a68b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -6,12 +6,6 @@ include( "java" ) -pluginManagement { - plugins { - kotlin("jvm") version "1.9.23" - } -} - buildscript { repositories { mavenCentral() From 66cdcba956587e2d35ff520f52ae226a2cb0d92c Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Sun, 17 Nov 2024 09:39:44 +0100 Subject: [PATCH 174/459] .idea meta files --- .gitignore | 1 + .idea/.name | 1 + .idea/artifacts/app_desktop.xml | 6 ++ .idea/artifacts/app_jvm.xml | 6 ++ .idea/compiler.xml | 12 +-- .idea/jarRepositories.xml | 5 + .idea/kotlinc.xml | 2 +- .idea/misc.xml | 2 +- .idea/modules.xml | 4 + .idea/modules/app/processing.app.iml | 1 + .idea/modules/app/processing.app.main.iml | 95 +++++++++++++++---- .idea/modules/app/processing.app.test.iml | 83 ++++++++++++---- .../different/processing.core.different.iml | 1 + .idea/modules/core/processing.core.iml | 3 +- .idea/modules/core/processing.core.main.iml | 5 +- .idea/modules/core/processing.core.test.iml | 3 +- .idea/modules/java/processing.java.iml | 1 + .idea/modules/java/processing.java.main.iml | 65 +++++++++++-- .idea/modules/java/processing.java.test.iml | 60 ++++++++++-- .idea/modules/processing.iml | 3 +- 20 files changed, 289 insertions(+), 70 deletions(-) create mode 100644 .idea/.name create mode 100644 .idea/artifacts/app_desktop.xml create mode 100644 .idea/artifacts/app_jvm.xml diff --git a/.gitignore b/.gitignore index 2853501d5..a0ed7c50f 100644 --- a/.gitignore +++ b/.gitignore @@ -103,3 +103,4 @@ core/build/ build/publish/ app/build java/build/ +/build/reports diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 000000000..e93403586 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +processing \ No newline at end of file diff --git a/.idea/artifacts/app_desktop.xml b/.idea/artifacts/app_desktop.xml new file mode 100644 index 000000000..0e28344dc --- /dev/null +++ b/.idea/artifacts/app_desktop.xml @@ -0,0 +1,6 @@ + + + $PROJECT_DIR$/app/build/libs + + + \ No newline at end of file diff --git a/.idea/artifacts/app_jvm.xml b/.idea/artifacts/app_jvm.xml new file mode 100644 index 000000000..1f0afe2f9 --- /dev/null +++ b/.idea/artifacts/app_jvm.xml @@ -0,0 +1,6 @@ + + + $PROJECT_DIR$/app/build/libs + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 4794b2338..b589d56e9 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,16 +1,6 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml index f850df254..e9be69039 100644 --- a/.idea/jarRepositories.xml +++ b/.idea/jarRepositories.xml @@ -21,5 +21,10 @@