Skip to content

Commit 1705eb0

Browse files
authored
Merge pull request #2109 from Shopify/amomchilov-patch-1
Clarify DSL compiler contribution instructions
2 parents d66ad90 + afb33b4 commit 1705eb0

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

README.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -999,7 +999,16 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/Shopif
999999
10001000
### DSL compilers
10011001
1002-
Contributions to existing DSL compilers are welcome. However, new compilers that support DSLs for gems other than Rails should live outside of Tapioca. Please refer to [writing custom dsl compilers](https://github.com/Shopify/tapioca?tab=readme-ov-file#writing-custom-dsl-compilers) for more information.
1002+
Tapioca ships with a small collection of high quality DSL compilers for popular Ruby gems that are used heavily at Shopify, like Rails and GraphQL. We encourage the community to contribute new DSL compilers, though they shouldn't necessarily live in the Tapioca repo itself.
1003+
1004+
It's best for DSL compilers to be contributed directly to gems they apply to ([example](https://github.com/Shopify/measured/tree/main/lib/tapioca/dsl/compilers)). This way, when changes are made to the gem's DSL, the gem's DSL compiler can be updated at the same time and be versioned/released together.
1005+
1006+
If an upstream gem's maintainers don't wish to host a DSL compiler themselves, you can propose contributing it to:
1007+
1008+
1. Tapioca, if it's a gem that Shopify uses (ask us in an issue or PR)
1009+
2. A third party DSL compiler repository, like [AngelList/Boba](https://github.com/angellist/boba). These are not supported by Shopify.
1010+
1011+
For help writing a DSL compiler, please refer to [writing custom dsl compilers](https://github.com/Shopify/tapioca?tab=readme-ov-file#writing-custom-dsl-compilers).
10031012
10041013
## License
10051014

0 commit comments

Comments
 (0)