Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Standalone Binary #1953

Closed
3 tasks
fubuloubu opened this issue May 7, 2020 · 22 comments
Closed
3 tasks

Standalone Binary #1953

fubuloubu opened this issue May 7, 2020 · 22 comments

Comments

@fubuloubu
Copy link
Member

fubuloubu commented May 7, 2020

We need a way to allow multiple Vyper binaries to play nicely with each other. We also need a way to distribute vyper for client-side frameworks.

The idea is to build Vyper for different platforms as an executable file. See here and here. Check out if we can compile from C to WASM and other architectures with Clang/LLVM

Requirements:

  • Cross-platform
  • Minimally invasive to Vyper's current packaging and distribution process
  • Can use multiple versions of Vyper in any host framework that is supported with this proposal (in Python, Javascript, etc.)
@fubuloubu
Copy link
Member Author

Interesting project: https://github.com/pypa/manylinux

@fubuloubu
Copy link
Member Author

@fubuloubu fubuloubu added the bounty Bounty label May 11, 2020
@fubuloubu
Copy link
Member Author

Meeting notes: Setup $200 gitcoin bounty

@fubuloubu fubuloubu self-assigned this May 11, 2020
@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 200.0 DAI (200.0 USD @ $1.0/DAI) attached to it.

@fubuloubu fubuloubu removed their assignment May 18, 2020
@fubuloubu
Copy link
Member Author

@Jorropo
Copy link

Jorropo commented May 25, 2020

@fubuloubu can I start working or you have any questions ? :)

@fubuloubu
Copy link
Member Author

@Jorropo you seem to have a good grasp on this, perhaps we can chat tomorrow during our meeting? See #1965

@Jorropo
Copy link

Jorropo commented May 25, 2020

@fubuloubu 🆗
see you tomorrow so 😄

@Jorropo
Copy link

Jorropo commented May 29, 2020

Quick update, cython doesn't support Automatic Script Creation, I've tried some hacky way around but that did not worked, I'll try with pyinstaller wich support it, I have seen some boiler plate repo using pyinstaller + cython, that might works but from what I remember this was meant for the other way around (using cython code in a pyinstaller image, not cythoning some python code).

It would be possible to use cython and have the performance boost we stop using entry points (providing a main.py).

@gitcoinbot
Copy link

@Jorropo Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • reminder (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

1 similar comment
@gitcoinbot
Copy link

@Jorropo Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • reminder (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

@Jorropo
Copy link

Jorropo commented Jun 2, 2020

@gitcoinbot I am still working on it, currently fixing issue with pyinstaller spec files (not correctly collecting vyper lib with ASC).

@gitcoinbot
Copy link

@Jorropo Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • reminder (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

3 similar comments
@gitcoinbot
Copy link

@Jorropo Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • reminder (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

@gitcoinbot
Copy link

@Jorropo Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • reminder (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

@gitcoinbot
Copy link

@Jorropo Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • reminder (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

@Jorropo
Copy link

Jorropo commented Jun 12, 2020

Sorry but I can't do it, I'm running short on time right now.

@Ryan-Gordon
Copy link

Hey @fubuloubu
What is the deliverable for this issue ?
Is it one binary that works on all platforms or binaries per platform ?
I had a look through this thread and the links and it looks like there already exists a bunch of binaries for linux and a JS framework.

I was originally going to try pyinstaller but I can see that is covered with this project right? : https://github.com/vyperlang/vyper-static-linux-build

@iamdefinitelyahuman
Copy link
Contributor

@Ryan-Gordon we're basically looking for:

  1. Scripts that we can run on debian/osx/windows that will produce a standalone binary for the given platform. There is some work done toward this in https://github.com/vyperlang/vyper-static-linux-build but it's specific to linux and outdated - it was done before we moved to an entry-points style system in setuptools.
  2. A script to produce a javascript package so we can distribute Vyper via NPM. Some work toward this was done in https://github.com/vyperlang/vyper-in-browser but it relies on a fork of pyiodide and is fairly outdated by now.
  3. Tests to confirm that the above scripts work. We should be able to run them via the CI using each target operating system.

@fubuloubu
Copy link
Member Author

fubuloubu commented Jul 15, 2020

Upon further inspection, it seems like Brython is the best bet moving forwards. In order to use Brython, we need to do a couple of things:

@gitcoinbot
Copy link

Issue Status: 1. Open 2. Cancelled


The funding of 200.0 DAI (200.0 USD @ $1.0/DAI) attached to this issue has been cancelled by the bounty submitter

@charles-cooper
Copy link
Member

@fubuloubu i think we can close this as we do publish binaries for every release (as of https://github.com/vyperlang/vyper/releases/tag/v0.1.0-beta.16 / #2134), reopen if you feel otherwise

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants