svelte icon indicating copy to clipboard operation
svelte copied to clipboard

docs: note html structure breaking change

Open dummdidumm opened this issue 1 year ago • 4 comments

dummdidumm avatar Aug 23 '24 16:08 dummdidumm

⚠️ No Changeset found

Latest commit: fc576bab0b4f37f5736c162a54b10ad49df61c7e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

changeset-bot[bot] avatar Aug 23 '24 16:08 changeset-bot[bot]

I still think we ought to consider this a bug. Fixing it is tricky but surely not impossible

Rich-Harris avatar Aug 23 '24 17:08 Rich-Harris

The change is still breaking in other cases, we can switch the example if you want

dummdidumm avatar Aug 23 '24 21:08 dummdidumm

Attempted to fix the tbody case statically previously, but more involved cases were very hard to fix. But I just thought of another idea: Special-Case runtime function for descending into tr elements, which checks if the node is a tbody and in that case descent once more. Maybe that could work?

dummdidumm avatar Aug 23 '24 21:08 dummdidumm

I wouldn't consider this a bug, but given that Svelte 4 would patch mismatches from SSR HTML (such as the table case), and we no longer do that in Svelte 5, we need to just document this. We already capture most cases via SSR, but that doesn't take into account that Svelte 4 allowed the SSR to be different from the client. We only allow that in Svelte 5 in certain cases (like if blocks), so it will definitely be a migration note unless we want to support all types of mismatch like Svelte 4 did.

trueadm avatar Sep 17 '24 23:09 trueadm

It's not just about hydration. It's about the fact that this works and this doesn't. It's an ugly breaking change and — since it's valid HTML — definitely a bug

Rich-Harris avatar Sep 18 '24 02:09 Rich-Harris

Per https://github.com/sveltejs/svelte/pull/12628#issuecomment-2361774370, I've changed my view of this. I think the compiler errors/warnings could be more informative, but that's a separate chunk of work

Rich-Harris avatar Sep 19 '24 17:09 Rich-Harris