We’re pleased to announce Hound, a hosted service that comments on Ruby style guide violations in your GitHub pull requests.
Hound is currently free and available for public and private GitHub projects. We intend to charge in the near future to ensure Hound is sustainable, but public projects will continue to be free. Hound is also open source.
At thoughtbot, we write code that follows our open source style guide.
A consistent code style emphasizes care and team communication. It encourages other developers working in the code to keep the campground clean. It lowers the cognitive overhead for a developer reading code and lets them focus on higher-level concerns, such as the domain and the logic. It also avoids unnecessary debate during code reviews.
Historically, if we saw a style guide violation when we reviewed our teammates’ code, we would comment on the line in the GitHub pull request.
That worked relatively well, but had some problems.
It was socially awkward. We tended to feel sheepish offering feedback such as:
80 character limit
Single quotes unless interpolating
It can be tedious to make many of those comments, especially for new developers on a project.
It can cause reviewers to focus on low-level style concerns instead of the primary code change.
All of those reasons can add up to not wanting to comment on every style guide violation, which can let them slip through, which erodes at the benefits of style consistency.
Given those problems, a program is better than a human for reviewing code style. Hound handles checking for style violations so we humans don’t have to.
Hound reviews your Ruby code when a pull request is opened or updated. If Hound finds any style violations in the modified code it will comment on the appropriate line.
We’re also very pleased to experiment with a model of open sourcing a hosted service from the beginning. There are so many good reasons to do this in general, and for Hound specifically:
- It provides transparency, as users are able to understand exactly how Hound works.
- It creates an ecosystem where third parties may extract libraries from Hound.
- Third parties may submit pull requests to fix their own bugs, increasing the number of people who can help support Hound for all its users.
- It places the focus value not on our super-secret-source-code but on our handling of the hosting, billing, and maintenance of that source code.
- It provides security through the “many eyes” approach, which we believe is better than security through obscurity.
We believe Hound can be financially successful while being open source.
Hound has been used on over 300 GitHub projects. We’ve been using it internally for some time. It only takes a minute to start using it on your project.