-
Notifications
You must be signed in to change notification settings - Fork 10
2024 Project List for `pr05` = Processing Foundation Software Development Grant
Description: This project aims to improve the developer experience for libraries, tools, and mode contributors. The current system for submitting contributions and updating the contributions list is cumbersome and error-prone. Your work will automate the process and improve the quality of life for other developers, making Processing contributions more inviting to new contributors.
Expected Outcomes:
- An improved system for submitting new contributions via a PR template.
- A simplified workflow for updating the contributions list in Processing and on the processing.org website.
- Repository templates for libraries using the new Gradle templates.
- Automation for building and exporting artifacts, including PDEX/PDEZ bundles.
- CI/CD deployment of the reference to GitHub pages including install links using the new pdez:// and pdex:// protocols.
- Updates to the library contribution documentation to reflect these changes.
- Optional: a backend system for keeping track of library downloads within Processing.
Desired Skills:
- Familiarity with Java, JavaDoc, Gradle.
- Experience with GitHub Workflows and GitHub Pages.
- Experience with JavaScript, HTML, CSS.
- UI/UX design skills are a plus.
Description: This project will focus on developing an official Visual Studio Code (VSCode) extension for Processing. Building on the initial Language Server Protocol (LSP) integration in releases 4.1 and 4.3 of Processing. The development of this VSCode extension serves to complement the Processing Development Environment (PDE), providing a more feature-rich alternative thanks to the built-in capabilities of VSCode.
Expected Outcomes:
- Successful development and launch of a fully functional VSCode extension for Processing.
- Run and Stop buttons integrated within the VSCode environment.
- IntelliSense, including code completion and documentation on hover.
- Display of syntax errors in real time.
- Sketchbook explorer to manage and navigate sketches.
- Examples explorer to access built-in examples.
- Feature for managing libraries, tools, and modes.
- Functionality to easily import libraries into projects.
Desired Skills:
- Familiarity with JavaScript and TypeScript.
- Understanding of the Language Server Protocol (LSP).
- Experience with Processing and Java.
- Familiarity with ANTLR is a plus.
- Experience with Visual Studio Code extension development is a plus.
Prior Work and Recommended Reading:
- Processing Language Server (LS4P) by Efratror based on earlier work by Syam Sundar Kirubakaran
- Luke Zhang's Processing VSCode plugin forked from Avin Zarlez' earlier plugin
- Processing Language Server VSCode by kgtkr
- LS4PDE by Thanh aka pr1metine
- These contibutions by Efratror for LSP Declaration Support and Reference Support in Processing 4.
Description: Develop an evolutionary prototype of a desktop editor for Processing that supports collaborative editing, aimed at teaching and facilitating creative coding, focusing on simplicity and accessibility for beginners. This project requires development from the ground up, presenting a unique opportunity for a developer to contribute to a tool that could significantly influence how programming is taught in creative and educational contexts.
Expected Outcomes:
- Create a basic Electron application that can load, edit, and run Processing sketches.
- Integrate collaborative editing functionalities using CodeMirror.
- Develop a simple user interface for starting new sketches, creating/joining sessions, and viewing changes in real time.
- Implement a presence feature to render remote selection ranges and cursors and shared undo/redo.
Desired Skills:
- Proficiency in Java, JavaScript, HTML, and CSS.
- Familiarity with Electron and Node.js frameworks.
- Knowledge of Processing.
- Experience with UI/UX design.
- Basic testing and debugging skills.
- Prior experience with CodeMirror is a plus.
Description: The p5.js Friendly Error System (FES) enhances the development and debugging experience in p5.js with simplified error messages. With the upcoming p5.js 2.0 release, significant updates are required to align FES with the new system architecture. This project presents an opportunity for applicants to make a meaningful impact on a critical component of p5.js, which is particularly beneficial for new coders and enhances the experience for millions of users.
Expected Outcomes:
- Revamp FES and merge the code into the p5.js 2.0 GitHub branch.
- Develop a new detection method for accidentally overridden p5.js functions and constants.
- Update how FES checks parameters to functions.
- Research into potential additional features/enhancements for FES and optional implementation depending on feasibility:
- Simplify implementation throughout the codebase and use of FES by addon libraries.
- Catch errors that do not originate from p5.js itself and provide friendly errors.
- Expand and complete the internationalization feature (through error message translations) of FES.
Prior Work and Recommended Reading:
- p5.js Friendly Error System (FES) Intro Doc
- Friendly Errors System Contribution Guide
- Contributor Guidelines
- Steward Guidelines
Desired Skills:
- Strong experience with JavaScript, p5.js, and GitHub Workflows.
Description: Upgrade the CodeMirror component in the p5.js Editor from Version 5 to Version 6, implementing many enhanced features for accessibility, mobile support, internationalization, and other editor features. This may require refactoring related components.
Expected Outcomes:
- Refactor the Editor Component from a Class to Functional Component.
- Upgrade CodeMirror from Version 5 to Version 6, testing with emphasis on its accessibility features.
Desired Skills:
- JavaScript, HTML, React, CSS, Github, basic understanding of testing for web accessibility.
Prior Work and Recommended Reading: