I realize I've expressed being against commit hooks, but I don't think I've explained why.
Committing is always good. I never want to discourage people from committing. I realize there's value in influencing the quality of code, but I believe that investment should be made at the integration layer (CI and PR's). Version control should be about retaining history, so that we can learn how code came about. You can't do that if your version control stops you from storing your work until you've made it presentable.
In the same vein, I want to advocate using pull requests as learning opportunities or teachable moments, rather than customs checkpoints. No one's going to lose their job because they didn't put curlies around an if block. So, the Watchmen of this little world, we ain't. Instead, Committers get to be shepherds and explorers within the world of code. We get to learn from one another and improve our skills as we grow the value of the product. If we just enforce rules, it's difficult to learn why those rules are effective. So again, I'd encourage giving developers access to the tools that improve our codebase, and impressing upon them the reasons we value each tool.
Finally, imperfections within the code (in moderation) are often the best motivation to improve your craft. Refactoring is the most effective method of learning how and why a system works as it does. Teaching developers to spot potential problems encourages them to refactor early and often. Letting imperfect code through the integration process can drive developers to grow, while still keeping a handle on a product's technical debt.
I think the style guides and the linting have definitely given this product a lot of value, but I want to voice concern before we head too far down this path. Every project has a different set of circumstances and requirements. I'd like to make sure everyone who works on this project can navigate us towards the destination, rather than just being able to keep us on the road. I want to encourage committing early and often, using pull requests as learning opportunities, and giving developers the fire to improve. I believe this is the best way to build a community that values the same things, not one that conforms to the style du jour.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4