Skip to content

Releases: Shopify/tapioca

v0.6.0

17 Dec 22:15
8cb17b5
Compare
Choose a tag to compare

What's Changed

This is a major release on our path to releasing 1.0 version. It includes some headline features, like Active Record relation generation and doing parallel RBI generation (which really helps with --doc mode). But it also includes some breaking changes, especially around Tapioca configuration.

If the addition of ActiveRecordRelations generator ends up creating too many errors in your code, you can always --exclude ActiveRecordRelations while migrating to this version and then clean up the errors later. The behaviour of other Active Record generators will change to reflect the fact that relations are not being generated.

🚧 Breaking Changes

  • Refactor config infrastructure to be integrated with Thor by @paracycle in #659

✨ Enhancements

🐛 Bug Fixes

  • Support ActiveRecord::Enum for abstract classes by @etiennebarrie in #555
  • Fix eval'ed constants not being generated in gem RBI generation by @paracycle in #589
  • Generate typed store accessors in their own module by @Morriar in #587
  • Exclude anonymous or value constants from DSL generation by @paracycle in #595
  • Sanitize type aliases by @vinistock in #609
  • Fix support for abstract singleton class methods by @mutecipher in #615
  • Remove stale gem rbis on generate by @vinistock in #616
  • Compare modules by identity for Tapioca::Compilers::Dsl::Base#processable_constants by @etiennebarrie in #627
  • Fix reflection target class existence check by @paracycle in #634
  • Properly load reflections for namespaced has_many relations by @jflinter in #637
  • Eager load constants registered for autoload after loading gems by @paracycle in #639

🛠 Other Changes

New Contributors

Full Changelog: v0.5.4...v0.6.0

v0.5.6

03 Dec 18:19
Compare
Choose a tag to compare

This is a bug-fix release from the 0.5 stable branch

What's Changed

🐛 Bug Fixes

  • Compare modules by identity for Tapioca::Compilers::Dsl::Base#processable_constants. #627
  • Remove stale gem RBIs on generate. #616
  • Fix support for abstract singleton class methods. #615
  • Sanitize type aliases. #609
  • Exclude anonymous or value constants from DSL generation. #595

Full Changelog: v0.5.5...v0.5.6

v0.5.5

25 Nov 22:59
Compare
Choose a tag to compare

What's Changed

🚧 Breaking Changes

  • Bump dependency versions to prepare for requires_ancestor change. #591
    Note: This means that, from this version on, Tapioca has a minimum dependency on Sorbet version 0.5.9204 released on October 06, 2021.

🐛 Bug Fixes

  • The doc option should not have a default value. #566
  • Support ActiveRecord::Enum for abstract classes. #555
  • Fix eval'ed constants not being generated in gem RBI generation. #589
  • Generate typed store accessors in their own module. #587

🛠 Other Changes

  • Add pessimistic version dependencies on other Shopify gems. #633

Full Changelog: v0.5.4...v0.5.5

v0.5.4

26 Oct 16:12
Compare
Choose a tag to compare

🐛 Bug Fixes

  • Fixed a problem with generating RBI files for default gems (#562)

v0.5.3

21 Oct 22:04
Compare
Choose a tag to compare

⚠️ Alerts

  • Tapioca now requires a minimum Sorbet version of 0.5.6200 (released Jan 2020)

✨ Enhancements

🧹 Changes

  • Remove unparser as a direct dependency (#519)

v0.5.2

16 Sep 20:03
5d0898a
Compare
Choose a tag to compare

🐛 Bug Fixes

  • Load ConstantLocator early to make sure we don't misattribute constant locations (#493)
  • Load Rails before requiring the Gemfile, which is needed for some gems to load properly (#500)

✨Enhancements

  • Support modules that declare SmartProperties properties. (#502)

v0.4.27

16 Sep 20:01
113838a
Compare
Choose a tag to compare

🐛 Bug Fixes

  • Load ConstantLocator early to make sure we don't misattribute constant locations (#493)
  • Load Rails before requiring the Gemfile, which is needed for some gems to load properly (#500)

v0.5.1

08 Sep 18:10
Compare
Choose a tag to compare

🧹 Changes

  • Bump rbi to v0.0.4
  • Remove rake as a runtime dependency

v0.5.0

07 Sep 16:35
f5380aa
Compare
Choose a tag to compare

This is quite a large release that changes many things (for the better, we hope):

⚠️ Alerts

  • sync and generate commands have been deprecated and replaced by a single gem command. (#414)
  • Support for Ruby 2.4 and 2.5 have been dropped. If you still need to use Tapioca on these Ruby versions, you will have to continue using the 0.4.x versions. (#339, #351)
  • The API of DSL generators have changed slightly, so if you have custom DSL generators, you will need to upgrade them to the new syntax that uses the RBI gem instead of Parlour. (#388)
  • Our main branch has been renamed to main.

🆕 New Features

  • A new DSL generator for exposing nested ActiveSupport::Concern modules properly. (#360)
  • A new DSL generator for the Config gem. (#372)
  • A new DSL generator for ActiveStorage. (#416)
  • A new DSL generator for ActiveModel::Attributes. (#419)
  • A new DSL generator for AASM. (#463)
  • Better generation for mixes_in_class_modules on Sorbet versions that support multiple arguments to it. (#363)
  • DSL generators have built-in access to reflection helpers like name_of, superclass_of, etc and are advised to use them over calling the normal reflection methods. (#418, #481)

🐛 Bug Fixes

  • Compile generic types in signatures using the correct constant (#412)
  • Do not generate empty ActiveJob classes. (#345)
  • Never sort mixed in modules, since include/extend order is important. (#392, #405)
  • Properly root namespace CollectionProxy generic types. (#439) (thanks @fsateler)
  • Make Tapioca work with Bundler 2.22.25+ (#446, #460)
  • Tapioca no longer crashes if the target of helper method proxies do not exist. (#448)
  • Rename Tapioca::Gemfile::Gem constant to Tapioca::Gemfile::GemSpec to prevent confusion with top-level Gem constant in generate RBI file for Tapioca itself (#475)
  • Fix load ordering that would fail to autoload some constants from gems using Zeitwerk and implicit namespaces (#480)

✨Enhancements

  • Enchaned support for better IdentityCache RBI generation with cache aliases support. (#369)
  • If a job class has overridden Sidekiq methods, the Sidekiq generator does not generate them. (#482)
  • Added --verify flag to tapioca sync/gem. (#364) (thanks @jeffcarbs)
  • Added --exclude-generators flag to tapioca dsl. (#382) (thanks @jeffcarbs)
  • Added --file-header flag to all tapioca commands to turn on/off the generated file header comment. (#389)
  • Better file header comment for the require.rb generated by tapioca require command. (#344)
  • Add --verbose flag to tapioca dsl to output which constant is being processed. (#402)
  • Clean up flags to various tapioca commands. (#407)
  • DSL generators are always run in alphabetical order to ensure include/extends are deterministic. (#478)

v0.4.26

06 Sep 15:38
d2f0898
Compare
Choose a tag to compare

This is a bug-fix release that fixes an Tapioca RBI file issue and a load order problem

🐛 Fixes

  • Rename Tapioca::Gemfile::Gem constant to Tapioca::Gemfile::GemSpec to prevent confusion with top-level Gem constant in generate RBI file for Tapioca itself (#475)
  • Fix load ordering that would fail to autoload some constants from gems using Zeitwerk and implicit namespaces (#480)