How To Contribute#

Contributing to open source projects isn’t just about writing code. This is especially true for py5 because much of the coding efforts are taken care of for us by the Processing team. Therefore, non-coding contributions are even more meaningful and valuable.

Below is a current list of suggested ways to contribute. This list will grow as the project grows.

Share Your Creations and Say Thanks#

Do you enjoy using py5? What are you using py5 for? Don’t keep it to yourself! It’s a thrill to hear from our users. Seriously, it provides an enormous amount of encouragement to hear from someone who is excited about py5 and to see what they are doing with it. On Mastodon, find us at @py5coding@fosstodon.org, and on Twitter, find us at @py5coding. Use the hashtag #py5 on social media. You can also use GitHub Discussions for more involved conversations.

Use py5 and Report Bugs#

Finding and reporting bugs in py5 is very important because it helps us identify problems and improve the library. You will occasionally find a bug while using py5. If this happens, let us know in GitHub Issues. If you’re interested in helping fix the bug you’ve found, let us know that too.

In addition, many new features and improvements to py5 have come from ordinary conversations with users. If you think of an idea for a new feature while using py5, open a thread in GitHub Discussions.

If you get stuck somewhere, we’d like to know that too. Our goal is for py5’s documentation to be clear and accessible to users. If you get tripped up by something, that’s useful information for us about where the documentation needs improvement.

Contribute to Processing#

Internally, py5 relies on Processing’s core library (written in Java) for many of its features. Processing’s core library is maintained by different people in the Processing community. Any bug fixes or enhancements to Processing will also benefit py5. Therefore, a contribution to Processing is a contribution to py5. The Processing folks work very hard maintaining a large code base; anything that makes their lives easier would be a big help to both them and us.

Teach Others About py5#

Because py5 is a new library, many people who would be interested in creative coding with Python haven’t heard about it yet. If you post something to Instagram, use the hashtag #py5. If you have a blog, consider creating a blog post documenting what you’ve done with py5. Do you like public speaking? There are creative coding events such as CC Fest that would love for you to contribute.

Libraries#

Both Processing and p5.js have a large collection of user contributed libraries. Currently, py5 has none. Would you like to create and maintain one? If so, let us know what you’d like to build. If you need an idea, have a look at the list of Processing libraries and the p5.js libraries for inspiration.

Creating a library for Processing, p5.js, or py5 can be an excellent stepping stone into the world of open source contributions. Don’t underestimate how valuable of an experience this can be. The author of the py5 library started with open source by creating the Processing libraries Camera3D and Colorblindness. While doing these things, he learned a lot about the inner workings of Processing, and that knowledge provided the initial spark that led to the creation of py5.

Processing libraries can have special methods that will be called at specific times in a Sketch animation, such as immediately before or after the draw() method gets called. Although not yet documented, py5 has a similar feature called “hooks.” If you need this feature for the library you’d like to build, ask about it on GitHub Discussions.