processing / p5.js

p5.js is a client-side JS platform that empowers artists, designers, students, and anyone to learn to code and express themselves creatively on the web. It is based on the core principles of Processing. http://twitter.com/p5xjs —
http://p5js.org/
GNU Lesser General Public License v2.1
21.72k stars 3.34k forks source link

p5.js 2.0 Updates #7261

Open Qianqianye opened 2 months ago

Qianqianye commented 2 months ago

Topic

Hi!

Earlier this year, we initiated the p5.js 2.0 RFC (Request for Comment) process to collectively re-envision the next major release of p5.js with the community, with a strong focus on our core value of access. We want to extend our gratitude for your participation—over 60 p5.js 2.0 proposals were opened and discussed. You can find all 2.0 proposals under the label ‘p5.js 2.0’. We’re excited to share some updates with you.

We’ve organized all the proposals into a p5.js 2.0 GitHub project, categorized by priority, project size, and phases. Proposals in Phase 1 are planned to be completed by the end of October, while Phase 2 proposals have a tentative completion timeframe around the end of 2024.

Governance Model and Decision-Making Process

To ensure collective decision-making on which proposals to implement, the p5.js 2.0 project follows this governance model and decision-making process, which includes three components:

  1. p5.js 2.0 Core Committee: Responsible for organizing proposals, making initial approval/decline decisions, prioritizing, and assessing project size and phases. Qianqian Ye, @Qianqianye: p5.js lead Kenneth Lim, @limzykenneth: p5.js mentor Dave Pagurek, @davepagurek: p5.js contributor and maintainer

  2. p5.js 2.0 Advisory Committee: Responsible for making final approval/decline decisions on proposals. Lauren Lee McCarthy, @lmccart: p5.js creator Nat Decker, @natdecker: p5.js accessibility consultant cypress masso, @outofambit: 2019 p5.js fellow Stalgia Grigg, @stalgiag: 2019 p5.js fellow Daniel Shiffman, @shiffman: p5.js educator

  3. Community Input: Solicit comments on implementation details or potential implementers. For any proposal accepted for implementation by both the core and advisory committees, its status will be updated to ‘Implementation’ on the p5.js 2.0 GitHub project, categorized by high, medium, or low priority. Proposals not selected for implementation for now will be labeled as ‘Out of Scope’ or 'No Priority' and will not move forward to the next phase, but we are open to implement them in the near future. The broader community is encouraged to leave comments on accepted proposals, and these will be considered during implementation. However, the decision on the proposal itself will not change at this stage. The goal is to clarify the implementation approach and identify potential implementers. We are committed to work with a group of implementers that reflect the diversity of the p5.js community.

What's Next?

Several p5.js 2.0 proposals are already in progress or almost completed, such as the Functional core and modular build, Async/Await setup(), Typography module revamp, and others. Please see the latest updates in the dev-2.0 branch. We will continue to update the p5.js 2.0 GitHub project and the dev-2.0 branch as we move forward and will share updates with the community. Please feel free to leave comments in this issue if you have any questions about p5.js 2.0 process and proposals.

Our current priority is the p5.js 2.0 issues and PRs, so it might take us a bit longer to review other issues and PRs. However, we will get to them eventually! We appreciate your patience in the meantime.

Thank you!

ejgutierrez74 commented 6 days ago

Hi, im a teacher of vocational education and im using p5 1.11.1, but the course using p5.js would begin after holiday of christmas ( about 10th Janurary). Is there any ETA to release 2.0 ? The core code would be the same or backwards compatible ?

Thanks because ive to prepare classes, so would be great some kind of webeditor with 2.0 RC or the current dev-2.0 branch...just to make some tests and see evolution.

When 2.0 would be released would the documentation be updated?

Thanks

limzykenneth commented 6 days ago

Hi @ejgutierrez74, we don't want to give a concrete release date just yet as we are still working through many aspects of 2.0 at the moment. A very rough time frame we are aiming for is the first quarter of 2025 but if some delay occurs it can be later.

Most things will be backwards compatible, I expect the majority of simple to moderately complex sketches will work out of the box, with probably the most notable non-compatible feature being the loading functions no longer using preload() and will be promise based. You can have a look at the proposals for a sense of what may be changing. We will probably also release a migration guide for transitioning from 1.x to 2.0 but at the same time there will likely be a relatively short period of bug fixes for 1.x so you can continue using 1.x even after 2.0 has released.

Some stuff are still not stable in the dev-2.0 branch so I won't want to prepare an RC just yet to avoid people trying it out expecting something that may change later. You can build from dev-2.0 or use npm run dev/npm run dev:global to test the current state if you wish.

The documentation will be updated with the release of 2.0.

ejgutierrez74 commented 6 days ago

Thanks i dont want an exact date, like 10th of December at 18:00. but i didnt know if it would get out this month, the next month or next year ;) You information is what i needed, as in first quarter id continue using 1.11 or the 1.X release at the moment...Perhaps if by the end of the course april/may 2.0 its released, then we can take a look and try to migrate our code....or see some news or new features on 2.0.... Then probably next course in September 2025 we could hopefully use 2.0 or even 2.0.X....

Thanks again