Uh oh!
There was an error while loading. Please reload this page.
docs(updating): update v9 migration guide to add missing breaking changes - #4620
Conversation
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Co-authored-by: Shane <shane@shanessite.net>
Co-authored-by: Shane <shane@shanessite.net>
Co-authored-by: Shane <shane@shanessite.net>
thetaPC
left a comment
There was a problem hiding this comment.
Heads up: line 11's :::info Breaking Changes is already migrated to :::info[Breaking Changes] in the pending main sync, so if that lands first you'll hit a one-line conflict here. Take the bracketed form.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Issue number: internal
---------
## What is the current behavior?
Currently, `@ionic/migrate` covers 15 of the breaking changes in the v9
upgrade guide. The Angular `moduleResolution` change and `@ionic/core`'s
new `exports` field aren't in there, and neither are about a dozen
others.
There's also a gap for vanilla apps: `detectFrameworks` only knows
`@ionic/angular`, `@ionic/react`, and `@ionic/vue`, so a vanilla app
prints "No @ionic/{angular,react,vue} dependency found" and exits. Every
migration marked `framework: 'core'` is unreachable for the apps it was
written for.
## What is the new behavior?
This PR adds 14 migrations, taking the registry to 29 (12 auto-fix, 17
report-only). The full table is in the new
`packages/migrate/docs/v9.md`. The README is version-agnostic now, so
the next major gets its own page instead of a rewrite.
We also detect `@ionic/core` as a framework, so vanilla apps run the
`core` migrations and get their pin bumped. We gate the version check on
the binding package when there's one, because an app on a v9 binding
with a stale `@ionic/core` pin is already migrated, and taking the
lowest major would re-run the single-shot import rewrite and corrupt it.
## Does this introduce a breaking change?
- [ ] Yes
- [X] No
## Other information
Note: this PR is based off of the end result of
[ionic-docs#4620](ionic-team/ionic-docs#4620).
Ten of the docs anchors these migrations link to only exist on that
branch.
Two v9 changes stay uncovered on purpose, with the reasoning in
`docs/v9.md`: React Router's `/*` suffix for nested routes, and which
components Angular 22's `OnPush` default affects. We do flag the Angular
22 version itself.
This PR does the following:
Preview