You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
One of the significant benefits of Effection is the ability to compose operations. We can increase the value provided by this benefit by increasing the number of special-purpose operations that can be reused. Ideally, no one should have to write an operation already written by someone else. Currently, the easiest way to reuse operations is to copy and paste the code.
This has many downsides,
The existing operations are not very discoverable
Once copied, they're not easily versioned
Code snippets are usually not documented
They don't have tests.
The result of all of this is that everyone using Effection spends more time writing operations than others have already written, which increases friction and slows down the adoption of Effection.
Approach
I propose creating a contrib monorepo where we will store all reusable operations. Anyone can create RPs against this repo. The PR will publish previews, and once merged, the merge operation will automatically get published.
Detailed Design
We need to flash this out, but I think we should make it :
Deno first and publish to NPM
One file per operation with a corresponding test
Use typedocs to document the operation so that documentation will be available in the editor
Prior art
Several projects have done this successfully.
Backstage - has all its community plugins in one monorepo. They also keep the main project source code in that repo, which we shouldn't do. Having everyone in one monorepo helped them grow the plugin ecosystem to over 200+ in a few years
DefinitelyTyped - types for many packages with auto-publishing to @types namespace. I think TypeScript compiler suggests to check if @types/ package exists for a package with types.
The text was updated successfully, but these errors were encountered:
Motivation
One of the significant benefits of Effection is the ability to compose operations. We can increase the value provided by this benefit by increasing the number of special-purpose operations that can be reused. Ideally, no one should have to write an operation already written by someone else. Currently, the easiest way to reuse operations is to copy and paste the code.
This has many downsides,
The result of all of this is that everyone using Effection spends more time writing operations than others have already written, which increases friction and slows down the adoption of Effection.
Approach
I propose creating a
contrib
monorepo where we will store all reusable operations. Anyone can create RPs against this repo. The PR will publish previews, and once merged, the merge operation will automatically get published.Detailed Design
We need to flash this out, but I think we should make it :
Prior art
Several projects have done this successfully.
@types
namespace. I think TypeScript compiler suggests to check if@types/
package exists for a package with types.The text was updated successfully, but these errors were encountered: