Open Source Retreat — Summer 2023
"Building and maintaining data for Rails test suites is really tricky. Myself and @ArrowsHQ are sponsoring @kaspth to work on solving this problem! Join the cause and get early access"
This Open Source Retreat is an entirely new concept, where you'll get to follow along on a private GitHub Repo as I build Oaken, a Ruby gem focused on overhauling Rails' fixtures/seeds, over 3 months and then it's open sourced. From Aug 1 to Nov 14, you get to: connect with other enthusiastic Rubyists, see how clean Ruby APIs are made, and how real gem code evolves over time in pull requests. I'll send you weekly recaps to digest what's happened, what's next and where you can contribute too. Click here to read a sample recap.
Hi! I'm Kasper, and I have a long history of contributing to various Open Source libraries. I'm the 12th contributor to Rails by commit count, and that's mostly from reviewing & merging over a thousand contributor pull requests.
Everything I've learned in Open Source has been directly transferrable to my day job working on SaaS apps and making me a better developer. So this is plenty useful if you're not interested in trying to contribute to Open Source.
We're almost at launch, can I still join?
Yes! We've got a version of Oaken now that you'll be able to bundle install and start using. Some things are still in flux as we're prepping to open source it. Joining gets you early access and supports development.
You can get caught up quickly by heading to the repo's Discussions tab. Read the Welcome announcement and introduce yourself!. Then read the weekly recaps in order. The recaps have all the pull requests with extra context, letting you dive in to any you find interesting.
After you join, accept the repository invite, then you'll automatically watch the private repository on GitHub and every PR, discussion and comment will be sent your way. It's usually a great way to start building context for how a codebase is actively evolving, and getting ideas for where it could go next.
The Gem We'll Open Source
Part 1. Most Rails apps struggle with building test data, and the default YML Fixtures are tough to wrap your head around using. So people opt for Factories, which are fine at first, but can become messy as apps grow. I have some ideas for blending these two in new ways.
Part 2. Once we've got nicer fixtures, we'll look at establishing new concepts that'll let us wrap database seeds as well. Particularly letting database seeds become a superset of test fixtures.
Part 3. We'll introduce some more organizational concepts to help users think about their app's Object Graph through their test and seed structure.
Part 4? We'll see how the other parts play out first, but I have some ideas for an alternative to generating model data.
Other Highlights
✨ Seeing Ruby meta programming in practice, and how to curtail it in an implementation.
✨ Learning how to build context in a codebase — interactively and incrementally.
✨ Experiencing a Good First Repo, that you can have an active hand in nurturing along.
Since this is live, what happens?
Some of these things may be subject to change as we go along. Since I'll be building live, I can't guarantee that everything shakes out exactly as I've described here. I'll tweak continuously so you get the most out of this.
Feel free to send questions, concerns or feedback to hey@kaspth.com. Thank you for your time!