Skip to content

Releases: benfry/processing4

Processing 4.3

26 Jul 11:13
Compare
Choose a tag to compare

Revision 1293 – 26 July 2023

This release incorporates several contributed fixes (see below) and a few additional bug fixes and changes. The icons have ben updated a bit so that Processing is less likely to be confused with Visual Studio Code when seen in the dock or task bar, and the splash screen colors and layout have design tweaks as well.

  • Update documentation and process for updating language files for localization 722

  • Inherit dark mode from system settings on macOS 699

  • Use calculated text height instead of OS ascent for better vertical centering. Note: this may cause some sketches to look slightly different if textAlign(..., CENTER) is being used. 739

  • Bumped Java to 17.0.8+7.

  • Fix NullPointerException when background() exceeds color range when writing PDF 740

Contributions

  • Updated icons and splash screen colors from @fathompaul.

  • Register pde:// browser protocol for .pdez and .pdex files on Linux from @lala-lala-lori 674, 696

  • Syntax error highlighting placement / width incorrect from @sampottinger 714, 715

  • Better comment/uncomment key shortcut for French systems from @ThinkDumbIndustries 625, 660

  • Fix tweak mode issue with hex codes including transparency from @sampottinger 720, 721

  • LSP feature/declaration support from @Efratror 676, 678

  • Also reference support for Language Server Protocol from @Efratror 684, 690

  • Updates to the Spanish and Catalan translations from @trikaphundo 744, 746, 743, 745

  • Debugger was listing immediate array dimension last, fix from @WillRabalais04 606, 729

  • Second beginDraw() / endDraw() call clears PGraphics object when created w/ P2D 641, 728

Processing 4.2

20 Feb 10:45
Compare
Choose a tag to compare

Revision 1292 – 20 February 2023

Impress your friends with new pde:// protocol handlers! With Processing 4.2, you can link to .pdex and .pdez files to immediately run and install libraries and sketches. How it works:

  • Linking to pde://processing.org/somesketch.pdez in the browser will download somesketch.pdez and load it into the editor. It also works for files, for instance pde:///Users/ada/Desktop/somesketch.pdez will open an archive found on the Desktop.

  • This also works for contributions (Libraries, Modes, Tools) archived as .pdex files.

Both file types are simply a renamed .zip file. So to create sketches in .pdez format, use Tools → Archive Sketch, and replace the .zip with .pdez.

This is implemented for macOS and Windows (#559), based on this article which appears to be from @pboucher. Thank you! We still need help with implementing and testing it on Linux (#674). We would also like to add a warning dialog when opening files this way (#560).

In addition to the protocol handlers, there are a number of fixes in this release, especially for Windows users (and soon, for Python users).

Windows users, we still love you

  • The .pde, .pdex, and .pdez icons now work on Windows!

  • Exporting projects to Windows resulted in “cannot find Java” errors, now fixed. #667

Snake people, we love you too

  • Several internal changes have been made to better support future releases of Python Mode. Fingers crossed that we'll be able to launch some of this soon.

And still we fix the bugs

  • Fix encoding problem in “has been resized from 100?100 to 116?100 by the window manager” messages when using OpenGL.

  • fullScreen(P2D) not using the full screen when Windows display is scaled to fractional sizes. #514.

  • Table.getString() raises stack overflow when column type set to double. #671

  • Added support chained decimals during SVG Parsing (contribution from @bsapozhnikov) #515, #659

  • Applications were being exported to the wrong folder. #601

  • Fixed more /tmp folder problems on Linux. #666

Processing 4.1.3

10 Feb 02:48
Compare
Choose a tag to compare

Revision 1291 – 9 February 2023

Rollup of bug fixes from the past few weeks. Mostly in the Contributions Manager, several others too.

bug fixin'

  • Lots of work on the Contributions Manager to deal with concurrency issues (and myriad problems revealed in the process). #640

  • Preferences were not saved when closing Processing under certain circumstances. #608

community contributin'

  • Fix typos in French translation. #661

  • Improved documentation for lerpColor() function. #655

house cleanin'

  • Warn users about multiple libraries with the same name.

  • Tool tips for errors and warnings not picking up correct colors from the theme. Also made fixes for the margins and border of the popup.

  • Many more updates to the contribs wiki

internal changin'

  • Update to JDK 17.0.6+10 from Adoptium

  • Set all build.xml files to use Java 17. Also fix several that still had tabs instead of spaces.

  • Add exports to the library parameters.

  • Fix inversion of handleSaveAs() (regression from earlier)

Processing 4.1.2

16 Jan 21:26
Compare
Choose a tag to compare

Revision 1290 – 16 January 2023

Happy Martin Luther King Jr. day!

Contributions Manager

The majority of the work for this release went into cleaning up and fixing the Contributions Manager. (What you see when importing Libraries, managing Modes, etc.) Please, please, please help us out and give it a lot of testing. This is old, messy, and important code that is easy to break in major ways. If you have trouble with it, please file an issue!

  • The “Manage Modes…” menu item was opening an empty window. #613

  • Fix Cannot invoke "javax.swing.JProgressBar.setVisible(boolean)" because "this.progressBar" is null error when using Update All. #618

  • Libraries from the Foundation (i.e. Video, Sound, and JavaFX) will now be reported properly on the stats page.

  • Updated the Wiki pages about Libraries, Modes, Tools, and Examples for Processing 4. These pages were copied over from the Processing 3 repository, but needed some cleaning. Still more work to do here, but it's a start.

  • Implemented per-line indicators for download/install status. Eventually these will replace the progress bar in the bottom panel.

  • Removed an old workaround for a NullPointerException while making selections. If it reappears, please file a new issue. #3667

@sampottinger saves us again

  • “Cannot find a class or type named ‘PApplet’” error #626, #635

  • Cannot use @Override and @Deprecated in static mode #619, #622

  • color in imports shows up as an error in the editor (even though the code still runs) #521, #636

  • Sketch folders with spaces or hyphens showing errors in the editor window (even though the code still runs) #610, #637

Other Bug Fixes

  • Help Menu sometimes disabled on macOS. This is a Java bug, but it's been closed as “cannot reproduce,” so I managed to find a workaround. #4353, #617, #638

  • Fixed ClassCastException with copy() and PGraphicsJava2D. #624

Additions? Why Not.

  • The shortcuts for Find Next and Find Previous (i.e. ctrl-G and ctrl-shift-G on Windows/Linux) now work inside the Find/Replace window.

  • Show a warning when calling clear() on the primary drawing surface. #627

Processing 4.1.1

28 Nov 15:29
Compare
Choose a tag to compare

Revision 1289 – 28 November 2022

See the release notes for 4.1 and 4.0.2 for major updates since 4.0.1 was released in August.

This release adds a single file for Language Server support that was missing in the 4.1 release from a few hours ago.

And if you'd like to try out the Language Server with Visual Studio Code, you can give this project a try.

Processing 4.1

28 Nov 11:54
Compare
Choose a tag to compare

Revision 1288 – 28 November 2022

Compared with the 4.0.2 release which was focused on stability, this 4.1 release is focused on instability adding a couple new features. They'll need more testing, but hopefully you'll find them useful.

what makes this 4.1 instead of 4.0.3

  • This release adds initial support for Language Server Protocol, which means we will soon be able to integrate the compile/run process with other editors like Visual Studio Code. There is still a lot of work to be done here (this code is probably more “alpha” quality) but it's a good step forward. To use it, we'll first need an LSP “client,” which can be a community contribution so keep an eye out for that in the coming weeks and months. Thanks to @kgtkr for the LSP code here, it's a huge help. #117

  • Support has been added for extended language tags, which makes available a Traditional Chinese (zh_TW) translation in addition to the previously available Simplified Chinese translation (originally zh, now renamed to zh_CN). You can see the full list of supported language tags here. We will keep the existing two-digit tags in place for now, and update them as needed when new language translations are added. Read more on the Translations page on the Wiki. Thanks to @jsyeh for the zh_TW translation. #600

  • Since the redesign of Processing.org, the offline reference is too large to include the download. In this release, a “Download Offline Reference” item was added to the Help Menu, for people who need an offline copy. It creates a file called reference.zip in the sketchbook. If that file is present, then the Help menu links and Find in Reference will use that copy of the reference. If it is not present, online URLs will be used. You can also manually copy the reference.zip file from sketchbook to sketchbook. Put reference.zip in the root of your sketchbook and restart Processing so that it picks up the new file. For instance, in a class situation, you might put the file on a shared server and tell people where to find it. Read more on the Offline Reference page on the Wiki. #524, #213

contributed fixes

other updates

  • In some cases, the Theme was not being saved after Processing was restarted. #565

  • A few updates and clarifications in the size() reference.

  • The Java version has been bumped from 17.0.4 to 17.0.5.

Processing 4.0.2

25 Nov 01:50
Compare
Choose a tag to compare

Revision 1287 – 24 November 2022

🦃 Happy Thanksgiving! 🦃

Fixing more regressions and other steps backward found since the 4.0 release. Enjoy!

the big ones

  • OpenGL apps now work with macOS Ventura, once again thanks to @jaegonlee. #544

  • Library version number parsing wasn't ignoring comments properly, so libraries that followed the template closely were showing The version number for “…” is not a number. #586, #553

  • The Updates tab of the Contribution Manager was throwing error messages about this.progressBar. #567

  • fullScreen() with pixelDensity(2) was broken with the default renderer. On startup, the sketch would report Display -1 does not exist, returning 1 for displayDensity(-1). #487

  • JSSC update for M1/M2 from @sampottinger #525, #577

the li'l and medium ones

  • After creating 26 sketches, the “take a break” message still showed up after restarting Processing. #582

  • With multiple users sharing a machine, Processing would not work properly for the second user due to a problem with the temporary directory. #549

  • Added explanation for how to fix Processing when a user disallows access to the Documents folder on macOS. #581

  • Fixed an infinite loop that could be caused by running out of options for a sketch naming scheme.

  • When calling random() on a list (now choice()) with no elements, it would throw a weird Exception. Now it throws a more descriptive exception.

need some help here

Contributions from the community!

steps forward

  • Added a choice() method to the XxxxList classes, which returns a random value from the list. Similarly removeChoice() removes a random element from the list and returns the value.

  • Also added a choice() method that returns random integers. So int value = choice(10) is a shorthand way of saying int value = (int) random(10)

  • Removed the choice() (formerly random()) method from the XxxxList classes that took a PApplet object for its random number seed/generator. Just feels like overkill at this point.

internal changes

  • Using more Java 17 syntax in the code. No plans to really scrub everything to change the syntax over, just a matter of cleaning things up as we go.

  • Fixed a potential casting problem with Platform and DefaultPlatform. Should have been unreachable, but fixed anyway.

  • Brought back getCodeIndex() for GUI Builder Tool… then removed it again. #545, #596

me talking on the wiki

  • Added a Translations page to the 4.x wiki, which is update to the Localization page from the 3.x repository.

  • Posted an explanation of how to create a naming.json file so you can set up your own sketch naming schemes.

Processing 4.0.1

09 Aug 19:50
Compare
Choose a tag to compare

Revision 1286 – 9 August 2022

And what sort of anniversary would it be without a regression that breaks a major feature? Ahem. Here's 4.0.1…

  • In the 4.0 release, switching to p5.js Mode caused an error message to pop up. Now fixed. #530

  • One minor addition: in the Preferences window, clicking the “More preferences can be found…” text will open the wiki page with more details about all these wonderful options.

Other than that, please see the release notes for 4.0

Processing 4.0

09 Aug 12:24
Compare
Choose a tag to compare

4.0.1 is available! A nasty bug was found just after the release. So once you're done reading the notes below, please proceed to download the latest instead: https://github.com/processing/processing4/releases/

Revision 1285 – 9 August 2022

On the 21st anniversary of the very first Processing release (revision 0001), we're posting the final 4.0, which is the 286th release of the software.

The primary goal for Processing 4 is to keep everyone's code running, even as operating systems, hardware, and hairlines continue to change.

There are really too many changes to list, but you can start by reading about them at this link.

Below is a list of the incremental changes in this release since beta 9 a few days ago:

welcome, welcome!

  • Added a new “Welcome” screen that links to a couple examples as well as the changes and updates page.

  • The splash screen has also been updated with a new image for 4.0.

wait, what?

  • Export to Application was almost completely broken on macOS, where all apps were reporting as “damaged” when transferred to another machine. It's now working again, and also prompts users to install the Xcode tools. See the wiki for more information about how to work with Apple's code signing restrictions.

  • There was a lot of out-of-date material on the wiki pages in the Processing 3 repository on Github. We now have new versions of the major pages in the Processing 4 repository. This includes pages on Themes, Supported Platforms, Exporting Applications, Troubleshooting, and the FAQ.

  • There are many entries in preferences.txt that are important, but not important enough to make it into the Preferences window. Some of those are now documented here.

  • Processing sometimes creates a lot of temporary files (basically, each time you run a sketch), which didn't always get cleaned up by the operating system. With 4.0, those are all being written to a separate “processing” folder, so that they can be automatically removed after 7 days. #529

the last of the bugs

  • When using Export to Application, errors in the code would cause the software to just report “error during export.” Now it provides the usual error message (about the error itself).

  • The dropdown menu in the Theme Selector wasn't updating properly when new themes were selected.

  • The rollover and pressed color for the console scrollbar was always blue.

  • Inside Movie Maker, ffmpeg wasn't available on all platforms, that's now fixed. We've also updated to version 5.0.1.

you probably won't notice

  • Examples have been updated, and are now being pulled from the processing-examples repository. May have also had to remove the sin/cos lookup tables from the Rotating Arcs example so that we could comfortably put it on the Welcome screen.

  • Compress jdk/Contents/Home/legal into a single zip. It was 300 files, or 60% of the 500 files in the entire JDK. Lawyers FTW.

Processing 4.0 beta 9

05 Aug 02:05
Compare
Choose a tag to compare

Revision 1284 – 4 August 2022

Getting very close to 4.0! Just a bit more now…

design, design, design

Perhaps most noticeable, this release includes a ton of refinement on the design.

  • Another set of 16 themes, these with gradients, have been added to the Theme Selector. Have fun!

  • If you've changed the theme in a previous beta, it will be reset the first time you use beta 9, because of major updates to theme handling (many new parameters, others renamed and cleaned up). Relatedly, changing the theme no longer writes a theme.txt file to your sketchbook folder.

  • Added options to the Theme Selector to write theme.txt to your sketchbook folder (so you can make manual edits), and also to reload the theme dynamically (after you've made changes).

  • Lots of minor fixes to typography and layout of elements. Hopefully you'll agree that the changes add up to things feeling a lot better.

  • We're now using FlatLaf to improve the look and feel of dialog boxes and other components that we've not customized ourselves.

  • Nearly all PNG-based icons and interface elements have been replaced by SVGs that are automatically re-rendered to match the theme when it changes.

  • The base font being used is now part of the language translation, because specific fonts are required for non-Roman languages, or languages that are not supported by the Source Sans 3 that we use everywhere else. This also helps us get the language-specific overrides for Chinese, Japanese, Korean, Greek, and Arabic out of the code and into something that can be updated more easily.

  • The Preferences window has had a major facelift. It was giving me great anxiety. It was so, so ugly. It is now less ugly.

  • The Contributions Manager is now themed and cleaned up to match the rest of the interface.

  • We're replacing the underscores in tab names with spaces. It looks a little nicer with the default sketch naming. If you'd like to keep underscores, open preferences.txt and set sketch.name.replace_underscore = false.

  • Updated the scroll bars to match the theme. #265

  • New icon buttons for the status bar instead of hacky emojis. The clipboard icon even changes to a search icon when holding down shift!

  • Implement 2x versions of the icons for the debugger window/variable inspector. #3921

  • Taken collectively, these are the visual design changes for 4.0. #48

new features

  • New sketch naming schemes! For those who didn't enjoy the sketch plus underscore plus six digit date, your time has come. Visit the Preferences window and behold the naming options available in the dropdown menu. You can now use the “Friendly” naming scheme that folks seem to love, as well as a pair of other less serious alternatives. #6045, #6048, #144

  • It's also possible to create your own naming schemes. Create a file named naming.json in your sketchbook folder that follows the same layout in the Processing download. Provide a name, a list of prefixes, and a list of suffixes just like that file. Save it and restart Processing, and your new option will be available in the dropdown.

other big ones

  • We should be fully set for Apple Silicon (i.e. M1 and M2) support. #128

  • Code completion stopped working between beta 4 and beta 5. Now it's back. #491

community contributions!

  • Double-clicking a .pde file also opens an untitled/empty sketch. #477, #479, #218

  • Updates to the Spanish translation. #480, #481

  • Updates to the German translation. #483

  • Add flatlaf.jar to config.xml on Windows. #498

  • Fix parsing of java error messages containing ":" #492, #493

  • Exported applications were giving java.lang.ClassNotFoundException: --full-screen errors. #488, #502.

  • Editor was treating {} brackets as code when they're inside a String, char or comment. #444, #504

  • Add extra Java arguments to enable anti-aliasing for KDE users. #513, reference

bug fixes

  • Fix “Unable to load Java Runtime Environment” errors on Apple Silicon machines. #526

  • Updated the Help menu entries to make sure they're going to the right locations for 4.x. As with the reference, links are no longer local (see #524).

  • Help → Libraries Reference and Help → Tools Reference submenu items were broken. #5839

data updates

  • Added random() method to the XxxxList classes to return a random value from the list.

  • Added getXxxxList() methods to JSONObject

  • Added toXxxxList() methods to JSONArray

  • Renamed getXxxArray() to toXxxArray() in JSONArray for consistency. The old versions are still available, but deprecated.

  • Switch to toArray() instead of array() in the XxxxList classes. Did not deprecate old version because it was actually broken.

  • Lots of cleanup (and some bug fixing) in the XxxxList classes.

internal changes

  • Bumped the Java version to 17.0.4+8.

  • If you get a “core does not run on this architecture” when running from the source, you may need to run ant clean-jogl inside core.

  • Also added a clean-libs target to build.xml files that need it. This will re-download libraries that we rely upon like JOGL, Batik, Ant, and others.

  • Cleaned up several files in the download, the footprint should be a few dozen megabytes smaller.

  • Updated to the latest version of JNA (5.12.1) for better Apple Silicon support.

  • All the remaining ancient bug URLs (Bugzilla and Google Code) have been updated and removed from the source. The Google Code issues are re-linked to their Github equivalents, and the old Bugzilla pages have been revived since their disappearance last August.

known issues

  • We've had to remove the offline version of the reference that was accessible from the Help menu. We hope to bring it back some day. #524

  • The mixed mode warning is temporarily missing. #519

  • color in imports shows up as an error, but code still compiles and runs. #521

  • Need to make it possible to use “module” jars so that other JavaFX classes can be imported. #522, #15