So one of the side things I've been playing with over the last few month is waffle.io and Trello. Been taking lots longer than expected thanks to lack of time, but that has just allowed me to get through a few designs first.
Goal: Make more sense of issue trackers on GitHub, mainly modules since there can be so many of them (best example: Throughout the Ages) + allow for easier brainstorming for "scoped" projects like "Make Light & Shadow playable"
This is not intended to be a standard for everything, just where it would make sense with the extra structure. And that's if anybody would find it useful, I might just be a nut looking for neat tools all day every day!
Waffle.io
This in essence allows you to make a kanban board out of multiple Github issue trackers. And you can have different boards that include some of the same module trackers. This is neat as our larger module series do overlap like that. So here are some examples:
Additionally you can submit new issues from there that go to the "root" repo for that Waffle, which seems like a good way to submit issues for users that aren't sure where they go, but can identify the module series. The "Ready" column also offers a counter badge for our readmes, for instance TtA readme and JS readme. I picked the columns with the following in mind:
Waffle.io isn't perfect - it was built by a team of interns at Rally, and while most the stuff it does is very smooth there are some obvious improvements lacking and you can get stuck on annoying things. For instance one of the big delays was how I set it up at first with my user account, meaning Waffle tagged stuff on GitHub via me - which looked kinda funny. Trying to switch it to GooeyHub proved tricky as the GitHub hooks kept recreating with cached details. Had to revoke access to my account for it to finally reset.
Speaking of - I don't think they've put in the effort to smartly limit the access requested from your GitHub account (when you do stuff in Waffle it synchronizes to GitHub via your user). That looks kinda scary. But GitHub itself seems to trust them decently enough to mention them, so that's something. Maybe an open source version will pop up we can switch to sometime. Easy enough since the main backing data is still the issue trackers on GitHub
Trello
Before finding Waffle.io I was looking at Trello to somehow do stuff cross-repo for big things like TtA. Even wrote up some specifications for integration with GitHub. Now Waffle removes the need for that work, yay!
There may still be a place there for brainstorming and organizing stuff that isn't yet ready for an issue tracker. I put together a few examples:
Pull requests and bounties
I ran across a GitHub blog entry on pushing status updates to PRs and issues, which was part reason I went on a quest to integrate all the things. Thanks primarily to @msteiger we finally have the Jenkins Pull Request Builder plugin tested, which includes pushing a status for the build testing the PR back to GitHub. It is enabled for the Nanoware engine repo with an example here. For that we needed to fix all the unit tests real quick and I'm part way through preparing dynamic builder droplets for Jenkins to handle the extra load when it goes lives.
There is also a clahub thing that checks whether the author for a PR has signed a Contributor License Agreement. Which seems an easier and less messy thing than doing that "Signed by so-and-so" in every commit message that is in use in some places. Not going to worry about that for a while - bigger topic we still need to sort out sometime. But it seemed a cool find.
Finally I ran into Bountysource, which also has a decorator for GitHub issues and Waffle cards. Seems fairly popular with big fish like GitHub themselves, Mozilla, IBM, and so on. We've talked about bounties from time to time and the couple hundred euros or so we have sitting around are pretty dusty at this point. Question has usually been how to review and accept solutions, but an interesting option on Bountysource seems to be that anybody can set a bounty and then they get to OK whether a fix is good enough. Then Bountysource takes care of the extra details.
I can take on the duty of throwing a few token bounties around on a few of our interesting issues (and invalidate myself from ever claiming any just to be proper) and accept if complete. If one of us fixes the issue you can chose to simply "roll forward" the bounty onto something else. No fees at that point, only if somebody wants to withdraw money. At that point it is 10% which seems a tad high, but no fees elsewhere and it seems like the site provides a decent service. In comparison something like Freedomsponsors only takes 3% but does less of the work and doesn't cover any other fees you might incur.
Amusingly we could get to the top of the "available bounties" list for games pretty easily, even though the top has $4,076 in outstanding bounties. Might help with some visibility, along with the extra decoration on GitHub issues, and the "Ready" counter from Waffle. Thoughts?
They also have a little browser extension that's attempting to add a little universal "like" or "vote" button on popular issue trackers like GitHub.
All in all this whole thread is about improving visibility - organize better, integrate better, attract people better, and so on. Would appreciate feedback!
Goal: Make more sense of issue trackers on GitHub, mainly modules since there can be so many of them (best example: Throughout the Ages) + allow for easier brainstorming for "scoped" projects like "Make Light & Shadow playable"
This is not intended to be a standard for everything, just where it would make sense with the extra structure. And that's if anybody would find it useful, I might just be a nut looking for neat tools all day every day!
Waffle.io
This in essence allows you to make a kanban board out of multiple Github issue trackers. And you can have different boards that include some of the same module trackers. This is neat as our larger module series do overlap like that. So here are some examples:
- https://waffle.io/terasology/index - global tracker for all module repos. Makes it easier to catch module issues everywhere! Primary repo is our Index which seemed fitting.
- https://waffle.io/terasology/throughouttheages - tracker specific to Throughout the Ages modules. So if you are @Marcin Sciesinski you might like to just know about those
- https://waffle.io/Terasology/JoshariasSurvival - for @Josharias' series formerly known as TerraTech (which is also the name of a cool kickstarted indie game)
Additionally you can submit new issues from there that go to the "root" repo for that Waffle, which seems like a good way to submit issues for users that aren't sure where they go, but can identify the module series. The "Ready" column also offers a counter badge for our readmes, for instance TtA readme and JS readme. I picked the columns with the following in mind:
- Intake - new issues go here. Sort of an initial review column, to check out whether it is a valid issue
- Ready - effectively the backlog of issues we've "accepted" which should be almost everything
- This drives a counter ideal for new contributors which is also a link to the Waffle tracker. Not sure how often it updates though
- Next - a way to prioritize a few issues we consider important or know we want to work on next
- In Progress - somebody is working on it. Some ways to name a branch or reference via PR will automatically move an issue there (and even assign people). PRs themselves will start there.
- Done - issues that have been completed in the last week (after which they'll disappear)
Waffle.io isn't perfect - it was built by a team of interns at Rally, and while most the stuff it does is very smooth there are some obvious improvements lacking and you can get stuck on annoying things. For instance one of the big delays was how I set it up at first with my user account, meaning Waffle tagged stuff on GitHub via me - which looked kinda funny. Trying to switch it to GooeyHub proved tricky as the GitHub hooks kept recreating with cached details. Had to revoke access to my account for it to finally reset.
Speaking of - I don't think they've put in the effort to smartly limit the access requested from your GitHub account (when you do stuff in Waffle it synchronizes to GitHub via your user). That looks kinda scary. But GitHub itself seems to trust them decently enough to mention them, so that's something. Maybe an open source version will pop up we can switch to sometime. Easy enough since the main backing data is still the issue trackers on GitHub
Trello
Before finding Waffle.io I was looking at Trello to somehow do stuff cross-repo for big things like TtA. Even wrote up some specifications for integration with GitHub. Now Waffle removes the need for that work, yay!
There may still be a place there for brainstorming and organizing stuff that isn't yet ready for an issue tracker. I put together a few examples:
- https://trello.com/b/etuFcHR7/light-shadow - this was meant as a conversion of the Light & Shadow MoSCoW list. I enabled card voting and card aging, intending for that to help stay on top of what to implement next and what was missing attention. Naturally I made it so long ago that by now all the cards are aged
- https://trello.com/b/ul09FJNg/light-shadow-alpha - smaller board meant purely for issues part of alpha. The main board got too messy so instead thought to make an outright MoSCoW board, moving only alpha items in there from the main board, leaving it as a general "Everything L&S not yet prioritized". Later there could be a Beta board, a 2.0, and so on
- https://trello.com/b/HJL2iRMl/input-binding - made this way later as a simple extension for the Input Bindings thread I made for futher development on that topic. Not sure what approach is best, it may vary by project and person
Pull requests and bounties
I ran across a GitHub blog entry on pushing status updates to PRs and issues, which was part reason I went on a quest to integrate all the things. Thanks primarily to @msteiger we finally have the Jenkins Pull Request Builder plugin tested, which includes pushing a status for the build testing the PR back to GitHub. It is enabled for the Nanoware engine repo with an example here. For that we needed to fix all the unit tests real quick and I'm part way through preparing dynamic builder droplets for Jenkins to handle the extra load when it goes lives.
There is also a clahub thing that checks whether the author for a PR has signed a Contributor License Agreement. Which seems an easier and less messy thing than doing that "Signed by so-and-so" in every commit message that is in use in some places. Not going to worry about that for a while - bigger topic we still need to sort out sometime. But it seemed a cool find.
Finally I ran into Bountysource, which also has a decorator for GitHub issues and Waffle cards. Seems fairly popular with big fish like GitHub themselves, Mozilla, IBM, and so on. We've talked about bounties from time to time and the couple hundred euros or so we have sitting around are pretty dusty at this point. Question has usually been how to review and accept solutions, but an interesting option on Bountysource seems to be that anybody can set a bounty and then they get to OK whether a fix is good enough. Then Bountysource takes care of the extra details.
I can take on the duty of throwing a few token bounties around on a few of our interesting issues (and invalidate myself from ever claiming any just to be proper) and accept if complete. If one of us fixes the issue you can chose to simply "roll forward" the bounty onto something else. No fees at that point, only if somebody wants to withdraw money. At that point it is 10% which seems a tad high, but no fees elsewhere and it seems like the site provides a decent service. In comparison something like Freedomsponsors only takes 3% but does less of the work and doesn't cover any other fees you might incur.
Amusingly we could get to the top of the "available bounties" list for games pretty easily, even though the top has $4,076 in outstanding bounties. Might help with some visibility, along with the extra decoration on GitHub issues, and the "Ready" counter from Waffle. Thoughts?
They also have a little browser extension that's attempting to add a little universal "like" or "vote" button on popular issue trackers like GitHub.
All in all this whole thread is about improving visibility - organize better, integrate better, attract people better, and so on. Would appreciate feedback!