Tim Gilboy

Sourcery 2.0 - Continuous code review to make your code more maintainable

by•

Sourcery makes sure all of your code is following best practices from standard Pythonic rules to issues that pop up during code reviews. Add to your IDE to get instant feedback, use the CLI to review existing code, or integrate it into your CI.

Add a comment

Replies

Best
Tim Gilboy
Hey Product Hunt 👋 - @brendan_maginnis, @nick_thapen, and I are back and we’re very excited to be sharing the new version of Sourcery with you all. Sourcery sits in the background while you work analyzing your code, finding problems, and suggesting improvements to make sure it’s following best practices. You can think of it as the first layer of code review, catching mistakes before a human reviewer needs to take a look. As always - Sourcery runs fully locally, so your code is private. Here’s what’s new: 1. Extend Sourcery to handle your best practices. You shouldn’t have to make the same comment more than one time in a code review. When you see issues coming up frequently you can create a Sourcery rule, and these issues will get caught for your whole team before the code is merged. 2. Leverage Pre-Built Rulesets. We’ve taken the Google Python Style Guide and made it available as a (set of Sourcery rules). Pick and choose the rules that make sense for you (and customize them how you want) or add in the full ruleset. 3. CLI for bulk review. We’ve extended the Sourcery CLI to make it more powerful (and much quicker) for reviewing multiple files, or your entire repo. With a single command you can scan hundreds of files, identify common issues, and make bulk changes to improve your code. 4. Review every commit with Sourcery in CI. Let Sourcery handle the first layer of your code reviews by adding it to your CI. Sourcery is easily configurable to run only on changed code to help cut down on noise from legacy code. Anyone can start using Sourcery for free, and teams coming through ProductHunt with promo code PRODUCTHUNT2022 can use the full team version (includes full use in CI or as a pre—commit hook - see more details at https://sourcery.ai/team/) for free for 2 months.
Sean Kruzel
I use sorcery everyday for the last 2 years. I love combining it with GitHub Copilot to really speed up my development process! For example CoPilot generates code, then Sourcery improves it and fits it into our style guides. Finally there is nothing quite as satisfying as using the CLI to refactor a huge out-of-date repo. @brendan_maginnis @nick_thapen @tim_sourcery
Brendan Maginnis
Thanks @seankruzel! That's really cool how you use Sourcery and CoPilot together 🚀
Adil shaikh
Congrats on the launch
Tim Gilboy
@kaira_khan thank you!
Reka
@kaira_khan Thanks a lot.
Ali Sayed
Congrats on the launch
Tim Gilboy
@scorpi0n thank you! Let us know what you think about the new version :)
Lukas Kemkes
Love the progress, team Sourcery! Excited for our engineering team to test this out 🚀
Tim Gilboy
@lukas_kemkes thank you! Let us know what you think :)
Pranav Prakash
We have been using Sourcery for more than a year now. Our team is able to find some really good and time saving optimisations using this. I would recommend this.
Brendan Maginnis
@pranavprakash Thanks Pranav, really glad Sourcery is helpful for you
Dr. Christian Poensgen
Love it! Also, I'm a bit curious: Do you use Sourcery for Sourcery’s code?
Tim Gilboy
@dr_christian_poensgen we do! We make sure all our code is following our core rules (standard Python best practices) and then we've built out a bunch of additional rules to tackle things like making sure certain sections of our codebase are following the boundarires we want in our monorepo, making sure we're not using/extending deprecated classes in any way, enforcing that we use helper functions when we can, etc. Basically anytime something comes up more than once during a code review we try to turn it into a rule for ourselves in Sourcery Each of us has it in our IDE (including @brendan_maginnis in Vim) and then we also have it built into our IDE.
JĂ©rĂ´me Bau
Love the product and the team. Our team has been using it for quite some time. I'm especially excited about the best practices and rulesets.
Tomáš Pytel
Sourcery is an absolute gem in this area. I'm using it since the beginning and I will tell you, there is no better solution than that. It is in my must-have plugins for every IDE I'm using. Godspeed Sourcery 👍🚀
Brendan Maginnis
Thanks for the great comments @tomas_pytel!
Aakash Kapur
Great stuff and very exciting updates!
Laura Barbosa
This is a really gret tool! It really helped me to make my code more efficient .
James
Fantastic congrats on the launch
Joris Hoendervangers
Trying Sourcery for a few weeks now and I've been very impressed. It suggested useful refactorings and it works blazingly fast (with the PyCharm plugin). Probably will start using this while teaching as well!
Brendan Maginnis
Thanks @hoenie! We've heard from a few users that Sourcery is a great teaching tool, as it shows you best practices as you're writing code.
Usama Ejaz
Great product! Congratulations on the launch!
Reka
@usamaejaz Thanks a lot. We're looking forward to hearing your feedback.
Kyle Lawson
This product is great! The suggestions are helpful while still being easy enough to ignore if you have reason to. It has become such a natural piece of my IDE workflow now that I sometimes forget it's an extension
Tim Gilboy
@kylelaws0n thanks - we love hearing feedback like this!!
Reka
@kylelaws0n Thanks a lot. "It has become such a natural piece of my IDE workflow now that I sometimes forget it's an extension" That's quite a compliment. :-) We're looking forward to your feedback to the new & improved CLI.
giorgi beria
so grateful love the progress
Tim Gilboy
@giorgi_beria thank you!
Philippe Brulé
Looks cool! Will test it out.
Reka
@aboutphilippe Thanks a lot. :-) We're curious about your feedback both to Sourcery and to the Getting Started docs. https://docs.sourcery.ai/Guides/...
M.H. Lines
Hey Tim - We'd love to look into this. Can you reach out?
Tim Gilboy
@m_h_lines definitely! I just connected with you on LinkedIn, but let me know if there's a better way to get in touch
Tex Dworkin
Keep killin it!
Reka
@tex_dworkin Thank you!
Shushant Lakhyani
This is a veery helpful tool for developers!
Reka
@shushant_lakhyani Thanks a lot.
Thomas Jones
Sounds good ... can I use Sourcery on legacy projects, or will it just overwhelm me with issues ... ?
Tim Gilboy
@tjamesjones good question! You can handle legacy code in two ways: 1. Do a full project review to identify all existing issues. We recommend doing this with our command line interface (https://docs.sourcery.ai/Guides/...). You can run `sourcery review ` to check all of your existing code and get a baseline for what issues you have. You can then choose which of those you want to fix right away and which you want to wait to deal with. 2. Set up Sourcery in your CI (https://docs.sourcery.ai/Guides/...) or as a pre-commit hook (https://docs.sourcery.ai/Guides/...) and set it to only review changed code using the --diff option. Then Sourcery will only look at the changed code and only suggest changes on those.