Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Either remove data classes, or make them not data classes #57

Closed
zach-klippenstein opened this issue Nov 22, 2019 · 1 comment · Fixed by #69
Closed

Either remove data classes, or make them not data classes #57

zach-klippenstein opened this issue Nov 22, 2019 · 1 comment · Fixed by #69
Assignees
Milestone

Comments

@zach-klippenstein
Copy link
Collaborator

Data classes are bad for library binary compatibility (see Jake's blog post). The only data class in our core public API is WorkflowTestParams (and some diagnostic stuff, but that's going to remain unstable even in 1.0).

UI data classes are another matter.

@zach-klippenstein
Copy link
Collaborator Author

Turns out there are almost no data classes in our public API – really just WorkflowTestParams.

@zach-klippenstein zach-klippenstein changed the title Data classes break binary compatibility – should we remove them from our public API? Make WorkflowTestParams not a data class, or figure out how to remove it entirely Jun 13, 2020
@zach-klippenstein zach-klippenstein changed the title Make WorkflowTestParams not a data class, or figure out how to remove it entirely Either remove data classes, or make them not data classes Jun 13, 2020
@zach-klippenstein zach-klippenstein transferred this issue from square/workflow Jun 27, 2020
@zach-klippenstein zach-klippenstein added this to the v1.0.0 milestone Jun 27, 2020
@zach-klippenstein zach-klippenstein self-assigned this Jun 28, 2020
zach-klippenstein added a commit that referenced this issue Jun 28, 2020
The only such data classes were `WorkflowTestParams` and `RenderingAndSnapshot`.
The former has no need to be a data class, as it's just passed as configuration
to the test function, and the latter is effectively just an alias for `Pair` and
the shape is fundamental to the workflow runtime design so it won't change.

There are still some data classes in the UI modules, but #55 will mark all those
as `ExperimentalWorkflowApi` before releasing 1.0.0.

Fixes #57.
zach-klippenstein added a commit that referenced this issue Feb 5, 2021
This is blocked by an IR bug that crashes the compiler on any StatefulWorkflow subclass.
#144

Closes #57.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant