Here you'll find all possible ways to contribute to the project.
Since pyp5js have a lot of moving parts, it would be great to have the p5.js API fully covered and tested. So, use your imagination, code your sketches and, if pyp5js breaks or starts to annoy you with something, you're very welcome to open an issue documenting your thoughts. Test it and let me know how can I improve it.
If you fell confortable with that, I'd be happy to add some of your pyp5js sketches to our examples list! To do so, you'll have to fork this repository and add your new sketch example in the docs/examples
directory. Once you've your sketch ready, you can open a pull request and I'll take a look at it.
Okay, if you want to contribute with pyp5js's code, let's go! I really advise you to use virtualenv with virtualenvwrapper or pyenv to isolate your pyp5js fork from the rest of your system. Once you have everything ready, you can run:
$ git clone [email protected]:YOUR_GITHUB_PROFILE/pyp5js.git
$ cd pyp5js
$ pip install -r dev-requirements.txt
$ python setup.py develop
$ make test
After that, you should have the pyp5js
command enabled and it will respect all the changes you introduce to the code. Now, a brief explanation about the code under pyp5js
directory:
config
module: centralize pieces of code used to configure howpyp5js
runscli.py
: the entrypoint forpyp5js
commands such asnew
orcompile
commands.py
: just functions responsible for the real implementations forpyp5js
commandscompiler.py
: where all the magic happens!exception.py
: custom exceptions used bypyp5js
monitor.py
: module with the objects used by themonitor
commandsketch.py
: class to abstract Sketches' files, directories and configurationtemplate_renderers.py
: simple module with the renderization logic for the code templates liketarget_sketch.py
http/web_app.py
: Flask application for the web interface.
Now go fetch yourself an issue and happy hacking!