{"action":"created","issue":{"url":"https://api.github.com/repos/processing/p5.js/issues/971","labels_url":"https://api.github.com/repos/processing/p5.js/issues/971/labels{/name}","comments_url":"https://api.github.com/repos/processing/p5.js/issues/971/comments","events_url":"https://api.github.com/repos/processing/p5.js/issues/971/events","html_url":"https://github.com/processing/p5.js/issues/971","id":109704635,"number":971,"title":"friendly error system fixes, updates, and improvements","user":{"login":"lmccart","id":191056,"avatar_url":"https://avatars.githubusercontent.com/u/191056?v=3","gravatar_id":"","url":"https://api.github.com/users/lmccart","html_url":"https://github.com/lmccart","followers_url":"https://api.github.com/users/lmccart/followers","following_url":"https://api.github.com/users/lmccart/following{/other_user}","gists_url":"https://api.github.com/users/lmccart/gists{/gist_id}","starred_url":"https://api.github.com/users/lmccart/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lmccart/subscriptions","organizations_url":"https://api.github.com/users/lmccart/orgs","repos_url":"https://api.github.com/users/lmccart/repos","events_url":"https://api.github.com/users/lmccart/events{/privacy}","received_events_url":"https://api.github.com/users/lmccart/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/processing/p5.js/labels/area:documentation","name":"area:documentation","color":"009800"},{"url":"https://api.github.com/repos/processing/p5.js/labels/area:utilities","name":"area:utilities","color":"009800"},{"url":"https://api.github.com/repos/processing/p5.js/labels/feature%20request","name":"feature request","color":"f7c6c7"},{"url":"https://api.github.com/repos/processing/p5.js/labels/GSOC","name":"GSOC","color":"207de5"},{"url":"https://api.github.com/repos/processing/p5.js/labels/help%20wanted","name":"help wanted","color":"aa44dd"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-10-04T21:05:07Z","updated_at":"2015-12-10T16:36:56Z","closed_at":null,"body":"The friendly error system was first implemented at the p5.js contributors conference. It is an effort to provide more human readable and friendly error messages in console. It also does some minimal argument type checking since JS does not do this. The nice thing about it is that it is only added to the p5.js build of the library, and eliminated from p5.min.js to improve performance speed. However, there are a number of issues and extensions that are required before it's fully up and running. \r\n\r\nI think the FEs would benefit from one person taking this on as a sort of concentrated project. It could be a good Processing Fellowship or Google Summer of Code project. For organization purposes, I am aggregating all the Friendly Error related issues here for now. I will close but link to all other issues. If someone were to tackle this project, the first step would be to read through all the issues and devise a roadmap and plan of attack.\r\n\r\n* [validateParameters can't support multiple-type parameter](https://github.com/processing/p5.js/issues/868) - for example, methods dealing with color often can take either a color object or a number as an argument. however, the `validateParameters()` function doesn't support this.\r\n* [Friendly Error Messaging for unsupported browsers](https://github.com/processing/p5.js/issues/657) - it would be nice to have messages that alert the user if they are trying to use functions of p5 that are not supported by their browser.\r\n* [Friendly Error Messaging should show sketch line number](https://github.com/processing/p5.js/issues/750)\r\n* [Generate Friendly Error Messaging from existing documentation](https://github.com/processing/p5.js/issues/759) - it would be nice to auto-generate the parameters accepted by each function from the reference, rather than having to manually add them to each function in the code.\r\n\r\nThese two pages describe some more thinking around it, currrent status, and future plans/ideas:\r\n* https://github.com/processing/p5.js/wiki/Friendly-Debugger\r\n* https://p5jscon.hackpad.com/Error-Reporting-6UAUU37d6j9\r\n"},"comment":{"url":"https://api.github.com/repos/processing/p5.js/issues/comments/163680735","html_url":"https://github.com/processing/p5.js/issues/971#issuecomment-163680735","issue_url":"https://api.github.com/repos/processing/p5.js/issues/971","id":163680735,"user":{"login":"lmccart","id":191056,"avatar_url":"https://avatars.githubusercontent.com/u/191056?v=3","gravatar_id":"","url":"https://api.github.com/users/lmccart","html_url":"https://github.com/lmccart","followers_url":"https://api.github.com/users/lmccart/followers","following_url":"https://api.github.com/users/lmccart/following{/other_user}","gists_url":"https://api.github.com/users/lmccart/gists{/gist_id}","starred_url":"https://api.github.com/users/lmccart/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lmccart/subscriptions","organizations_url":"https://api.github.com/users/lmccart/orgs","repos_url":"https://api.github.com/users/lmccart/repos","events_url":"https://api.github.com/users/lmccart/events{/privacy}","received_events_url":"https://api.github.com/users/lmccart/received_events","type":"User","site_admin":false},"created_at":"2015-12-10T16:36:56Z","updated_at":"2015-12-10T16:36:56Z","body":"hi @darkcoderrises, thanks for your interest! we don't really have a general mentor system for larger issues like this, but you could propose this as a [fellowship project](https://processingfoundation.org/fellowships) and a mentor would be assigned in this case. \r\n\r\nhowever, if you're looking to get involved right now and learn a bit about the p5.js development and codebase, and get some general feedback and pointers as you work, I'd suggest starting with some of the smaller issues. anything labeled level:beginner would be good ones to get started with.\r\n\r\ntake a read through this [development doc](https://github.com/processing/p5.js/wiki/Development) as a starting point. this gives an overview of the workflow, code organization, and building and testing process. please let me know if you have any questions or if anything is unclear!"}}