vaadin / hilla

Build better business applications, faster. No more juggling REST endpoints or deciphering GraphQL queries. Hilla seamlessly connects Spring Boot and React to accelerate application development.
https://hilla.dev
Apache License 2.0
923 stars 57 forks source link

Missing files after update from 2.x.x to 25.x.x #2876

Open Lars-jnk opened 3 weeks ago

Lars-jnk commented 3 weeks ago

Describe the bug

BeforeEnterObserver, Context and ActionFn All of them were in @vaadin/router and are now gone. In doc I can find BeforeEnterObserver with the reference to vaadin/router...

I need a fast answer. I would like to continue work. Thx

Expected-behavior

No response

Reproduction

update

System Info

it's about the update from 2.5.6 to 24.5.2

Lars-jnk commented 3 weeks ago

The classes are still there in 24.4.10. But why you removed them in 24.5.0? Why are there still in the doc? And why you make every few months such major changes? It's really annoying and the next time, I will remove vaadin from my project!

platosha commented 3 weeks ago

Hello, thank you for the feedback and apologies for the hassle. That was done as part of a major refactoring in the @vaadin/router in the 2.0.0 release, which we had to do in order to keep the codebase maintainable in the long run and ship security-related updates sooner.

Regarding the TypeScript interfaces you mention, we have introduced improved alternatives in the version 2.0.0. Namely:

We will add old types back as deprecated for compatibility reasons in a coming maintenance release. Also, currently we're working on the new router documentation site. This is taking a while, unfortunately, as relying on the old toolset from the Polymer days is not a good option anymore.

Meanwhile, if you need a really quick solution, please try marking errors with // @ts-ignore for now. This should hopefully make TypeScript errors silent, the JS runtime should still support the same API.

I understand your frustration with breaking changes that occasionally happen in minor Vaadin releases. Here is the explanation of our versioning model.

platosha commented 3 weeks ago

By the way, regarding parts of the Route type, such as Context and ActionFn, removing the old types from the code to let TypeScript infer them could be enough.

Lars-jnk commented 3 weeks ago

Thx for the replay. But, it's unacceptable that you remove these classes without any hint how to fix this. Adding them later again as deprecated doesn't make it better. Next time, make them deprecated, add a hint there how to replace it, also in the doc. Then remove them in the next major release (in this case v25). And yes, the doc should be updated with the release and not weeks later.

I use hilla since it started with polymer 3 (at least I guess) and I had several such situations that costs me to much time. You have a good framework. But such kind of behavior disqualifies your whole team and one day I will leave vaadin and will never look back! I'm glad that I develop in ddd, so this step wouldn't take to much time.