New py5 Release: 0.10.5a0

Today I'm happy to finally announce the release of py5 version 0.10.5a0.

Important Updates

This release has two small but important changes.

The first is that the JPype dependency has changed to >=1.5.2. Previously it was pinned to 1.5.0. Months ago, pinning it to 1.5.0 resolved issues we were having with 1.5.1 but also meant we didn't benefit from improvements made in 1.5.2. And since 1.5.0 also had some (smaller) issues, we were stuck on a version that was not ideal. In retrospect I see that my choice to pin it to 1.5.0 was not the best decision. I apologize for that, and won't make that mistake again.

The second change is that py5 now uses core.jar from the official Processing 4.4.1 release. The previous five releases used my own fork of Processing. This was a temporary but necessary measure because py5 depended on some code changes that took some time to make it into an official Processing release. Moving forward, all versions of py5 will use the latest official Processing core.jar file.

New Features

This release has a new feature that enables you to easily download and install Processing Libraries to use in your py5 Sketches. Not all of the Processing Libraries work well with py5, but some of them do, and the ones that do add exciting possibilities to py5. The new functionality is comparable to the Processing PDE's "Library Manager" feature. To learn more, visit the How To Use Processing Libraries page.

PRs and Closed Issues

Here are the closed py5 issues:

  • #593 Add new py5.random_permutation() method

  • #629 fixed py5's build process to work with the new Processing build process

Issue #593 was fixed by first-time contributor mohitbhasin in PR #594.

Thanks, also, for ijkwxyz's PR #637 to fix a Windows path issue they found in py5's live coding functionality.

Also, updates to the Processing library that are all included in this py5 release:

  • #912 added a new ThinkDifferent method activateSketchWindow() to the Processing library.

  • #918, an issue I found with NullPointerExceptions thrown by PApplet.dequeueWindowEvents(). This was fixed in my PR #930 to address the race conditions.

What's Ahead

What's in store for py5 in 2025? Where do I begin...

More bug fixes and unit tests are the first things that come to mind. I wasn't able to do all the bug fixing that I normally do before a release because I really wanted to get a release out the door that addressed the JPype version pinning issue. Right now there are ten open issues, which is a lot for this project.

There are things I can do to further improve the py5 build process. The Processing build process changed quite a bit, and now that py5 is back to using official Processing releases, I had to make changes to the py5 build process to adapt. The changes to Processing create new opportunities for py5 to use more modern build tools. It is well worth my while to take advantage of them.

Comments