Skip to content

[TRACKING] Breaking Changes Made During the RC Phase #1044

Open
@crutchcorn

Description

Well y'all, I hate to say it, but we'll have a few breaking changes during our RC "stable" phase.

We just released our first two breaking changes in 0.38.0:

  • Dropped support for TypeScript 4.9 and 5.0
  • Dropped support for Angular 17.3 and 18.x

And, unfortunately, it's not the only two breaking changes we'll be making. In addition, we need to introduce two breaking changes to our React adapters:

  • Remove form.useField API, as it does not follow the rules of React Hooks
  • Remove form.useStore API, as it does not follow the rules of React Hooks

Which will be merged here shortly as part of 0.39.0: #1035

While these breaking changes are unfortunate, there were a few factors at play:

  1. I assumed dynamic hooks followed the rules of React Hooks, which turned out to be false, only discovered once the Compiler was more generally available
  2. I didn't think we could integrate TanStack Store's fresh Derived API would be fast enough to validate in TanStack Form for some time. I was wrong.
    2b) Once I realized we could use TanStack Store, working on it made it clear that there were bugs in the Angular adapter and TypeScript types that we needed to ship downstream

I wish I could have foreseen these issues ahead of time, but alas I am only human. Needless to say, once we hit v1, we'll be much more careful to introduce these breaking changes in chunks (ala major versions) and with migration guides to avoid problems.

Moreover, to help make this second batch of React breaking changes a little easier, we'll help write migration guides for form.useField and form.useStore in our changelog for everyone impacted.

Again, immense apologies on my end. I was the one who made the call to introduce these breaking changes prior to v1. We'll work hard on avoiding doing so again in the immediate future.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions