Skip to content

Commit 9ac49c9

Browse files
authored
Merge pull request #851 from processing/main
Update core-maven
2 parents f67b34d + 00ce121 commit 9ac49c9

15 files changed

+1986
-123
lines changed

.all-contributorsrc

+1,389
Large diffs are not rendered by default.

.github/ARM32.md

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Processing 32-bit Linux
2+
3+
For the Raspberry Pi 3 and older we'd need to create an 32-bit arm version of
4+
processing.
5+
6+
Github Actions do not support creating 32 bit runners so we need to host one
7+
ourselves.
8+
9+
## Instructions
10+
11+
### Gathering your Tools
12+
13+
You will need:
14+
15+
- A Raspberry Pi
16+
- A micro SD card
17+
- An SD card reader
18+
- A computer
19+
20+
### Flashing the SD Card
21+
1. Install and open [**Raspberry Pi Imager**](https://www.raspberrypi.com/software/) on your computer
22+
2. In **Raspberry Pi Imager**:
23+
- Select your Raspberry Pi model
24+
- Select "Raspberry PI OS lite (32bit)" as the OS (you may need to look into the sub-menus)
25+
- Select your SD card
26+
- Click NEXT
27+
3. Edit the OS settings:
28+
- Set a hostname (e.g. `processing.local`)
29+
- Set a username and password
30+
- Go to the SERVICES tab and enable SSH with password authentication
31+
- Click SAVE and Apply the OS customisation settings
32+
33+
### Configuring the Raspberry Pi
34+
1. Take the written SD card and put it into the Raspberry PI
35+
2. Power it up and wait for it to boot
36+
3. SSH into the Raspberry Pi using the hostname, username, and password you set earlier
37+
4. Follow Github's [instructions on how to set up a self-hosted runner](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners). _Note: In the `./config.sh` setup step, you will be prompted to enter a name and other settings. Use default settings by pressing ENTER for each prompt._
38+
5. Verify that the new runner appears in the list of runners on GitHub.
39+
6. Quit the the runner in the terminal (we will set it up to run automatically on boot).
40+
7. Use Github [instructions to setup the runner as a services](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/configuring-the-self-hosted-runner-application-as-a-service) so it runs on boot.
41+
42+
Done.

.github/ISSUE_TEMPLATE/config.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
blank_issues_enabled: false
1+
blank_issues_enabled: true
22
contact_links:
33
- name: 🌐 Processing Website Issues
44
url: https://github.com/processing/processing-website/issues

.github/workflows/build.yml

+49-82
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
name: Build
2-
on: [push]
1+
name: Pre-releases
2+
on:
3+
push:
4+
paths-ignore:
5+
- '**/*.md'
6+
- '.all-contributorsrc'
37

48
jobs:
59
test:
610
runs-on: ubuntu-latest
711
name: Run Tests
812
steps:
9-
- name: Checkout
13+
- name: Checkout Repository
1014
uses: actions/checkout@v4
11-
- name: Update apt
12-
run: yes | sudo apt-get update
13-
- name: Install rsync
14-
run: yes | sudo apt-get install rsync
1515
- name: Install Java
1616
uses: actions/setup-java@v4
1717
with:
@@ -21,89 +21,56 @@ jobs:
2121
- name: Build
2222
run: >
2323
cd build;
24-
ant clean;
25-
ant build
26-
- name: Test
27-
run: >
28-
cd build;
29-
ant test
30-
linux:
31-
runs-on: ubuntu-latest
32-
name: Build Linux
33-
needs: [test]
24+
ant -noinput build test;
25+
build:
26+
name: Create Pre-release for ${{ matrix.os_prefix }} (${{ matrix.arch }})
27+
needs: test
28+
runs-on: ${{ matrix.os }}
29+
permissions:
30+
contents: write
31+
strategy:
32+
matrix:
33+
include:
34+
# compiling for arm32 needs a self-hosted runner on Raspi OS (32-bit)
35+
- os: self-hosted
36+
os_prefix: linux
37+
arch: arm
38+
- os: ubuntu-latest
39+
os_prefix: linux
40+
arch: x64
41+
- os: windows-latest
42+
os_prefix: windows
43+
arch: x64
44+
- os: macos-latest
45+
os_prefix: macos
46+
arch: x64
47+
- os: macos-latest
48+
os_prefix: macos
49+
arch: aarch64
50+
- os: macos-latest
51+
os_prefix: linux
52+
arch: aarch64
3453
steps:
35-
- name: Checkout
54+
- name: Checkout Repository
3655
uses: actions/checkout@v4
37-
- name: Update apt
38-
run: yes | sudo apt-get update
39-
- name: Install rsync
40-
run: yes | sudo apt-get install rsync
41-
- name: Install Java
42-
uses: actions/setup-java@v4
43-
with:
44-
java-version: '17'
45-
distribution: 'temurin'
46-
architecture: x64
47-
- name: Build linux
48-
run: >
49-
cd build;
50-
ant clean;
51-
ant build
52-
- name: Add artifact
53-
uses: actions/upload-artifact@v3
54-
if: ${{ github.ref == 'ref/head/main' }}
55-
with:
56-
name: linux
57-
path: ./build/linux/work
58-
mac:
59-
runs-on: macos-latest
60-
name: Build Mac
61-
needs: [test]
62-
steps:
63-
- name: Checkout
56+
- name: Checkout Examples Repository
6457
uses: actions/checkout@v4
65-
- name: Install brew
66-
run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
67-
- name: Install rsync
68-
run: brew install rsync
69-
- name: Install Java
70-
uses: actions/setup-java@v4
71-
with:
72-
java-version: '17'
73-
distribution: 'temurin'
74-
architecture: x64
75-
- name: Build mac
76-
run: >
77-
cd build;
78-
ant clean;
79-
ant build
80-
- name: Add artifact
81-
uses: actions/upload-artifact@v3
82-
if: ${{ github.ref == 'ref/head/main' }}
8358
with:
84-
name: macos
85-
path: ./build/macos/work
86-
windows:
87-
runs-on: windows-latest
88-
name: Build Windows
89-
needs: [test]
90-
steps:
91-
- name: Checkout
92-
uses: actions/checkout@v4
59+
repository: processing/processing-examples
60+
path: processing-examples
9361
- name: Install Java
9462
uses: actions/setup-java@v4
9563
with:
9664
java-version: '17'
9765
distribution: 'temurin'
98-
architecture: x64
99-
- name: Build
100-
run: >
101-
cd build;
102-
ant clean;
103-
ant build
66+
architecture: ${{ matrix.arch }}
67+
- name: Setup Ant
68+
uses: cedx/setup-ant@v3
69+
- name: Build Release
70+
run: ant -noinput -buildfile build/build.xml ${{ matrix.os_prefix }}-dist -Dversion="${{ github.sha }}"
10471
- name: Add artifact
105-
uses: actions/upload-artifact@v3
106-
if: ${{ github.ref == 'ref/head/main' }}
72+
uses: actions/upload-artifact@v4
10773
with:
108-
name: windows
109-
path: ./build/windows/work
74+
name: processing-${{github.sha}}${{ matrix.os_prefix }}-${{ matrix.arch }}
75+
path: ./build/${{ matrix.os_prefix }}/processing-${{github.sha}}-${{ matrix.os_prefix}}-*
76+
retention-days: 1

.github/workflows/pull_request.yml

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
name: Pull Requests
2+
on:
3+
pull_request:
4+
paths-ignore:
5+
- '**/*.md'
6+
branches:
7+
- main
8+
9+
jobs:
10+
build:
11+
name: Create Pull Request Build for ${{ matrix.os_prefix }} (${{ matrix.arch }})
12+
runs-on: ${{ matrix.os }}
13+
permissions:
14+
pull-requests: write
15+
contents: read
16+
strategy:
17+
matrix:
18+
include:
19+
# compiling for arm32 needs a self-hosted runner on Raspi OS (32-bit)
20+
- os: self-hosted
21+
os_prefix: linux
22+
arch: arm
23+
- os: ubuntu-latest
24+
os_prefix: linux
25+
arch: x64
26+
- os: windows-latest
27+
os_prefix: windows
28+
arch: x64
29+
- os: macos-latest
30+
os_prefix: macos
31+
arch: x64
32+
- os: macos-latest
33+
os_prefix: macos
34+
arch: aarch64
35+
- os: macos-latest
36+
os_prefix: linux
37+
arch: aarch64
38+
steps:
39+
- name: Checkout Repository
40+
uses: actions/checkout@v4
41+
- name: Install Java
42+
uses: actions/setup-java@v4
43+
with:
44+
java-version: '17'
45+
distribution: 'temurin'
46+
architecture: ${{ matrix.arch }}
47+
- name: Setup Ant
48+
uses: cedx/setup-ant@v3
49+
- name: Build Release
50+
run: ant -noinput -buildfile build/build.xml ${{ matrix.os_prefix }}-dist -Dversion="${{ github.sha }}"
51+
- name: Add artifact
52+
uses: actions/upload-artifact@v3
53+
id: upload
54+
with:
55+
name: processing-${{github.sha}}${{ matrix.os_prefix }}-${{ matrix.arch }}
56+
path: ./build/${{ matrix.os_prefix }}/processing-${{github.sha}}-${{ matrix.os_prefix}}-*
57+
retention-days: 5
58+
# TODO: Merge into one comment and fix the link
59+
# - uses: mshick/add-pr-comment@v2
60+
# with:
61+
# message-id: "build-artifact ${{ matrix.os_prefix }} ${{ matrix.arch }}"
62+
# message: |
63+
# Build artifacts for ${{ matrix.os_prefix }} (${{ matrix.arch }}) have been created.
64+
# Download the artifacts [here](${{ steps.upload.outputs.artifact-id }}).

.github/workflows/release.yml

+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
name: Releases
2+
on:
3+
release:
4+
types: [published]
5+
push:
6+
tags:
7+
- processing-*
8+
9+
jobs:
10+
version:
11+
runs-on: ubuntu-latest
12+
outputs:
13+
build_number: ${{ steps.tag_info.outputs.build_number }}
14+
version: ${{ steps.tag_info.outputs.version }}
15+
steps:
16+
- name: Extract version and build number
17+
id: tag_info
18+
shell: bash
19+
run: |
20+
TAG_NAME="${GITHUB_REF#refs/tags/}"
21+
BUILD_NUMBER=$(echo "$TAG_NAME" | cut -d'-' -f2)
22+
VERSION=$(echo "$TAG_NAME" | cut -d'-' -f3)
23+
24+
# Set outputs for use in later jobs or steps
25+
echo "build_number=$BUILD_NUMBER" >> $GITHUB_OUTPUT
26+
echo "version=$VERSION" >> $GITHUB_OUTPUT
27+
build:
28+
name: Publish Release for ${{ matrix.os_prefix }} (${{ matrix.arch }})
29+
runs-on: ${{ matrix.os }}
30+
needs: version
31+
permissions:
32+
contents: write
33+
strategy:
34+
matrix:
35+
include:
36+
# compiling for arm32 needs a self-hosted runner on Raspi OS (32-bit)
37+
- os: self-hosted
38+
os_prefix: linux
39+
arch: arm
40+
- os: ubuntu-latest
41+
os_prefix: linux
42+
arch: x64
43+
- os: windows-latest
44+
os_prefix: windows
45+
arch: x64
46+
- os: macos-latest
47+
os_prefix: macos
48+
arch: x64
49+
- os: macos-latest
50+
os_prefix: macos
51+
arch: aarch64
52+
- os: macos-latest
53+
os_prefix: linux
54+
arch: aarch64
55+
steps:
56+
- name: Checkout Repository
57+
uses: actions/checkout@v4
58+
- name: Install Java
59+
uses: actions/setup-java@v4
60+
with:
61+
java-version: '17'
62+
distribution: 'temurin'
63+
architecture: ${{ matrix.arch }}
64+
- name: Setup Ant
65+
uses: cedx/setup-ant@v3
66+
- name: Install Certificates for Code Signing
67+
if: ${{ matrix.os_prefix == 'macos' }}
68+
uses: apple-actions/import-codesign-certs@v3
69+
with:
70+
p12-file-base64: ${{ secrets.CERTIFICATES_P12 }}
71+
p12-password: ${{ secrets.CERTIFICATES_P12_PASSWORD }}
72+
- name: Build Release
73+
run: ant -noinput -buildfile build/build.xml ${{ matrix.os_prefix }}-dist -Dversion="${{ needs.version.outputs.version }}"
74+
env:
75+
PROCESSING_APP_PASSWORD: ${{ secrets.PROCESSING_APP_PASSWORD }}
76+
PROCESSING_APPLE_ID: ${{ secrets.PROCESSING_APPLE_ID }}
77+
PROCESSING_TEAM_ID: ${{ secrets.PROCESSING_TEAM_ID }}
78+
- name: Upload binaries to release
79+
uses: svenstaro/upload-release-action@v2
80+
with:
81+
repo_token: ${{ secrets.GITHUB_TOKEN }}
82+
file: ./build/${{ matrix.os_prefix }}/processing-${{ needs.version.outputs.version }}-${{ matrix.os_prefix}}-*
83+
file_glob: true

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,10 @@ bin-test
9494
.project
9595
.vscode/
9696

97+
# Processing examples
98+
processing-examples
99+
100+
# Maven ignores
97101
.gradle
98102
core/build/
99103
gradlew

CODE-OF-CONDUCT.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ Processing is a flexible software sketchbook and a language for learning how to
66

77
We make room for people to get involved in the project at any point they wish. This means that we:
88

9-
* Welcome contributors at any stage of their programming journey, from newcomers to professionals;
9+
* Welcome contributors at any stage of their journey, from newcomers to professionals;
1010
* Do not assume knowledge or imply there are things that somebody should know;
1111
* Understand that people are the experts of their own experiences, and bring a variety of valid perspectives to the development of open source projects;
1212
* 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;
1313
* Work to offer help and guidance when we are able to do so.
1414

1515
## Our Standards
1616

17-
All developers who contribute to the Processing project agree to abide by the following code of conduct.
17+
All contributors to the Processing project agree to abide by the following code of conduct.
1818

1919
### Respect other people
2020

0 commit comments

Comments
 (0)