{"action":"created","issue":{"url":"https://api.github.com/repos/UltrosBot/Ultros/issues/82","labels_url":"https://api.github.com/repos/UltrosBot/Ultros/issues/82/labels{/name}","comments_url":"https://api.github.com/repos/UltrosBot/Ultros/issues/82/comments","events_url":"https://api.github.com/repos/UltrosBot/Ultros/issues/82/events","html_url":"https://github.com/UltrosBot/Ultros/issues/82","id":105120341,"number":82,"title":"Spring clean","user":{"login":"rakiru","id":569238,"avatar_url":"https://avatars.githubusercontent.com/u/569238?v=3","gravatar_id":"","url":"https://api.github.com/users/rakiru","html_url":"https://github.com/rakiru","followers_url":"https://api.github.com/users/rakiru/followers","following_url":"https://api.github.com/users/rakiru/following{/other_user}","gists_url":"https://api.github.com/users/rakiru/gists{/gist_id}","starred_url":"https://api.github.com/users/rakiru/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rakiru/subscriptions","organizations_url":"https://api.github.com/users/rakiru/orgs","repos_url":"https://api.github.com/users/rakiru/repos","events_url":"https://api.github.com/users/rakiru/events{/privacy}","received_events_url":"https://api.github.com/users/rakiru/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/UltrosBot/Ultros/labels/0%20-%20Planning","name":"0 - Planning","color":"CCCCCC"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/UltrosBot/Ultros/milestones/2","html_url":"https://github.com/UltrosBot/Ultros/milestones/1.???","labels_url":"https://api.github.com/repos/UltrosBot/Ultros/milestones/2/labels","id":528841,"number":2,"title":"1.???","description":"Features and bugfixes.","creator":{"login":"gdude2002","id":204153,"avatar_url":"https://avatars.githubusercontent.com/u/204153?v=3","gravatar_id":"","url":"https://api.github.com/users/gdude2002","html_url":"https://github.com/gdude2002","followers_url":"https://api.github.com/users/gdude2002/followers","following_url":"https://api.github.com/users/gdude2002/following{/other_user}","gists_url":"https://api.github.com/users/gdude2002/gists{/gist_id}","starred_url":"https://api.github.com/users/gdude2002/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gdude2002/subscriptions","organizations_url":"https://api.github.com/users/gdude2002/orgs","repos_url":"https://api.github.com/users/gdude2002/repos","events_url":"https://api.github.com/users/gdude2002/events{/privacy}","received_events_url":"https://api.github.com/users/gdude2002/received_events","type":"User","site_admin":false},"open_issues":17,"closed_issues":23,"state":"open","created_at":"2014-01-07T12:48:06Z","updated_at":"2015-09-06T22:24:08Z","due_on":null,"closed_at":null},"comments":5,"created_at":"2015-09-06T22:24:08Z","updated_at":"2015-09-07T21:02:26Z","closed_at":null,"body":"Eh, late Summer clean? Or more likely, Autumn to Winter clean. There's a lot of crap in `utils` that just got shoved there at the beginning without any real thought behind it. It may be worth having a scan through the rest of the code for less-than-stellar code (instance variables set to mutable type in class definition, for example (or even just instance variables referenced in class defs at all)). Perhaps Landscape might be useful for once.\r\n\r\nEdit: Some possible changes too:\r\n\r\n* [ ] Rename `command_manager` to `commands`\r\n  * Reasoning: `command_manager.CommandManager` is a bit redundant, and any other command-related stuff would probably go in there too. This could also be a full module rather than a single file.\r\n* [ ] Rename `event_manager` to `events`\r\n  * Reasoning: Same as `commands`\r\n* [ ] Deprecate `system.plugin`\r\n  Reasoning: It's just an import of `system.plugins.plugin.PluginObject`. We have a function decorator for deprecation, so we should make a class one and wrap this.\r\n* [ ] Rename `Manager` in `factory_manager` to `FactoryManager`\r\n  * Reasoning: Overly generic name means you need the full module name to make any sense of it.\r\n* [ ] Move functionality of `run.py` into an `Ultros` class.\r\n  * Reasoning: Cleaner, separates instantiation (args parsing, etc.) from bot setup and running. This would also be a sensible place to store/access references to subsystems were we to get rid of the singletons.\r\n* Discuss `system.help`\r\n  * Reasoning: What even is this? We should probably discuss commands a bit to figure out how they would provide help topics and such.\r\n\r\nAny renaming should be deprecated. Also, we should think up how to handle deprecation (when do we actually remove things?).\r\n\r\nOther things to consider but should be discussed in separate tickets if/when tackled:\r\n\r\n* Rethink overzealous use of singletons.\r\n* Rethink Protocol reuse (same Protocol instance reused for every connection).\r\n* Rethink translation system\r\n  * Current one isn't very useful and underutilised. I think g said it was a bad system.\r\n* Rethink versioning\r\n  * Lots of breaking changes without even bumping patch version, making them pretty useless."},"comment":{"url":"https://api.github.com/repos/UltrosBot/Ultros/issues/comments/138376798","html_url":"https://github.com/UltrosBot/Ultros/issues/82#issuecomment-138376798","issue_url":"https://api.github.com/repos/UltrosBot/Ultros/issues/82","id":138376798,"user":{"login":"gdude2002","id":204153,"avatar_url":"https://avatars.githubusercontent.com/u/204153?v=3","gravatar_id":"","url":"https://api.github.com/users/gdude2002","html_url":"https://github.com/gdude2002","followers_url":"https://api.github.com/users/gdude2002/followers","following_url":"https://api.github.com/users/gdude2002/following{/other_user}","gists_url":"https://api.github.com/users/gdude2002/gists{/gist_id}","starred_url":"https://api.github.com/users/gdude2002/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gdude2002/subscriptions","organizations_url":"https://api.github.com/users/gdude2002/orgs","repos_url":"https://api.github.com/users/gdude2002/repos","events_url":"https://api.github.com/users/gdude2002/events{/privacy}","received_events_url":"https://api.github.com/users/gdude2002/received_events","type":"User","site_admin":false},"created_at":"2015-09-07T21:02:26Z","updated_at":"2015-09-07T21:02:26Z","body":"> ...instead of that factory making a new IRC instance to reconnect, it reuses the same one\r\n\r\nAh, I see. Well, I guess we could make a new one, yeah. Shouldn't be too hard.\r\n\r\n> [Versioning]\r\n\r\nYeah, makes sense. We'll have to come up with some standards and stick to them - Maybe decide on not ever pushing to master unless reviewed PR or minor fix?"}}