Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
3f9030b
Setting up architecture for the new download pages
Stefterv Sep 15, 2025
4f07cab
Add 'What's New' section to macOS download page
Stefterv Sep 15, 2025
74b13c1
Disable parallel sourcing in Gatsby config
Stefterv Sep 16, 2025
2f75926
Re-architecture
Stefterv Sep 16, 2025
a04fb58
Download instructions
Stefterv Sep 16, 2025
3166dec
Add Windows MSI and Zip download instructions
Stefterv Sep 16, 2025
f1071ff
Refactor download page and platform selection UI
Stefterv Sep 16, 2025
8625d74
Update download images for Linux and Windows
Stefterv Sep 16, 2025
24954fa
Further implemented download pages
Stefterv Sep 16, 2025
3892501
Show Previous releases by Major and LTS version
Stefterv Sep 17, 2025
a03d9af
Release indicator
Stefterv Sep 17, 2025
2cc24df
Add analytics tracking to download buttons
Stefterv Sep 17, 2025
63a3426
Add Donorbox donation widget to Donate component
Stefterv Sep 17, 2025
ec30ac7
Improved download layout and switcher UI pass
Stefterv Sep 17, 2025
ac2cae2
Refactor download pages and add architecture FAQ
Stefterv Sep 17, 2025
192cf3a
Further work on the instructions
Stefterv Sep 17, 2025
3d432bf
Further improvement of the instructions
Stefterv Sep 17, 2025
cf33247
Implemented Donate component and add styling for donation options
Stefterv Sep 17, 2025
1d12ab0
Add launch configuration for development server in VSCode
Stefterv Sep 18, 2025
3703f5d
Improve download page UI and release handling
Stefterv Sep 18, 2025
548a573
Update Switcher styles for improved download UI consistency
Stefterv Sep 18, 2025
b5ccc5c
Add all releases page and update download navigation
Stefterv Sep 18, 2025
60f963e
Redesign download pages layout and styles
Stefterv Sep 18, 2025
50cd45b
Add release notes and update release metadata for 4.4.8–4.5.0
Stefterv Jan 14, 2026
48c40c5
Refactor download flow by creating a dedicated DownloadCTA component …
Stefterv Mar 4, 2026
8753a75
Update release notes and JSON files for Processing versions 4.5.1, 4.…
Stefterv Mar 4, 2026
d6ab01c
Refactor download flow and styles: create DownloadCTA component, upda…
Stefterv Mar 9, 2026
a61a663
Refactor download components and styles: enhance Button and DownloadC…
Stefterv Mar 9, 2026
df32bb5
Refactor download and donation components: enhance styles for Button …
Stefterv Mar 9, 2026
f6f27fd
Enhance Navbar component: add donate button with icon and styles, upd…
Stefterv Mar 9, 2026
2564679
Refactor Linux download instructions: remove LinuxSnap component, add…
Stefterv Mar 9, 2026
e838133
Fix version handling in Switcher component: ensure fallback to latest…
Stefterv Mar 9, 2026
31e79ea
Refactor donation and download components: update styles, enhance lay…
Stefterv Mar 9, 2026
3786e0b
Refactor download components: update styles for Donate and Architectu…
Stefterv Mar 11, 2026
4e8fae4
Fix spacing for h3 elements in WhatsNew component: add margin-top for…
Stefterv Mar 11, 2026
7ec6cd0
Enhance platform selection logic: add support for URL parameter overr…
Stefterv Mar 20, 2026
4693e14
Refactor donation and sketch components: integrate Donate component i…
Stefterv Mar 20, 2026
4800339
Add styles for releases page and create install script placeholder
Stefterv Mar 20, 2026
7ee6fcf
Enhance ReleasesPage: add link styling for version tags and improve t…
Stefterv Mar 20, 2026
dd0ad1d
Fix release link generation: update tag URL structure for version com…
Stefterv Mar 20, 2026
031ad78
Refactor download components: streamline asset handling, enhance vers…
Stefterv Mar 24, 2026
b972e1e
Update download instructions to include version information for Linux…
Stefterv Mar 24, 2026
e074669
Refactor download components and enhance user guidance: update styles…
Stefterv Mar 24, 2026
24a7597
Refactor download button variants: implement dynamic class assignment…
Stefterv Mar 24, 2026
ecfa5bb
Refactor donate button styles: change selector to li.donate and enhan…
Stefterv Mar 24, 2026
08681aa
Enhance examples section: update heading and add instructional text f…
Stefterv Mar 24, 2026
9f390dc
Refactor CSS formatting: standardize spacing and improve readability …
Stefterv Mar 24, 2026
7481f6c
Refactor download CTA background: update image source to processing-b…
Stefterv Mar 24, 2026
0af8ac8
Refactor Navbar component: change list items to anchor tags for impro…
Stefterv Mar 24, 2026
eafea5e
Revert "Refactor Navbar component: change list items to anchor tags f…
Stefterv Mar 25, 2026
f752af6
Update Navbar.module.css
Stefterv Mar 25, 2026
a62ef5d
Add inline-flex display to donate subitem for improved layout
Stefterv Mar 26, 2026
6ff81a2
Refactor Navbar into context-based components
Stefterv Mar 27, 2026
1ff9c20
New Navbar
Stefterv Mar 27, 2026
b1895ad
Order fixes
Stefterv Mar 27, 2026
b3d5366
Merge branch 'main' into download-flow-refactor
Stefterv Jun 24, 2026
7491816
Update package-lock.json
Stefterv Jun 24, 2026
2af051d
Added platform picker
Stefterv Jun 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Added platform picker
  • Loading branch information
Stefterv committed Jun 24, 2026
commit 2af051dfdc723ccd2b3dea0cb13dd02ac055539b
37 changes: 37 additions & 0 deletions content/download/release-notes/processing-1432-4.5.4.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
title: Processing 4.5.4
date: 2026-06-23T23:02:20Z
prerelease: false
tagName: processing-1432-4.5.4
release: true
---
Hi everyone, wow. At long last. We are back on track with releases! I do not know what else to say, except that at the next Processing Weekly I will go into great detail. We have a lot of great work in here, and in the failed 4.5.3 release to go over.

Moreover, I've updated our release workflow so that it can handle mistakes a bit better. Specifically, if, say, a macOS build fails notarization for _reasons_ then we're still able to fix and release without having to bump the version. Maven and Gradle will only be published to once all the platform builds are successful.

But anyways. Onwards and upwards from here I suppose.

<!-- Release notes generated using configuration in .github/release.yml at processing-1432-4.5.4 -->

## What's Changed
### What's Changed 🎊
* add github action to implement #1490 contributor image by @kjhollen in https://github.com/processing/processing4/pull/1497
* add codesign verify step for mac builds by @kjhollen in https://github.com/processing/processing4/pull/1509
* fix for #1507 - mac signing issues for release builds by @kjhollen in https://github.com/processing/processing4/pull/1510
* Add ShapeTests for Processing4 core module by @aakritithecoder in https://github.com/processing/processing4/pull/1462
* Fix incomplete sentence in README.md for Gradle plugin by @SableRaf in https://github.com/processing/processing4/pull/1516
* Added in SQL fields VARCHAR, CHAR, and BLOB by @elisefergusonn in https://github.com/processing/processing4/pull/1478
* Use lazy evaluation for dependencies of the zipDistributable task by @neobrain in https://github.com/processing/processing4/pull/1474
* Revise IntelliJ setup instructions for clarity by @SableRaf in https://github.com/processing/processing4/pull/1519
* chore: update contributors.png from .all-contributorsrc by @processing-bot in https://github.com/processing/processing4/pull/1505
* New Release Flow by @catilac in https://github.com/processing/processing4/pull/1531

## New Contributors
* @kjhollen made their first contribution in https://github.com/processing/processing4/pull/1497
* @aakritithecoder made their first contribution in https://github.com/processing/processing4/pull/1462
* @elisefergusonn made their first contribution in https://github.com/processing/processing4/pull/1478
* @neobrain made their first contribution in https://github.com/processing/processing4/pull/1474
* @processing-bot made their first contribution in https://github.com/processing/processing4/pull/1505

**Full Changelog**: https://github.com/processing/processing4/compare/processing-1314-4.5.3...processing-1432-4.5.4

3 changes: 2 additions & 1 deletion content/download/releases/processing-1314-4.5.3.json
Original file line number Diff line number Diff line change
Expand Up @@ -83,5 +83,6 @@
}
}
]
}
},
"description": "Welcome to Processing 4.5.3. Also welcome to me saying a little something about our releases moving forward <3\r\nThere have been so many new contributors, and there has been so much new activity in the community with helping find\r\nbugs, fix bugs, reporting issues, and general \"alive-ness\" which makes me feel *positive & good things* \r\n\r\nIn addition to many maintainance fixes, some of the more notable changes are:\r\n\r\n@Sumamasonia added a print() method to PMatrix which will be helpful for debugging (and also cleaned up the implementation!)\r\n@Stefterv notably created a Gradle Plugin for Processing Libraries\r\n@jSdCool made it so you can run a Processing sketch from anywhere on Windows systems\r\n@avinxshKD helped move several of our core libraries to Maven Central\r\n@hxrshxz fixed some SVG errors which is very wow.\r\n@SalmaneKhalili helped us fix a bug when switching to Android Mode, and also found some leaks to fix\r\n\r\nAnyways. Do take a look at this big long list, and check out the full changelog as well.\r\n\r\nMoon☙* ٭ . ' ☾*. ٭ ❤\r\n\r\n## What's Changed\r\n### What's Changed 🎊\r\n* Update README to welcome new contributors by @SableRaf in https://github.com/processing/processing4/pull/1394\r\n* Added print() method to PMatrix (Fixes #811) by @Sumamasonia in https://github.com/processing/processing4/pull/1355\r\n* fix syntax error in all-contributors by @catilac in https://github.com/processing/processing4/pull/1395\r\n* docs: add Sumamasonia as a contributor for code by @allcontributors[bot] in https://github.com/processing/processing4/pull/1396\r\n* Only set Newt window icons on Windows by @Stefterv in https://github.com/processing/processing4/pull/1398\r\n* Gradle Plugin for creating Processing Libraries by @Stefterv in https://github.com/processing/processing4/pull/1347\r\n* Revisiting the GitHub Actions Release system (.flatpak + .deb) by @Stefterv in https://github.com/processing/processing4/pull/1204\r\n* Update install script to create 'processing' instead of 'processing-java' on macOS by @Stefterv in https://github.com/processing/processing4/pull/1377\r\n* Allow exported apps on windows to be run from anywhere on the system by @jSdCool in https://github.com/processing/processing4/pull/1314\r\n* Reset defaults by setting value rather than remove by @Stefterv in https://github.com/processing/processing4/pull/1385\r\n* Add PR artifact uploads and comments by @Stefterv in https://github.com/processing/processing4/pull/1401\r\n* Remove PR workflow and disable PR comments by @Stefterv in https://github.com/processing/processing4/pull/1413\r\n* Remove Welcome Survey link, and unused function by @catilac in https://github.com/processing/processing4/pull/1408\r\n* Fix ArrayIndexOutOfBoundsException with compact SVG arc notation by @hxrshxz in https://github.com/processing/processing4/pull/1282\r\n* Publish `org.processing.core.svg` & `org.processing.core.net` to maven Central by @avinxshKD in https://github.com/processing/processing4/pull/1411\r\n* Publish `org.processing.core.pdf` to maven Central by @avinxshKD in https://github.com/processing/processing4/pull/1407\r\n* Publish `org.processing.core.dxf` to Maven Central (Publish libraries to maven central) by @Stefterv in https://github.com/processing/processing4/pull/1403\r\n* Permissions Fix by @Stefterv in https://github.com/processing/processing4/pull/1400\r\n* Processing Gradle Plugin by @Stefterv in https://github.com/processing/processing4/pull/1233\r\n* Add diagnostics gathering feature to debugger and UI by @hxrshxz in https://github.com/processing/processing4/pull/1297\r\n* Use `start` instead of 0 for the starting index in `text` by @iTutFadU in https://github.com/processing/processing4/pull/1257\r\n* Processing Gradle Plugin - Version sync by @Stefterv in https://github.com/processing/processing4/pull/1423\r\n* Resource Leaks in processing/app/Util.java by @SalmaneKhalili in https://github.com/processing/processing4/pull/1436\r\n* Publish Processing Gradle plugins by @Stefterv in https://github.com/processing/processing4/pull/1405\r\n* docs: add SalmaneKhalili as a contributor for bug by @allcontributors[bot] in https://github.com/processing/processing4/pull/1438\r\n* fix portable settings.path not respected for prefs and language by @avinxshKD in https://github.com/processing/processing4/pull/1439\r\n* Publish Serial and IO libraries to Maven Central by @avinxshKD in https://github.com/processing/processing4/pull/1421\r\n* docs: add nickmcintyre as a contributor for test by @allcontributors[bot] in https://github.com/processing/processing4/pull/1442\r\n* Add unit tests for IntList by @txandmj in https://github.com/processing/processing4/pull/1102\r\n* Added unit tests for `PMatrix3D` in `processing:core` by @Rishab87 in https://github.com/processing/processing4/pull/1029\r\n* Added unit tests for `PImage` in `processing:core` by @Rishab87 in https://github.com/processing/processing4/pull/1049\r\n* Bug/androidcrash by @SalmaneKhalili in https://github.com/processing/processing4/pull/1447\r\n* docs: add Ebaron96 as a contributor for bug by @allcontributors[bot] in https://github.com/processing/processing4/pull/1454\r\n* docs: add Rishab87 as a contributor for code, and test by @allcontributors[bot] in https://github.com/processing/processing4/pull/1443\r\n\r\n## New Contributors\r\n* @Sumamasonia made their first contribution in https://github.com/processing/processing4/pull/1355\r\n* @hxrshxz made their first contribution in https://github.com/processing/processing4/pull/1282\r\n* @iTutFadU made their first contribution in https://github.com/processing/processing4/pull/1257\r\n* @SalmaneKhalili made their first contribution in https://github.com/processing/processing4/pull/1436\r\n* @txandmj made their first contribution in https://github.com/processing/processing4/pull/1102\r\n\r\n**Full Changelog**: https://github.com/processing/processing4/compare/processing-1313-4.5.2...processing-1314-4.5.3"
}
3 changes: 2 additions & 1 deletion content/download/releases/processing-1432-4.5.4.json
Original file line number Diff line number Diff line change
Expand Up @@ -111,5 +111,6 @@
}
}
]
}
},
"description": "Hi everyone, wow. At long last. We are back on track with releases! I do not know what else to say, except that at the next Processing Weekly I will go into great detail. We have a lot of great work in here, and in the failed 4.5.3 release to go over.\r\n\r\nMoreover, I've updated our release workflow so that it can handle mistakes a bit better. Specifically, if, say, a macOS build fails notarization for _reasons_ then we're still able to fix and release without having to bump the version. Maven and Gradle will only be published to once all the platform builds are successful. \r\n\r\nBut anyways. Onwards and upwards from here I suppose.\r\n\r\n<!-- Release notes generated using configuration in .github/release.yml at processing-1432-4.5.4 -->\r\n\r\n## What's Changed\r\n### What's Changed 🎊\r\n* add github action to implement #1490 contributor image by @kjhollen in https://github.com/processing/processing4/pull/1497\r\n* add codesign verify step for mac builds by @kjhollen in https://github.com/processing/processing4/pull/1509\r\n* fix for #1507 - mac signing issues for release builds by @kjhollen in https://github.com/processing/processing4/pull/1510\r\n* Add ShapeTests for Processing4 core module by @aakritithecoder in https://github.com/processing/processing4/pull/1462\r\n* Fix incomplete sentence in README.md for Gradle plugin by @SableRaf in https://github.com/processing/processing4/pull/1516\r\n* Added in SQL fields VARCHAR, CHAR, and BLOB by @elisefergusonn in https://github.com/processing/processing4/pull/1478\r\n* Use lazy evaluation for dependencies of the zipDistributable task by @neobrain in https://github.com/processing/processing4/pull/1474\r\n* Revise IntelliJ setup instructions for clarity by @SableRaf in https://github.com/processing/processing4/pull/1519\r\n* chore: update contributors.png from .all-contributorsrc by @processing-bot in https://github.com/processing/processing4/pull/1505\r\n* New Release Flow by @catilac in https://github.com/processing/processing4/pull/1531\r\n\r\n## New Contributors\r\n* @kjhollen made their first contribution in https://github.com/processing/processing4/pull/1497\r\n* @aakritithecoder made their first contribution in https://github.com/processing/processing4/pull/1462\r\n* @elisefergusonn made their first contribution in https://github.com/processing/processing4/pull/1478\r\n* @neobrain made their first contribution in https://github.com/processing/processing4/pull/1474\r\n* @processing-bot made their first contribution in https://github.com/processing/processing4/pull/1505\r\n\r\n**Full Changelog**: https://github.com/processing/processing4/compare/processing-1314-4.5.3...processing-1432-4.5.4"
}
93 changes: 78 additions & 15 deletions src/components/download/instructions/LinuxUniversal.js
Original file line number Diff line number Diff line change
@@ -1,29 +1,92 @@
import React from "react";
import { useAssets } from "../Releases";
import React, { useState } from "react";
import classNames from "classnames";
import * as styles from "./instructions.module.css";
import Command from "components/Command";
import { useVersionOrLatest } from "../Version";
import LogoLinux from 'images/logo-linux.svg';


export default function LinuxSnap() {
const assets = useAssets();
const version = useVersionOrLatest();
export default function LinuxUniversal() {
const distributions = {
// universal: {
// label: "Universal",
// Icon: LogoLinux,
// Component: LinuxUniversalCLI
// },
ubuntu: {
label: "Ubuntu",
Icon: LogoLinux,
Component: UbuntuInstructions
}
}

const distributionEntries = Object.entries(distributions);
const [selectedDistribution, setSelectedDistribution] = useState(distributionEntries[0][0]);
const distribution = distributions[selectedDistribution] ?? distributionEntries[0][1];
const SelectedInstructions = distribution.Component;


return (
<>
<ol className={classNames(styles.instructions)}>
<li>
Install Processing {version} for Linux using the universal command
<div>This will automatically detect your architecture and install the correct version of Processing using the most applicable method.</div>
<Command command="curl -fsSL https://processing.org/install.sh | sh" />
<a href="https://github.com/processing/processing4/blob/main/app/linux/install.sh" style={{ fontSize: "var(--text-small)", display: "block", textAlign: "right" }}>view source</a>
</li>
<li>
Then run Processing using the command
<Command command="processing" />
</li>
<div className={classNames(styles.platformPicker)}>
<distribution.Icon className={classNames(styles.platformIcon)} aria-hidden="true" />
<select
className={classNames(styles.platforms)}
value={selectedDistribution}
onChange={(event) => setSelectedDistribution(event.target.value)}
>
{distributionEntries.map(([name, option]) => (
<option key={name} value={name}>{option.label}</option>
))}
</select>
<svg className={classNames(styles.platformChevron)} viewBox="0 0 20 20" aria-hidden="true" focusable="false">
<path d="M5.5 7.5L10 12l4.5-4.5" stroke="currentColor" strokeWidth="1.75" strokeLinecap="round" strokeLinejoin="round" fill="none" />
</svg>
</div>
<SelectedInstructions />
</ol>
</>
)
}


function UbuntuInstructions() {
const version = useVersionOrLatest();
// TODO: show instruction for using the .snap file if the version doesnt equal latest

return (

<>
<li>
Download Processing {version} for Ubuntu
<div>Use snap to install the latest version of Processing</div>
<Command command="sudo snap install processing --classic" />
</li>
<li>
Then run Processing using the command
<Command command="processing" />
</li>
</>
)
}

function LinuxUniversalCLI() {
const version = useVersionOrLatest();

return (
<>
<li>
Install Processing {version} for Linux using the universal command
<div>This will automatically detect your architecture and install the correct version of Processing using the most applicable method.</div>
<Command command="curl -fsSL https://processing.org/install.sh | sh" />
<a href="https://github.com/processing/processing4/blob/main/app/linux/install.sh" style={{ fontSize: "var(--text-small)", display: "block", textAlign: "right" }}>view source</a>
</li>
<li>
Then run Processing using the command
<Command command="processing" />
</li>
</>
)

}
50 changes: 50 additions & 0 deletions src/components/download/instructions/instructions.module.css
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
gap: var(--gutter);
list-style: none;
counter-reset: instructions;
position: relative;

&>li {
counter-increment: instructions;
Expand Down Expand Up @@ -80,4 +81,53 @@

}
}
}

.platformPicker {
position: absolute;
right: 0;
top: 0;
z-index: 1;
margin: var(--gutter);
padding: var(--gutter);
background: var(--white);
border-radius: var(--gutter);
border: 1px solid var(--download-button);
display: inline-flex;
align-items: center;
gap: var(--gutter-half);
& + li{
padding-top: calc(var(--margin) + var(--gutter) * 2);
}
}

.platformIcon {
width: 1.1em;
height: 1.1em;
flex: 0 0 auto;
color: var(--processing-blue-dark);
}

.platforms {
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
border: 0;
background: transparent;
padding: 0;
padding-right: 1.9em;
color: var(--processing-blue-dark);
font: inherit;
font-weight: 600;
cursor: pointer;
outline: none;
}

.platformChevron {
width: 1em;
height: 1em;
flex: 0 0 auto;
color: var(--processing-blue-dark);
pointer-events: none;

}