Stephan Hagemann Profile picture
May 10 13 tweets 7 min read
🧵 A thread about gusto's newest #gradualmodularity (nah, I should say #bigrails) open source work by our very own @AlexEvanczuk: It is all about managing big rails applications with a lot of people!

There is a lot, so buckle up!

See them all at github.com/bigrails
This work is part of what the _product infrastructure_ team does at @GustoHQ!

If stuff like this is interesting to you, DM me or find me elsewhere and let's chat!
First up github.com/bigrails/stimp…! This gem makes organizing your Rails app's folders such that they work well with packwerk a breeze. Just point it at a folder and all needed autoloading is done for you! Kudos to @nganpham!
We use github.com/bigrails/bigra… to create the concept of an engineering team in our codebases as an explicit construct. This can be used to route errors, notifications, deprecations, etc. In short support for breaking down a large app by team. Which brings us to...
github.com/bigrails/code_…! We use this gem to ensure that every file in a codebase has an owner. This way, for example, we can ensure that every error can be routed to a team.
With github.com/bigrails/dange… we get to direct support for #gradualmodularization work. This gem contains a danger plugin that will make inline comments on GitHub PRs that add packwerk violations. This helps teams know about and learn about boundary violations and what to do!
That danger is github.com/danger/danger btw
We published a VSCode extension, too! github.com/Gusto/packwerk…. This extensions gives you that warm fuzzy feeling of a red squiggly line underneath a constant when you happen to create a privacy or dependency violation in the code you are writing.
If you read my book Gradual Modularization with Ruby and Rails, the gem github.com/bigrails/packa… will feel familiar. It is our implementation of the ideas from Chapter 3! It is an opinionated framework for protecting more aspects of modularity than just privacy and dependency.
Last but not least: github.com/bigrails/modul…. This gem reports modularization stats to data dog, so you can build yourself a bunch of sweet dashboards that show overall progress. We have it connected to teams, code ownership, and package protections as well.
All of these gems have seen herculean efforts by @AlexEvanczuk to get them built and to get them open sourced.

Hint: Alex will be at @railsconf next week talking about all of this stuff! railsconf.com/program/sessio…
Hint hint: a bunch of Gusties will be... including me ;)

stephanhagemann.com/posts/2022-05-…
All of this wouldn't be possible without us building on top of some amazing projects: #rubocop, #sorbet, #packwerk, and, of course, #rails

♥️

Big thanks to _all_ open source maintainers!

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Stephan Hagemann

Stephan Hagemann Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(