{"action":"created","issue":{"url":"https://api.github.com/repos/CityOfZion/neo-python/issues/719","repository_url":"https://api.github.com/repos/CityOfZion/neo-python","labels_url":"https://api.github.com/repos/CityOfZion/neo-python/issues/719/labels{/name}","comments_url":"https://api.github.com/repos/CityOfZion/neo-python/issues/719/comments","events_url":"https://api.github.com/repos/CityOfZion/neo-python/issues/719/events","html_url":"https://github.com/CityOfZion/neo-python/pull/719","id":381060599,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMxMTE0ODIx","number":719,"title":"Initial Django inspired component loading","user":{"login":"ixje","id":6625537,"node_id":"MDQ6VXNlcjY2MjU1Mzc=","avatar_url":"https://avatars0.githubusercontent.com/u/6625537?v=4","gravatar_id":"","url":"https://api.github.com/users/ixje","html_url":"https://github.com/ixje","followers_url":"https://api.github.com/users/ixje/followers","following_url":"https://api.github.com/users/ixje/following{/other_user}","gists_url":"https://api.github.com/users/ixje/gists{/gist_id}","starred_url":"https://api.github.com/users/ixje/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ixje/subscriptions","organizations_url":"https://api.github.com/users/ixje/orgs","repos_url":"https://api.github.com/users/ixje/repos","events_url":"https://api.github.com/users/ixje/events{/privacy}","received_events_url":"https://api.github.com/users/ixje/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-11-15T08:59:30Z","updated_at":"2018-11-15T11:06:47Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/CityOfZion/neo-python/pulls/719","html_url":"https://github.com/CityOfZion/neo-python/pull/719","diff_url":"https://github.com/CityOfZion/neo-python/pull/719.diff","patch_url":"https://github.com/CityOfZion/neo-python/pull/719.patch"},"body":"**What current issue(s) does this address, or what feature is it adding?**\r\nA different approach for loading plugins as suggested in #699, Django inspired\r\n\r\n**How did you solve this problem?**\r\nadd a class loader\r\n\r\n**How did you make sure your solution works?**\r\nmanually run `api_server.py` with Rest and RPC servers\r\n\r\n**Are there any special changes in the code that we should be aware of?**\r\nYes; the `RPC_SERVER` and `REST_SERVER` variables are now stored at module level and not part of the `SettingsHolder` class. The implication is that all networks (main/test/priv) use the same settings. The alternative is moving it into the `SettingsHolder` which means we need to update all `protocol.xxx.json` files to include new keys to load from and otherwise have a sane default.\r\n\r\nWhat approach would be preferred here (requesting extra opinions 🙏 ): @metachris @jseagrave21 @ThomasLobker @dethos \r\nchoice 1: all networks have the same plugin loading settings\r\nchoice 2: all network can have individual plugin loading settings as defined in their `protocol.xxx.json`\r\n\r\n**Please check the following, if applicable:**\r\n\r\n- [ ] Did you add any tests?\r\n- [X] Did you run `make lint`?\r\n- [ ] Did you run `make test`?\r\n- [X] Are you making a PR to a feature branch or development rather than master?\r\n- [X] Did you add an entry to `CHANGELOG.rst`? (if not, please do)\r\n"},"comment":{"url":"https://api.github.com/repos/CityOfZion/neo-python/issues/comments/439003420","html_url":"https://github.com/CityOfZion/neo-python/pull/719#issuecomment-439003420","issue_url":"https://api.github.com/repos/CityOfZion/neo-python/issues/719","id":439003420,"node_id":"MDEyOklzc3VlQ29tbWVudDQzOTAwMzQyMA==","user":{"login":"jseagrave21","id":40873301,"node_id":"MDQ6VXNlcjQwODczMzAx","avatar_url":"https://avatars0.githubusercontent.com/u/40873301?v=4","gravatar_id":"","url":"https://api.github.com/users/jseagrave21","html_url":"https://github.com/jseagrave21","followers_url":"https://api.github.com/users/jseagrave21/followers","following_url":"https://api.github.com/users/jseagrave21/following{/other_user}","gists_url":"https://api.github.com/users/jseagrave21/gists{/gist_id}","starred_url":"https://api.github.com/users/jseagrave21/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jseagrave21/subscriptions","organizations_url":"https://api.github.com/users/jseagrave21/orgs","repos_url":"https://api.github.com/users/jseagrave21/repos","events_url":"https://api.github.com/users/jseagrave21/events{/privacy}","received_events_url":"https://api.github.com/users/jseagrave21/received_events","type":"User","site_admin":false},"created_at":"2018-11-15T11:06:47Z","updated_at":"2018-11-15T11:06:47Z","author_association":"CONTRIBUTOR","body":"I may not fully understand the implications, but I think simpler is better. If we could make one change to update the mainnet, testnet, privnet settings between \"default\" and \"extended\", I think that is okay, since a user is usually only using one instance at time.\r\n\r\nEither way, I think _good documentation_ will allow for a user to operate the servers in the new way regardless of the implementation."}}
{"actor":{"display_login":"jseagrave21"}}