{"action":"created","issue":{"url":"https://api.github.com/repos/trufflesuite/truffle/issues/1240","repository_url":"https://api.github.com/repos/trufflesuite/truffle","labels_url":"https://api.github.com/repos/trufflesuite/truffle/issues/1240/labels{/name}","comments_url":"https://api.github.com/repos/trufflesuite/truffle/issues/1240/comments","events_url":"https://api.github.com/repos/trufflesuite/truffle/issues/1240/events","html_url":"https://github.com/trufflesuite/truffle/pull/1240","id":355214269,"node_id":"MDExOlB1bGxSZXF1ZXN0MjExNzk0NzI4","number":1240,"title":"WIP: started integration of vyper compiler","user":{"login":"evgeniuz","id":108400,"node_id":"MDQ6VXNlcjEwODQwMA==","avatar_url":"https://avatars3.githubusercontent.com/u/108400?v=4","gravatar_id":"","url":"https://api.github.com/users/evgeniuz","html_url":"https://github.com/evgeniuz","followers_url":"https://api.github.com/users/evgeniuz/followers","following_url":"https://api.github.com/users/evgeniuz/following{/other_user}","gists_url":"https://api.github.com/users/evgeniuz/gists{/gist_id}","starred_url":"https://api.github.com/users/evgeniuz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/evgeniuz/subscriptions","organizations_url":"https://api.github.com/users/evgeniuz/orgs","repos_url":"https://api.github.com/users/evgeniuz/repos","events_url":"https://api.github.com/users/evgeniuz/events{/privacy}","received_events_url":"https://api.github.com/users/evgeniuz/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-08-29T15:26:12Z","updated_at":"2018-08-29T16:34:39Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/trufflesuite/truffle/pulls/1240","html_url":"https://github.com/trufflesuite/truffle/pull/1240","diff_url":"https://github.com/trufflesuite/truffle/pull/1240.diff","patch_url":"https://github.com/trufflesuite/truffle/pull/1240.patch"},"body":"Barebones version of vyper compilation, works only with `--all` flag for now.\r\n\r\nHere's rough plan of how I intend to implement it: `compile.all`/`compile.necessary` will iterate over `COMPILERS` and for each extension find contracts with that extension and execute specified compiler for it. Both these functions are independent from Solidity, so they should work for Vyper as well. `compile.with_dependencies` will handle Solidity compilation as it is doing now, `compile.vyper` will have same interface, but will work with Vyper instead.\r\n\r\nIt's possible to separate `compile.vyper` into it's own module (i. e. vyper.js), but in that case I think would be good idea to separate `compile.with_dependencies` into it's own module as well and rename it to `compile.solidity`.\r\n\r\nThere is some processing of `source_path`s to be operating system independent that would be needed both for Solidity and Vyper, so I plan to extract them from `compile` function into utility functions to avoid code duplication.\r\n\r\nList of things to do:\r\n\r\n- [ ]  decouple `source_path` processing from compile and add it to `compile.vyper`;\r\n- [ ]  get Vyper version and throw error if there are Vyper contracts, but Vyper is not available;\r\n- [ ]  add more logging (filenames that are being compiled, filenames where error occured (in addition to printing `stderr`);\r\n- [ ]  add multiple compiler support for `compile.necessary`;\r\n- [ ]  add tests.\r\n\r\nCloses #1144 "},"comment":{"url":"https://api.github.com/repos/trufflesuite/truffle/issues/comments/417018892","html_url":"https://github.com/trufflesuite/truffle/pull/1240#issuecomment-417018892","issue_url":"https://api.github.com/repos/trufflesuite/truffle/issues/1240","id":417018892,"node_id":"MDEyOklzc3VlQ29tbWVudDQxNzAxODg5Mg==","user":{"login":"gnidan","id":151065,"node_id":"MDQ6VXNlcjE1MTA2NQ==","avatar_url":"https://avatars1.githubusercontent.com/u/151065?v=4","gravatar_id":"","url":"https://api.github.com/users/gnidan","html_url":"https://github.com/gnidan","followers_url":"https://api.github.com/users/gnidan/followers","following_url":"https://api.github.com/users/gnidan/following{/other_user}","gists_url":"https://api.github.com/users/gnidan/gists{/gist_id}","starred_url":"https://api.github.com/users/gnidan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gnidan/subscriptions","organizations_url":"https://api.github.com/users/gnidan/orgs","repos_url":"https://api.github.com/users/gnidan/repos","events_url":"https://api.github.com/users/gnidan/events{/privacy}","received_events_url":"https://api.github.com/users/gnidan/received_events","type":"User","site_admin":false},"created_at":"2018-08-29T16:34:39Z","updated_at":"2018-08-29T16:34:39Z","author_association":"MEMBER","body":"@evgeniuz One note for now:\r\n\r\nPlease put this stuff in a _new_ package, something like `truffle-vyper-compile`. The plan for `truffle-compile` is that it will eventually be renamed `truffle-solidity-compile`. This way we can keep the various languages separate, and eventually find commonalities to abstract similar behavior.\r\n\r\nThanks for pursuing this!"}}
{"actor":{"display_login":"gnidan"}}