berinhard/pyp5js

Panel-Sketch

MarcSkovMadsen opened this issue · 2 comments

Hi @berinhard

I am working on a python package called panel-sketch.

Panel is a framework for analytics apps in Python that I am a contributor too.

With panel-sketch I try to make it easy for #PyData, #PyViz including Jupyter and Panel users to use Python in the browser, notebook and VS Code. You can try it out via this Binder link.

panel-sketch draws inspiration and some modified code from pyp5js. You can find the modified code here https://github.com/MarcSkovMadsen/panel-sketch/tree/main/panel_sketch/sketch_compiler.

I hope this is ok?

I can see you have and are doing a lot of work to get this working. Thanks. 👍

Please let me know if there are ways in which I should credit or acknowledge your work or pyp5js.

Hope to stay in contact.

panel-sketch-small

Hi @MarcSkovMadsen, thanks for reaching me out!

I took a look at panel and also panel-sketch and I really enjoyed both projects. Congrats for your work! But talking specifically about pyp5js usage, I think there are some things to consider and I'd also like to ask for your help to grow the project.

One thing that can be a problem is the license usage. This is because panel-sketch is licensed under MIT while pyp5js is under GPL3 (more about this can be found here. We can say that by copying pyp5js source code and adapting it, you're vendoring and this is not a problem! I'm happy to know people are using and building new stuff on top of pyp5js, please, don't get me wrong. But the vendoring process brings 2 questions to me:

  1. How can I let people aware of possible license issues when vendoring the lib? To address this discussion, I've already created #156. Feel welcome to join me over there!
  2. But, most important, why are people needing to vendor the lib instead of pip installing it? I'd rather want people to install it as their projects dependencies because, even though I know vendoring is part of open source, it can be an anti-pattern.

The second question interests me the most and it's the question I'd like to have your help with. Probably you've had to vendor in pyp5js because the project was missing some interface, right? I can imagine, for example, that you wanted to have your own custom index.html file instead of the one created by pyp5js, or something like that... So, given that, I'll formulate a few questions to help me to identify what the project's missing so I can create new issues and have more people to work on it.

My questions are:

  1. Which changes you had to introduce to the files you've copied from pyp5js?
  2. Do you think these changes are interesting to pyp5js source code as well?
  3. Can you think on a way of using pyp5js as a pip dependency? Please, feel free to be creative here. List internal API calls you'd like to have, JS files, command line interfaces... My goal is to discuss interface improvements so the project can become more extensible.

Thanks a lot for using pyp5js and for opening this issue too!

Closing this issue due to inactivity