ethereum / populus

The Ethereum development framework with the most cute animal pictures
http://populus.readthedocs.org/
321 stars 321 forks source link

Proposal: Vyper versions supported over HTTP API #476

Open fubuloubu opened 6 years ago

fubuloubu commented 6 years ago

What was wrong?

The biggest problem with Vyper is that it's Python, and arbitrary/multiple version handling in Python is a hard thing to handle. It might just be better to delegate to dedicated servers that compile vyper programs using specific versions of the compiler. Access to these could be provided over an HTTP API (that's programmable), with an option to use a local version as well.

Also, with snapcraft/docker containerization, we may be able to support local versioning here too.

Conversation snippet...

@pipermerriam An open source hostable server which exposed an API for compilation of vyper code would be pretty cool. There are of course security concerns to be considered, but I think it would a valuable tool (especially if it had first class support for multiple vyper versions so that it could be used to do things like verification of deployed instances.

@fubuloubu Hmm, maybe that is the solution to online integration: a JS "compiler" that just sends everything to Vyper instances on AWS.

@pipermerriam Well, ideally, something like populus could delegate compilation via HTTP requests to this API so I'd love to have that use case supported

Cute Animal Picture

chortle pug

pipermerriam commented 6 years ago

Alternate idea might be something that does something similar to tox and manage independent virtualenvs for each installed vyper version. The outer vyper CLI would act as a transparent shell, delegating all execution to subprocess calls to the installed versions embedded in virtualenvs.

Think of it like pyenv but for vyper.

$ vyperenv install 1.2.3
...
fubuloubu commented 6 years ago

LGTM @jacqueswww, what do you think?