Releases: Shopify/tapioca
v0.9.3
v0.9.2
What's Changed
✨ Enhancements
- Track proc bindings of existing signatures by @vinistock in #1064
- Handle the Ruby root in source locations listener by @vinistock in #1065
🐛 Bug Fixes
🛠 Other Changes
- Migrate off probot-CLA to new GitHub Action by @cursedcoder in #1067
- Rework method/parameter name validation to use the compiler by @paracycle in #1066
New Contributors
- @cursedcoder made their first contribution in #1067
Full Changelog: v0.9.1...v0.9.2
v0.9.1
What's Changed
✨ Enhancements
- Parallelize RBI parsing to speed up the
check-shimscommand by @Morriar in #1056 - Add original gem source location to RBIs by @vinistock in #1025
- Add enum column support to
ActiveRecordColumnsby @q3aiml in #1000 - Track class new in ConstantDefinition by @vinistock in #1044
- Include excluded gems in verify logic by @adisonlampert in #1058
🐛 Bug Fixes
- Fix method name validation edge-case by @paracycle in #1045
- Do not index files typed: ignore when running
check-shimsby @Morriar in #1054 - Do not remove final newlines from annotations by @egiurleo in #1059
🛠 Other Changes
- Upgrade Ruby LSP to v0.2.0 by @vinistock in #1043
- Remove
T.unsafefrom extension method call by @sambostock in #1047
New Contributors
- @q3aiml made their first contribution in #1000
- @sambostock made their first contribution in #1047
- @adisonlampert made their first contribution in #1058
Full Changelog: v0.9.0...v0.9.1
v0.9.0
What's Changed
🚧 Breaking Changes
✨ Enhancements
- Use
--configand--postrequirewhen calling theinitcommand by @Morriar in #957 - Handle multiple annotations repositories by @Morriar in #955
- Add
--environmentflag todsl/gemcommands by @paracycle in #979 - Support authentication for private annotations repositories by @Morriar in #963
- Check-shims command also look inside the sorbet/rbi/annotations directory by @Morriar in #991
- Read private repo credentials from a the
netrcfile by @Morriar in #990 - Also check
sorbet/rbi/todo.rbifor duplicated shims when running thecheck-shimscommand by @Morriar in #992 - Add
--typed-overridesoption to the annotations command by @Morriar in #999 - Provide a meaningful help for HTTP errors when fetching annotations by @Morriar in #1008
- Compile RBIs for foreign constants by @egiurleo in #903
- Properly attribute mixin locations by @egiurleo in #1010
- Filter out mixins that weren't performed in current gem by @egiurleo in #1012
- Disable mixin tracking when we do includes for probing by @paracycle in #1019
- Support for
activerecord-typedstorev1.5.0 by @etiennebarrie in #976
🐛 Bug Fixes
- Fix type variable patch to respect references to late defined types by @paracycle in #944
- Skip
debugandfakefsgems by @st0012 in #947 - Better name validation for methods and parameters by @Morriar in #987
- Fix type of
column_typeparameter forhandle_unknown_typemethod by @paracycle in #997 - Filter engines in application directory so they are not loaded by @wildmaples in #995
- Dsl::Compilers::ActiveRecordRelations: fix #find_sole_by, #sole by @kivikakk in #1007
- Use default Gemfile path instead of Rails root when listing engines by @vinistock in #1018
- Fix Rails engine symbol loading by @paracycle in #1028
- Do not mark constants as seen before generating RBI for them by @Morriar in #1040
- Fix command documentation for check-shims by @Morriar in #956
- Protobuf: Initializer, getter and setter for optional fields with message subtype should be nilable by @andrewn617 in #966
- ActiveModel DateTime Attribute is a Time, not a DateTime by @louissobel in #1036
- Use
T.untypedsafe nilability by @paracycle in #1035
🛠 Other Changes
- Improve README documentation about
tapioca gem --allby @Morriar in #954 - Fix typo in README by @Morriar in #953
- Generate the
helpblock from the README by @Morriar in #958 - Refactor the
interesting_ancestors_ofmethod in the mixins listener by @egiurleo in #967 - Upgrade Ruby LSP to 0.0.4 by @vinistock in #975
- Ensure test project cleanup by @vinistock in #1024
- Add line numbers to the ConstantDefinition tracker by @vinistock in #1029
New Contributors
- @st0012 made their first contribution in #947
- @wildmaples made their first contribution in #995
- @kivikakk made their first contribution in #1007
- @louissobel made their first contribution in #1036
Full Changelog: v0.8.0...v0.9.0
v0.8.3
v0.8.2
What's Changed
This release includes a bug fix to filter engines defined in the application's directory so that they are not loaded during gem RBI generation.
🐛 Bug Fixes
Filter engines in application directory so they are not loaded #995
Full Changelog: v0.8.1...v0.8.2
v0.8.1
What's Changed
This is a small bug-fix release that changes how Tapioca does backward compatible type_member/type_template processing so that it respects references to not-yet-declared types in the blocks passed to those methods.
🐛 Bug Fixes
- Fix type variable patch to respect references to late defined types by @paracycle in #944
Full Changelog: v0.8.0...v0.8.1
v0.7.3
What's Changed
This is a small bug-fix release that changes how Tapioca does backward compatible type_member/type_template processing so that it respects references to not-yet-declared types in the blocks passed to those methods.
🐛 Bug Fixes
- Fix type variable patch to respect references to late defined types by @paracycle in #944
Full Changelog: v0.7.2...v0.7.3
v0.8.0
What's Changed
This release is aimed at removing some of the pain points of working with Tapioca. Towards that goal, the headline features added are:
- Tapioca now automatically checks and corrects RBI strictness to work around mismatched method definitions. This allows you to not have to reach for
typed_overridesmanually. - Tapioca now requires gems from the
Gemfilethat are marked asrequire: falseas well. This allows you to not have to add a lot of entries to therequire.rbfile manually. - Tapioca now generates a
sorbet/configfile which ignoresvendor/directory. - Tapioca now generates the documentation of methods/constants in the generated RBI file by default.
- Tapioca now allows you to check your shim RBI files against gem/DSL RBIs and Sorbet payload RBIs to find shim definitions that are no longer needed.
- Tapioca now includes a prototype of the
annotatecommand to fetch signature/type annotation RBI files from remote sources. This command is in its early stages and will be improved in future releases, but we would love to hear what you think about it.
We also have an updated README, a cute new logo and documentation for how to create your own DSL compilers. 🎉
✨ Enhancements
- Prototype: Add
annotationscommand by @Morriar in #930 - Check generated RBI files for correctness by @Morriar in #842
- Make DSL generation also autocorrect the gems RBI strictnesses by @Morriar in #837
- Need less entries in
require.rbby @paracycle in #818 - Set default if
factoryprop is set by @jeffcarbs in #833 - Add
tapioca/dslentrypoint for custom DSL compilers by @paracycle in #844 - Always ignore the
vendor/directory form the sorbet/config by @Morriar in #848 - Check duplicates between shims and Sorbet's RBI payload by @Morriar in #879
- Fairer queueing for parallel workers in RBI generation by @egiurleo in #889
- Validate config values for arrays and hashes by @Morriar in #898
- More effectively determine method ownership for RBI generation by @egiurleo in #896
- Add descriptive message for unexpected DSL exceptions by @paracycle in #913
- Enable documentation generation by default by @Morriar in #920
- Add support for :oneof fields on protobuf messages by @andrewn617 in #929
🐛 Bug Fixes
- Explicitly load descendants patch in ActiveSupport by @KaanOzkan in #924
🛠 Other Changes
- Improve README by @Morriar in #917
- Add README entry for creating custom DSL compilers by @Morriar in #921
New Contributors
- @egiurleo made their first contribution in #889
- @andrewn617 made their first contribution in #929
Full Changelog: v0.7.2...v0.8.0
v0.7.2
What's Changed
🐛 Bug Fixes
- Avoid generating syntax errors for capitalized protobuf fields by @Morriar in #878
- Bump spoom to v1.1.11 by @Morriar in #886
- Bump
rubocop-sorbetto v0.6.8 by @Morriar in #910 - Support new type variable syntax by @KaanOzkan in #902
Full Changelog: v0.7.1...v0.7.2