Because of a little thing called semantic versioning. A change can be 'minor' in the sense that it doesn't really affect how the vast majority of users use your package, but still have changes that are technically breaking.
I'm aware of that. I'm asking why the tiny breaking changes couldn't just wait for the next major release, because OP is correct that frequent version number bumps scare off potential adopters.
Used carefully, semantic versioning shouldn't just describe the development choices you made, it should encourage you to make more conservative choices to avoid unnecessary breaking changes, small or large.
Svelte 4 was a complete structural overhaul of the `sveltejs/svelte` repo — turning it into a monorepo, converting all the `.ts` modules into typechecked `.js` files, etc, modernising our dependencies and our workflows, dropping CJS and so on.
Svelte 5 is a complete internal rewrite of the code itself.
Could we have achieved both in a single release? With perfect planning and foresight (at a time when we didn't yet know what Svelte 5 would entail) then maybe, yes. But more likely, it would have just jeopardised both things, and made it near-impossible to ship bugfixes for the current stable version. That's why we opted for this approach, and carefully communicated it (through our own dev vlog, our release notes, our blog posts, our podcast appearances and so on).
Managing an open source project beyond a certain level of complexity and usage is _hard_. These are the sorts of choices that are sometimes necessary. I'm very confident that we made the right one.
FWIW, I didn't intend either of my comments to be a personal attack. I understand how complicated running an open source project as large as yours can be, and I don't envy your task. I was just agreeing with the original poster about how these things look to those outside the community. Your explanation for how that happened makes a lot of sense.
Similar approach seems to have worked well for Java. There are long term releases like versions 8,11,17 and everything in between are kind of catch up releases with short term support cycle. Enterprises typically adopt LTS releases while enthusiasts/startups/developers would tinker with other short-term releases and give valuable feedback back to the community.