{"action":"created","issue":{"url":"https://api.github.com/repos/RITlug/teleirc/issues/163","repository_url":"https://api.github.com/repos/RITlug/teleirc","labels_url":"https://api.github.com/repos/RITlug/teleirc/issues/163/labels{/name}","comments_url":"https://api.github.com/repos/RITlug/teleirc/issues/163/comments","events_url":"https://api.github.com/repos/RITlug/teleirc/issues/163/events","html_url":"https://github.com/RITlug/teleirc/issues/163","id":487713832,"node_id":"MDU6SXNzdWU0ODc3MTM4MzI=","number":163,"title":"Rewrite TeleIRC from NodeJS to Go","user":{"login":"jwflory","id":4721034,"node_id":"MDQ6VXNlcjQ3MjEwMzQ=","avatar_url":"https://avatars2.githubusercontent.com/u/4721034?v=4","gravatar_id":"","url":"https://api.github.com/users/jwflory","html_url":"https://github.com/jwflory","followers_url":"https://api.github.com/users/jwflory/followers","following_url":"https://api.github.com/users/jwflory/following{/other_user}","gists_url":"https://api.github.com/users/jwflory/gists{/gist_id}","starred_url":"https://api.github.com/users/jwflory/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jwflory/subscriptions","organizations_url":"https://api.github.com/users/jwflory/orgs","repos_url":"https://api.github.com/users/jwflory/repos","events_url":"https://api.github.com/users/jwflory/events{/privacy}","received_events_url":"https://api.github.com/users/jwflory/received_events","type":"User","site_admin":false},"labels":[{"id":370390983,"node_id":"MDU6TGFiZWwzNzAzOTA5ODM=","url":"https://api.github.com/repos/RITlug/teleirc/labels/help%20wanted","name":"help wanted","color":"FF3366","default":true},{"id":1147710993,"node_id":"MDU6TGFiZWwxMTQ3NzEwOTkz","url":"https://api.github.com/repos/RITlug/teleirc/labels/new%20change","name":"new change","color":"fff205","default":false},{"id":1147711563,"node_id":"MDU6TGFiZWwxMTQ3NzExNTYz","url":"https://api.github.com/repos/RITlug/teleirc/labels/question","name":"question","color":"d876e3","default":true}],"state":"open","locked":false,"assignee":{"login":"jwflory","id":4721034,"node_id":"MDQ6VXNlcjQ3MjEwMzQ=","avatar_url":"https://avatars2.githubusercontent.com/u/4721034?v=4","gravatar_id":"","url":"https://api.github.com/users/jwflory","html_url":"https://github.com/jwflory","followers_url":"https://api.github.com/users/jwflory/followers","following_url":"https://api.github.com/users/jwflory/following{/other_user}","gists_url":"https://api.github.com/users/jwflory/gists{/gist_id}","starred_url":"https://api.github.com/users/jwflory/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jwflory/subscriptions","organizations_url":"https://api.github.com/users/jwflory/orgs","repos_url":"https://api.github.com/users/jwflory/repos","events_url":"https://api.github.com/users/jwflory/events{/privacy}","received_events_url":"https://api.github.com/users/jwflory/received_events","type":"User","site_admin":false},"assignees":[{"login":"jwflory","id":4721034,"node_id":"MDQ6VXNlcjQ3MjEwMzQ=","avatar_url":"https://avatars2.githubusercontent.com/u/4721034?v=4","gravatar_id":"","url":"https://api.github.com/users/jwflory","html_url":"https://github.com/jwflory","followers_url":"https://api.github.com/users/jwflory/followers","following_url":"https://api.github.com/users/jwflory/following{/other_user}","gists_url":"https://api.github.com/users/jwflory/gists{/gist_id}","starred_url":"https://api.github.com/users/jwflory/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jwflory/subscriptions","organizations_url":"https://api.github.com/users/jwflory/orgs","repos_url":"https://api.github.com/users/jwflory/repos","events_url":"https://api.github.com/users/jwflory/events{/privacy}","received_events_url":"https://api.github.com/users/jwflory/received_events","type":"User","site_admin":false},{"login":"Tjzabel","id":22552344,"node_id":"MDQ6VXNlcjIyNTUyMzQ0","avatar_url":"https://avatars3.githubusercontent.com/u/22552344?v=4","gravatar_id":"","url":"https://api.github.com/users/Tjzabel","html_url":"https://github.com/Tjzabel","followers_url":"https://api.github.com/users/Tjzabel/followers","following_url":"https://api.github.com/users/Tjzabel/following{/other_user}","gists_url":"https://api.github.com/users/Tjzabel/gists{/gist_id}","starred_url":"https://api.github.com/users/Tjzabel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Tjzabel/subscriptions","organizations_url":"https://api.github.com/users/Tjzabel/orgs","repos_url":"https://api.github.com/users/Tjzabel/repos","events_url":"https://api.github.com/users/Tjzabel/events{/privacy}","received_events_url":"https://api.github.com/users/Tjzabel/received_events","type":"User","site_admin":false}],"milestone":null,"comments":6,"created_at":"2019-08-31T01:02:42Z","updated_at":"2019-09-06T20:09:32Z","closed_at":null,"author_association":"MEMBER","body":"# Summary\r\n\r\nRewrite TeleIRC from NodeJS to [Go](https://golang.org/)\r\n\r\n# Background\r\n\r\nRecently we discussed a semester mini-project of rewriting/porting TeleIRC to Go for the following reasons:\r\n\r\n* **Primary goals**:\r\n    * Distinguish our project from the other NodeJS teleirc bot\r\n    * Make a better appeal to the k8s/OpenShift community with a Go app\r\n* **Secondary goals**:\r\n    * @Tjzabel and @jwflory are looking for opportunities to work more with Go for learning\r\n    * @Zedjones has more background / experience in Go and was interested in idea of porting\r\n    * Better-performing language choice for networking-heavy use of our bot\r\n    * Intention to make the code more maintainable and easily testable\r\n\r\nFor @Tjzabel and I on the core maintaining team, we are both looking for opportunities to learn more about programming in Go. It would be a learning opportunity to pick up a language used often in the spaces we work in. We also have support from @Zedjones, who has used Go for a while longer than us. This should help us start on the right page.\r\n\r\nMy gamble is whether porting over would actually help us find more downstream contributors to work on the project and help with development. One real-world use case is improving the sustainability of TeleIRC for the Fedora Project, where a NodeJS app is not something often deployed by the infrastructure community, thus distancing itself from the community of people who volunteer to maintain its infrastructure.\r\n\r\n# Details\r\n\r\nA rewrite is a non-trivial investment of time and resources. Before starting, we should map out the pieces of the existing TeleIRC. How does it all fit together? What pieces can be segmented off together? We should also take some time to learn the structure of a good Go project. Any best practices for structuring our project? Can we set up the project in a specific way now to make future packaging easier?\r\n\r\nA full developer meeting should be devoted to planning this change and dividing it into smaller pieces if this will be selected as the semester deliverable.\r\n\r\n# Outcome\r\n\r\n* Distinguish our project from the other NodeJS teleirc bot\r\n* Make a better appeal to the k8s/OpenShift community with a Go app\r\n* Better-performing language choice for networking-heavy use of our bot"},"comment":{"url":"https://api.github.com/repos/RITlug/teleirc/issues/comments/528997094","html_url":"https://github.com/RITlug/teleirc/issues/163#issuecomment-528997094","issue_url":"https://api.github.com/repos/RITlug/teleirc/issues/163","id":528997094,"node_id":"MDEyOklzc3VlQ29tbWVudDUyODk5NzA5NA==","user":{"login":"Tjzabel","id":22552344,"node_id":"MDQ6VXNlcjIyNTUyMzQ0","avatar_url":"https://avatars3.githubusercontent.com/u/22552344?v=4","gravatar_id":"","url":"https://api.github.com/users/Tjzabel","html_url":"https://github.com/Tjzabel","followers_url":"https://api.github.com/users/Tjzabel/followers","following_url":"https://api.github.com/users/Tjzabel/following{/other_user}","gists_url":"https://api.github.com/users/Tjzabel/gists{/gist_id}","starred_url":"https://api.github.com/users/Tjzabel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Tjzabel/subscriptions","organizations_url":"https://api.github.com/users/Tjzabel/orgs","repos_url":"https://api.github.com/users/Tjzabel/repos","events_url":"https://api.github.com/users/Tjzabel/events{/privacy}","received_events_url":"https://api.github.com/users/Tjzabel/received_events","type":"User","site_admin":false},"created_at":"2019-09-06T20:09:32Z","updated_at":"2019-09-06T20:09:32Z","author_association":"MEMBER","body":"@Zedjones thanks for the input!\r\n\r\nThat's interesting about the Mock library. I wonder why it would function like that."}}
{"actor":{"display_login":"Tjzabel"}}