I spotted a news items this morning regarding linthub. Capitalization styles aside, it's great to see another tool available for public repos that automates a common task that you should be running when committing code to a project.
For a developer, time is everything. It takes a certain amount of time to get in the zone, a certain amount of time to complete a task, etc. If you're being pragmatic about your testing and style, it also takes a certain amount of time to run those tests and double check your formatting.
That's why many of us practice automated testing, continuous integration, and other "do it often and do it automatically" concepts. You commit your code to the proper branch, and that triggers a cascading series of events that you can leave to the machines instead of your own brain. You move onto the next task, and only worry about potential issues if they are actual issues.
My current automation flow looks something like this:
- GitHub Client for Mac -- Make it easy to view changes, make commits, switch branches, and create merge requests.
- CodeShip -- Continuous delivery that kicks off when a commit happens. Sets up the tests, executes them,
- Guard -- Local tracking and triggers when files change.This calls RuboCop and RSpec to validate tests and perform static analysis, respectively. While this is great, it does require local setup and doesn't tie directly into the overall repo.
The Guard portion is awesome for instant feedback when my code goes awry, but it's not very useful for enforcing proper standards across the board. When someone commits bad code because they forgot to run analysis locally, the time costs can snowball (or even creep slowly over time, which is worse). Having a tool like linthub available to both identify and track these issues is one of the best things about developing in 2015.
Ruby hacker, gamer, mathematician, father, etc.