v0.11.0
What's Changed
This is release packed full of new functionality. The headline feature of this release is that Tapioca is now able to properly load Rails engines from gems both in Classic and Zeitwerk modes. This means that running bundle exec tapioca init
on a new Rails 7 app no longer results in a type-checking error. 🎉
Tapioca now also generates less extraneous top-level constant definitions in gem RBI files and can handle more DSL patterns.
Finally, there is new mode for the bin/tapioca dsl
command where you can supply filenames, as well as constants, as arguments and Tapioca will try to generate DSL RBI files for all the constants discovered in those files.
As always, a huge thank you to all the contributors that have made this release so much better.
✨ Enhancements
DSL Compilers
- Add Kredis compiler by @bdewater in #1336
- Teach ActiveRecordColumns compiler about virtual attributes by @bdewater in #1360
- Update AASM compiler to handle custom name and namespace by @jeffcarbs in #1387
- Decorate ActiveRecord::Batches methods by @bdewater in #1335
- Make scopes available for abstract classes by @Teots in #1250
- Add Active Record secure token compiler by @bdewater in #1316
- Update GraphqlInputObject compiler to skip methods from code by @jeffcarbs in #1369
- Add global callbacks to AASM compiler by @mwudka in #1396
Gem RBI generation
- Stop regenerating all value constants for reopened types by @paracycle in #1385
- Improve eager loading Rails engines when Zeitwerk is present by @egiurleo in #1329
- Load engines properly in both Zeitwerk and Classic modes by @paracycle in #1389
DSL RBI generation
- Support generating DSL RBI by path by @jeffcarbs in #968
Configuration
- Ignore
tmp
directory in generated Sorbet configuration by @salmanasiddiqui in #1353
🐛 Bug Fixes
New Contributors
- @salmanasiddiqui made their first contribution in #1353
- @Teots made their first contribution in #1250
- @mwudka made their first contribution in #1396
Full Changelog: v0.10.5...v0.11.0