From a395e09d6befd60bee1f64d3ae7fad5210766586 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Sat, 14 Dec 2024 22:39:30 +0100 Subject: [PATCH 01/16] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index b85d5fa2e..2515be94e 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,11 @@ This repository contains the source code for the [Processing](https://processing We’re excited to announce the release of Processing 4.3.1! This update brings tooling improvements and a friendlier experience for contributors. To learn more, read the [Processing 4.3.1 announcement](https://github.com/processing/processing4-carbon-aug-19/wiki/Announcing-Processing-4.3.1-(release-candidate)). +Processing was initiated in 2001 by Ben Fry and Casey Reas, who lead the development and maintenance of the project until 2023. We are grateful for their vision and dedication to the project. Processing is also indebted to over two decades of contributions from the broader Processing community. + +> [!NOTE] +> Due to platform limitations, the GitHub Contributors page for this repository does not show the complete list of contributors. However, the [git commit history](https://github.com/processing/processing4/commits/main/) provides a full record of the project's contributions. For contributor graphs before November 13th, refer to [this page](https://github.com/benfry/processing4/graphs/contributors). A comprehensive [list of all contributors](#contributors) is also included below. + ## 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 44fab785149cb760bc3fb643d2a360fef527c884 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Sat, 14 Dec 2024 23:20:32 +0100 Subject: [PATCH 02/16] Update README.md Clarified how to see the commit history for an individual contributor --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2515be94e..d48fcc76d 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ We’re excited to announce the release of Processing 4.3.1! This update brings Processing was initiated in 2001 by Ben Fry and Casey Reas, who lead the development and maintenance of the project until 2023. We are grateful for their vision and dedication to the project. Processing is also indebted to over two decades of contributions from the broader Processing community. > [!NOTE] -> Due to platform limitations, the GitHub Contributors page for this repository does not show the complete list of contributors. However, the [git commit history](https://github.com/processing/processing4/commits/main/) provides a full record of the project's contributions. For contributor graphs before November 13th, refer to [this page](https://github.com/benfry/processing4/graphs/contributors). A comprehensive [list of all contributors](#contributors) is also included below. +> Due to platform limitations, the GitHub Contributors page for this repository does not show the complete list of contributors. However, the [git commit history](https://github.com/processing/processing4/commits/main/) provides a full record of the project's contributions. For contributor graphs before November 13th, refer to [this page](https://github.com/benfry/processing4/graphs/contributors). A comprehensive [list of all contributors](#contributors) is also included below. To see all commits by a contributor, click on the [💻](https://github.com/processing/processing4/commits?author=benfry) emoji below their name. ## Using Processing From 937f528c1638fa96bc8fde5a67483dad9de8b5c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Sat, 14 Dec 2024 23:27:29 +0100 Subject: [PATCH 03/16] Update README.md Fixed link to announcement --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d48fcc76d..3677f4912 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ This repository contains the source code for the [Processing](https://processing ## Announcing Processing 4.3.1 -We’re excited to announce the release of Processing 4.3.1! This update brings tooling improvements and a friendlier experience for contributors. To learn more, read the [Processing 4.3.1 announcement](https://github.com/processing/processing4-carbon-aug-19/wiki/Announcing-Processing-4.3.1-(release-candidate)). +We’re excited to announce the release of Processing 4.3.1! This update brings tooling improvements and a friendlier experience for contributors. To learn more, read the [Processing 4.3.1 announcement](https://github.com/processing/processing4-carbon-aug-19/wiki/Announcing-Processing-4.3.1). Processing was initiated in 2001 by Ben Fry and Casey Reas, who lead the development and maintenance of the project until 2023. We are grateful for their vision and dedication to the project. Processing is also indebted to over two decades of contributions from the broader Processing community. From 0ed74460ca2cb4e701b75fd2322c4009b51d1c5d Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Tue, 17 Dec 2024 21:14:54 +0000 Subject: [PATCH 04/16] docs: update README.md [skip ci] --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3677f4912..e7df64d7e 100644 --- a/README.md +++ b/README.md @@ -279,6 +279,7 @@ Add yourself to the contributors list [here](https://github.com/processing/proce Rishabdev Tudu
Rishabdev Tudu

📖 💻 Pau
Pau

📖 Junology
Junology

💻 + Jaap Meijers
Jaap Meijers

📖 From d0e66fe2aaa8e7b8de9280ff36e954e7a7ec6f88 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Tue, 17 Dec 2024 21:14:55 +0000 Subject: [PATCH 05/16] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 40a9850e8..371401a6f 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -1419,6 +1419,15 @@ "contributions": [ "code" ] + }, + { + "login": "twisst", + "name": "Jaap Meijers", + "avatar_url": "https://avatars.githubusercontent.com/u/2244463?v=4", + "profile": "https://github.com/twisst", + "contributions": [ + "doc" + ] } ], "repoType": "github", From 87fb3517f843c68308fc53bd85fb9416c3ec27be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Sat, 21 Dec 2024 10:34:28 +0100 Subject: [PATCH 06/16] Update README.md to add alt text for the logo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e7df64d7e..af7b3deee 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ - +Processing Logo Processing is a flexible software sketchbook and a programming language designed for learning how to code. From 0fcc997d2616c3dffcdcde50ee7d4139b3d8379f Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Thu, 9 Jan 2025 11:53:28 +0100 Subject: [PATCH 07/16] Create release.yml --- .github/release.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .github/release.yml diff --git a/.github/release.yml b/.github/release.yml new file mode 100644 index 000000000..62d72fbc0 --- /dev/null +++ b/.github/release.yml @@ -0,0 +1,19 @@ +changelog: + exclude: + labels: + - Dependencies + authors: + - dependabot + categories: + - title: What's Changed 🎊 + labels: + - '*' + exclude: + labels: + - Dependencies + authors: + - allcontributors + - dependabot + - title: New Contributors 💙 + authors: + - allcontributors From 74d4834d60c42669503cf9371bfaebfab2d17388 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl?= Date: Thu, 9 Jan 2025 15:02:36 +0100 Subject: [PATCH 08/16] add 'Would you like to work on the issue?' input to issue templates --- .github/ISSUE_TEMPLATE/1_bug_report.yml | 8 ++++++++ .github/ISSUE_TEMPLATE/2_enhancement.yml | 8 ++++++++ .github/ISSUE_TEMPLATE/3_feature-request.yml | 9 +++++++++ 3 files changed, 25 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/1_bug_report.yml b/.github/ISSUE_TEMPLATE/1_bug_report.yml index eff4c56a8..583736009 100644 --- a/.github/ISSUE_TEMPLATE/1_bug_report.yml +++ b/.github/ISSUE_TEMPLATE/1_bug_report.yml @@ -83,3 +83,11 @@ body: description: Add any other context about the problem here. validations: required: false + +- type: input + attributes: + label: Would you like to work on the issue? + description: | + Please let us know if you can work on this or if the issue should be assigned to someone else. + validations: + required: true \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/2_enhancement.yml b/.github/ISSUE_TEMPLATE/2_enhancement.yml index de88cda16..95043cc1f 100644 --- a/.github/ISSUE_TEMPLATE/2_enhancement.yml +++ b/.github/ISSUE_TEMPLATE/2_enhancement.yml @@ -64,3 +64,11 @@ body: description: Add any other context or screenshots about the feature request here. validations: required: false + +- type: input + attributes: + label: Would you like to work on the issue? + description: | + Please let us know if you can work on this or if the issue should be assigned to someone else. + validations: + required: true \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/3_feature-request.yml b/.github/ISSUE_TEMPLATE/3_feature-request.yml index b7bf42de5..2f3234aa8 100644 --- a/.github/ISSUE_TEMPLATE/3_feature-request.yml +++ b/.github/ISSUE_TEMPLATE/3_feature-request.yml @@ -61,3 +61,12 @@ body: description: Provide any other information, links, or screenshots that could help illustrate the feature. validations: required: false + + +- type: input + attributes: + label: Would you like to work on the issue? + description: | + Please let us know if you can work on this or if the issue should be assigned to someone else. + validations: + required: true \ No newline at end of file From 53931abec9f150179bfb4bad44d9108f7f6238da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl?= Date: Thu, 9 Jan 2025 15:03:13 +0100 Subject: [PATCH 09/16] remove unnecessary whitespace in issue templates --- .github/ISSUE_TEMPLATE/1_bug_report.yml | 22 ++-- .github/ISSUE_TEMPLATE/2_enhancement.yml | 10 +- .github/ISSUE_TEMPLATE/3_feature-request.yml | 116 +++++++++---------- 3 files changed, 74 insertions(+), 74 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/1_bug_report.yml b/.github/ISSUE_TEMPLATE/1_bug_report.yml index 583736009..2940b983e 100644 --- a/.github/ISSUE_TEMPLATE/1_bug_report.yml +++ b/.github/ISSUE_TEMPLATE/1_bug_report.yml @@ -29,24 +29,24 @@ body: - Other (specify if possible) validations: required: true - + - type: input attributes: - label: Processing version + label: Processing version description: Go to "Help > About Processing" and look in the bottom-right corner for the version number. It also appears in the title bar of every editor window. validations: required: true - + - type: input attributes: - label: Operating system + label: Operating system description: "Ex: Windows/MacOSX/Linux/Android/iOS along with version" validations: required: true - + - type: textarea attributes: - label: Steps to reproduce this + label: Steps to reproduce this description: Describe what steps will produce the bug. value: | "1. @@ -56,7 +56,7 @@ body: 3." validations: required: true - + - type: textarea attributes: label: snippet @@ -67,16 +67,16 @@ body: // Paste your code below :) void setup() { - + } - + void draw() { - + } ``` validations: required: false - + - type: textarea attributes: label: Additional context diff --git a/.github/ISSUE_TEMPLATE/2_enhancement.yml b/.github/ISSUE_TEMPLATE/2_enhancement.yml index 95043cc1f..06a1c93b9 100644 --- a/.github/ISSUE_TEMPLATE/2_enhancement.yml +++ b/.github/ISSUE_TEMPLATE/2_enhancement.yml @@ -29,35 +29,35 @@ body: - Other (specify if possible) validations: required: true - + - type: input attributes: label: Feature to enhance description: Which existing feature of Processing would be improved by this enhancement? validations: required: true - + - type: textarea attributes: label: Desired enhancement description: Describe the improvement you’d like to see with that existing feature validations: required: true - + - type: textarea attributes: label: Potential benefits description: Explain how this enhancement could benefit users or improve Processing. validations: required: false - + - type: textarea attributes: label: Possible drawbacks description: Consider any possible drawbacks or challenges related to the implementation of this enhancement. validations: required: false - + - type: textarea attributes: label: Additional context diff --git a/.github/ISSUE_TEMPLATE/3_feature-request.yml b/.github/ISSUE_TEMPLATE/3_feature-request.yml index 2f3234aa8..bfe8de060 100644 --- a/.github/ISSUE_TEMPLATE/3_feature-request.yml +++ b/.github/ISSUE_TEMPLATE/3_feature-request.yml @@ -3,64 +3,64 @@ description: Request adding a new feature to Processing labels: [new feature] body: - - type: dropdown - id: feature-area - attributes: - label: Relevant sub-area for this feature? - description: Choose the sub-area most relevant to your feature request. - multiple: true - options: - - Accessibility - - Core/Environment/Rendering - - PDE - - Data - - Events - - Image - - IO - - Math - - Typography - - Utilities - - OpenGL - - Contributions Manager - - Export - - Build process - - Unit testing - - Internationalization - - Other (specify if possible) - validations: - required: true - - - type: textarea - id: feature-description - attributes: - label: Feature description - description: Describe the feature in detail. Include how it should work and its intended impact. - validations: - required: true - - - type: textarea - id: benefits - attributes: - label: Benefits - description: Outline how this feature would benefit users or improve Processing. - validations: - required: true - - - type: textarea - id: challenges - attributes: - label: Possible challenges - description: Discuss any possible challenges or considerations in implementing this feature. - validations: - required: false - - - type: textarea - id: additional-context - attributes: - label: Additional context - description: Provide any other information, links, or screenshots that could help illustrate the feature. - validations: - required: false +- type: dropdown + id: feature-area + attributes: + label: Relevant sub-area for this feature? + description: Choose the sub-area most relevant to your feature request. + multiple: true + options: + - Accessibility + - Core/Environment/Rendering + - PDE + - Data + - Events + - Image + - IO + - Math + - Typography + - Utilities + - OpenGL + - Contributions Manager + - Export + - Build process + - Unit testing + - Internationalization + - Other (specify if possible) + validations: + required: true + +- type: textarea + id: feature-description + attributes: + label: Feature description + description: Describe the feature in detail. Include how it should work and its intended impact. + validations: + required: true + +- type: textarea + id: benefits + attributes: + label: Benefits + description: Outline how this feature would benefit users or improve Processing. + validations: + required: true + +- type: textarea + id: challenges + attributes: + label: Possible challenges + description: Discuss any possible challenges or considerations in implementing this feature. + validations: + required: false + +- type: textarea + id: additional-context + attributes: + label: Additional context + description: Provide any other information, links, or screenshots that could help illustrate the feature. + validations: + required: false - type: input From 26f45f994f137b130c2decacd18c6cdc7fefb1b4 Mon Sep 17 00:00:00 2001 From: Junology Date: Fri, 10 Jan 2025 05:04:16 +0900 Subject: [PATCH 10/16] Refactor PShapeSVG.parseRect() to parse rx and ry attributes --- core/src/processing/core/PShapeSVG.java | 103 ++++++++++++++++++++++-- 1 file changed, 95 insertions(+), 8 deletions(-) diff --git a/core/src/processing/core/PShapeSVG.java b/core/src/processing/core/PShapeSVG.java index 59f54f87f..a51e94276 100644 --- a/core/src/processing/core/PShapeSVG.java +++ b/core/src/processing/core/PShapeSVG.java @@ -440,15 +440,102 @@ protected void parseEllipse(boolean circle) { } + /** + * Parse element. + * Syntax defined at https://www.w3.org/TR/SVG11/shapes.html#RectElement + */ protected void parseRect() { - kind = RECT; - family = PRIMITIVE; - params = new float[] { - getFloatWithUnit(element, "x", svgWidth), - getFloatWithUnit(element, "y", svgHeight), - getFloatWithUnit(element, "width", svgWidth), - getFloatWithUnit(element, "height", svgHeight) - }; + // Load rectangle parameters + float x = getFloatWithUnit(element, "x", svgWidth); + float y = getFloatWithUnit(element, "y", svgHeight); + float w = getFloatWithUnit(element, "width", svgWidth); + float h = getFloatWithUnit(element, "height", svgHeight); + + // The specification above says zero size should disable rendering. + // The resulting shape is an empty GROUP shape since it is the most light one in drawing. + if (w <= 0f || h <= 0f) { + kind = 0; + family = GROUP; + childCount = 0; + children = null; + vertexCount = 0; + visible = false; + return; + } + + // Determine the values of rx and ry from attributes + String rxAttr = element.getString("rx"); + String ryAttr = element.getString("ry"); + float rx = rxAttr == null ? -1f : parseUnitSize(rxAttr, svgWidth); + float ry = ryAttr == null ? -1f : parseUnitSize(ryAttr, svgHeight); + if (rx < 0f && ry > 0f) + rx = ry; + if (rx > 0f && ry < 0f) + ry = rx; + if (rx > w/2) + rx = w/2; + if (ry > h/2) + ry = h/2; + + // Determine the vertices + if (rx <= 0f || ry <= 0f) { + kind = RECT; + family = PRIMITIVE; + params = new float[] {x, y, w, h}; + } + else if (rx == ry) { + kind = RECT; + family = PRIMITIVE; + params = new float[] {x, y, w, h, rx}; + } + else { + kind = 0; + family = PATH; + close = true; + vertexCount = 16; + vertices = new float[vertexCount][2]; + vertexCodes = new int[8]; + parsePathCode(VERTEX); + vertices[0][X] = x; + vertices[0][Y] = y + ry; + parsePathCode(BEZIER_VERTEX); + vertices[1][X] = x; + vertices[1][Y] = y + 0.4476f * ry; + vertices[2][X] = x + 0.4476f * rx; + vertices[2][Y] = y; + vertices[3][X] = x + rx; + vertices[3][Y] = y; + parsePathCode(VERTEX); + vertices[4][X] = x + w - rx; + vertices[4][Y] = y; + parsePathCode(BEZIER_VERTEX); + vertices[5][X] = x + w - 0.4476f * rx; + vertices[5][Y] = y; + vertices[6][X] = x + w; + vertices[6][Y] = y + 0.4476f * ry; + vertices[7][X] = x + w; + vertices[7][Y] = y + ry; + parsePathCode(VERTEX); + vertices[8][X] = x + w; + vertices[8][Y] = y + h - ry; + parsePathCode(BEZIER_VERTEX); + vertices[9][X] = x + w; + vertices[9][Y] = y + h - 0.4476f * ry; + vertices[10][X] = x + w - 0.4476f * rx; + vertices[10][Y] = y + h; + vertices[11][X] = x + w - rx; + vertices[11][Y] = y + h; + parsePathCode(VERTEX); + vertices[12][X] = x + rx; + vertices[12][Y] = y + h; + parsePathCode(BEZIER_VERTEX); + vertices[13][X] = x + 0.4476f * rx; + vertices[13][Y] = y + h; + vertices[14][X] = x; + vertices[14][Y] = y + h - 0.4476f * ry; + vertices[15][X] = x; + vertices[15][Y] = y + h- ry; + } } From 258b6ec2cee827e27bc4539a168f0d5cf8773609 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Fri, 10 Jan 2025 13:59:32 +0100 Subject: [PATCH 11/16] Update CODESIGNING.md --- build/CODESIGNING.md | 85 +++++++++++++++++++++++++++++++------------- 1 file changed, 61 insertions(+), 24 deletions(-) diff --git a/build/CODESIGNING.md b/build/CODESIGNING.md index 0230aa215..24c2aa1b0 100644 --- a/build/CODESIGNING.md +++ b/build/CODESIGNING.md @@ -1,52 +1,89 @@ -# CODESIGNING +# Code Signing -To sign Processing on Mac OS we need a Apple Developer account and involves two steps: +Code signing is a way for a computer to verify that the software it runs comes from a trusted source and hasn’t been altered. -Signing the Processing.app and the included JRE +Official releases of Processing are signed by our automated build process. If you only ever want to download and use Processing, you should not have to worry about code signing. -This happens either by running `ant macos-dist` or in the Github actions +However, if you want to share your own custom builds of Processing with someone else, you might need to sign the code with your own certificates. -## Setup Github Actions -To setup the Github Actions you need to be the role Account Holder on your Apple Developer team. +## macOS -### Application Signing -We start by creating a .p12 file following the tutorial on the CodeSigning Action -https://github.com/Apple-Actions/import-codesign-certs +Code signing is especially important for macOS, as Apple blocks unsigned software from running on their system. If you build Processing locally and share the executable with someone else, you will need to sign your code. -Currently this consists of following this tutorial with one step altered below: +### Pre-requisites +1. Access to a computer running macOS (Apple only allows macOS certificates to be created on a Mac) +2. An Apple Developer account (https://developer.apple.com) +3. A recent version of Xcode +5. The "Account Holder" role on your Apple Developer team (needed for setting up the GitHub action) -https://calvium.com/how-to-make-a-p12-file/ +### macOS Code Signing with GitHub Actions -In the create new certificate section, select `Developer ID Application` this allows the certificate to distribute outside the Mac App Store +We need to sign the `Processing.app` executable itself, as well as the included Java Runtime Environment (JRE). -Then take the certificate generated by the tutorial above and copy it to your clipboard as +For this we will use the [import-codesign-certs](https://github.com/Apple-Actions/import-codesign-certs) GitHub Action. + +#### Create Your Local Signing Certificates + +Open Xcode and log in with your Apple Developer account if you aren't already. + +Still in Xcode, navigate to **Preferences**. Go to the **Accounts** tab, select your user account, and click **Manage Certificates**. Then, click the **+** button and select **macOS Developer ID**. + +#### Create a `.p12` file +A `.p12` file contains your signing certificates, which will be used to prove that the app comes from you. + +To create your `.p12` file, follow [this tutorial](https://calvium.com/how-to-make-a-p12-file/) with the following step altered: + +In the **create new certificate** section, do NOT select `iOS distribution` but instead select `Developer ID Application`. This allows the certificate to be used to distribute an app outside of the Mac App Store. + +Make sure to create a strong password when prompted. If possible, save the password in a password manager. You will need it in the next step. + +#### Upload your Signing Certificates to GitHub + +In a terminal window, navigate to the location of the `.p12` file you generated in the previous step. + +Copy the file to your clipboard using the following command: ```bash $ base64 -i CertificateFile.p12 | pbcopy ``` +In your Github Repository, create a secret called `CERTIFICATES_P12` and paste the content of your clipboard into it. + +Create another secret called `CERTIFICATES_P12_PASSWORD` and save your `.p12` password into it. -and set the secrets `CERTIFICATES_P12` and `CERTIFICATES_P12_PASSWORD` into the Github Repository. +The GitHub Action should now be set up to sign Processing and the JRE. -This will allow the action to sign Processing and the JRE ### Notarisation +Notarization is a security process required by Apple for macOS software. It means that the software has been checked by Apple to ensure it doesn’t contain malicious code. This is an additional step, different from code signing. -To prevent the *this application is not recognised by Mac OS* error we need to setup the Github Action to upload the release to Apple for Notarisation +When a macOS application is notarized, Apple reviews it and issues a “stamp of approval.” This lets macOS users run the software without warnings or blocks. Without notarization, macOS might prevent the software from opening or display a security warning, even if the software is safe. -Go to https://developer.apple.com/account to find the team id in the membership details section and apply it to the `PROCESSING_TEAM_ID` secret +To prevent the *this application is not recognised by Mac OS* error we will setup the Github Action to submit the release to Apple for Notarisation. -Enter an apple id email in the `PROCESSING_APPLE_ID` secret, this account does **not** need to have an Account Holder role, ideally it is not anyone's personal apple id as the password to the apple id will be included into the repositories secrets. +Go to https://developer.apple.com/account to find the team ID in the membership details section and save that ID to the `PROCESSING_TEAM_ID` secret. -Follow these instructions https://support.apple.com/en-us/102654 to setup an app-specific password for the apple id and enter that as `PROCESSING_APP_PASSWORD` +Enter an Apple ID email in the `PROCESSING_APPLE_ID` secret, this account does **not** need to have an Account Holder role, ideally it is not anyone's personal Apple ID, as the password to the Apple ID will be included into the repositories secrets. + +Follow these instructions https://support.apple.com/en-us/102654 to setup an app-specific password for the Apple ID and enter that as `PROCESSING_APP_PASSWORD` ### Release -Finally create a release to test the signing actions -## Sign locally +Finally create a GitHub release to test the signing and notarization actions. + +### Sign locally -- Be on a MacOS computer -- Be logged into your Apple ID +Alternatively, or if you don't want to use the Github Action, you can sign and notarize your build of Processing locally using `ant macos-dist ` + +#### Pre-requisites +- Use a computer running macOS +- Have an Apple Developer account +- Make sure you are logged into your Apple ID - Setup and Log into XCode -- cd into the repository + +#### Code Sign with `ant macos-dist ` + +In a terminal window, `cd` into the repository then run the following command: ```bash $ PROCESSING_TEAM_ID=... PROCESSING_APPLE_ID=... PROCESSING_APP_PASSWORD=... ant macos-dist ``` + +Where `...` are replaced with your credentials. From 260a7cd84dc6d26d50213dbe3aada0c05a991589 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Fri, 10 Jan 2025 17:44:19 +0100 Subject: [PATCH 12/16] Update pull_request.yml --- .github/workflows/pull_request.yml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 53caf7fb9..c3302d2f2 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -52,7 +52,9 @@ jobs: - name: Setup Ant uses: cedx/setup-ant@v3 - name: Install Certificates for Code Signing - if: ${{ matrix.os_prefix == 'macos' }} + env: + cert_secret: ${{ secrets.CERTIFICATES_P12 }} + if: ${{ matrix.os_prefix == 'macos' && secrets.CERTIFICATES_P12 != '' }} uses: apple-actions/import-codesign-certs@v3 with: p12-file-base64: ${{ secrets.CERTIFICATES_P12 }} @@ -60,7 +62,7 @@ jobs: - name: Build Release run: ant -noinput -buildfile build/build.xml ${{ matrix.os_prefix }}-dist -Dversion="${{ github.sha }}" env: - PROCESSING_APP_SIGNING: true + PROCESSING_APP_SIGNING: secrets.CERTIFICATES_P12 != '' - name: Add artifact uses: actions/upload-artifact@v3 id: upload @@ -68,10 +70,3 @@ jobs: name: processing-${{github.sha}}${{ matrix.os_prefix }}-${{ matrix.arch }} path: ./build/${{ matrix.os_prefix }}/processing-${{github.sha}}-${{ matrix.os_prefix}}-* retention-days: 5 - # TODO: Merge into one comment and fix the link - # - uses: mshick/add-pr-comment@v2 - # with: - # message-id: "build-artifact ${{ matrix.os_prefix }} ${{ matrix.arch }}" - # message: | - # Build artifacts for ${{ matrix.os_prefix }} (${{ matrix.arch }}) have been created. - # Download the artifacts [here](${{ steps.upload.outputs.artifact-id }}). From e350766ca34cc7affcb8cd99d9143d477405364b Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Fri, 10 Jan 2025 17:45:10 +0100 Subject: [PATCH 13/16] Update pull_request.yml --- .github/workflows/pull_request.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index c3302d2f2..17da60627 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -52,8 +52,6 @@ jobs: - name: Setup Ant uses: cedx/setup-ant@v3 - name: Install Certificates for Code Signing - env: - cert_secret: ${{ secrets.CERTIFICATES_P12 }} if: ${{ matrix.os_prefix == 'macos' && secrets.CERTIFICATES_P12 != '' }} uses: apple-actions/import-codesign-certs@v3 with: From 6c47ebe9a2f416b44754fd10481646efbe6bb2d4 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Fri, 10 Jan 2025 17:47:28 +0100 Subject: [PATCH 14/16] Update pull_request.yml --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 17da60627..d020a1b1c 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -60,7 +60,7 @@ jobs: - name: Build Release run: ant -noinput -buildfile build/build.xml ${{ matrix.os_prefix }}-dist -Dversion="${{ github.sha }}" env: - PROCESSING_APP_SIGNING: secrets.CERTIFICATES_P12 != '' + PROCESSING_APP_SIGNING: ${{ secrets.CERTIFICATES_P12 != '' }} - name: Add artifact uses: actions/upload-artifact@v3 id: upload From e524ed2fc6b049f070dbc37aeccbe322cb892366 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Fri, 10 Jan 2025 17:48:49 +0100 Subject: [PATCH 15/16] Update pull_request.yml --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index d020a1b1c..26c77dcdc 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -52,7 +52,7 @@ jobs: - name: Setup Ant uses: cedx/setup-ant@v3 - name: Install Certificates for Code Signing - if: ${{ matrix.os_prefix == 'macos' && secrets.CERTIFICATES_P12 != '' }} + if: ${{ matrix.os_prefix == 'macos' && github.secrets.CERTIFICATES_P12 != '' }} uses: apple-actions/import-codesign-certs@v3 with: p12-file-base64: ${{ secrets.CERTIFICATES_P12 }} From 1248d453e841067d22f540c1f540d6f972a1910a Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Fri, 10 Jan 2025 18:32:00 +0100 Subject: [PATCH 16/16] Update pull_request.yml --- .github/workflows/pull_request.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 26c77dcdc..b26436602 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -51,16 +51,16 @@ jobs: architecture: ${{ matrix.arch }} - name: Setup Ant uses: cedx/setup-ant@v3 - - name: Install Certificates for Code Signing - if: ${{ matrix.os_prefix == 'macos' && github.secrets.CERTIFICATES_P12 != '' }} - uses: apple-actions/import-codesign-certs@v3 - with: - p12-file-base64: ${{ secrets.CERTIFICATES_P12 }} - p12-password: ${{ secrets.CERTIFICATES_P12_PASSWORD }} + # - name: Install Certificates for Code Signing + # if: ${{ matrix.os_prefix == 'macos' }} + # uses: apple-actions/import-codesign-certs@v3 + # with: + # p12-file-base64: ${{ secrets.CERTIFICATES_P12 }} + # p12-password: ${{ secrets.CERTIFICATES_P12_PASSWORD }} - name: Build Release run: ant -noinput -buildfile build/build.xml ${{ matrix.os_prefix }}-dist -Dversion="${{ github.sha }}" - env: - PROCESSING_APP_SIGNING: ${{ secrets.CERTIFICATES_P12 != '' }} + # env: + # PROCESSING_APP_SIGNING: ${{ secrets.CERTIFICATES_P12 != '' }} - name: Add artifact uses: actions/upload-artifact@v3 id: upload