Opening this as a place to keep track of what is currently breaking between 3.x (stable branch) and the upcoming 4.x (main branch).
Planned breaking changes in 4.x
[ ] modifying app code via broccoli is not going to be supported
[ ] new index.html location and format required
[ ] explicit babel config and vite (or webpack) config required
[ ] strict ES module evaluation order has made some things more eager than before
[ ] the EMBER_ENV will be controlled via Vite's --mode argument.
Currently breaking behaviors that we're working on
[ ] Embroider CI is currently only testing against ember canary. We plan to expand support backward again but haven't decided how far.
[ ] we skipped tests for app.import with custom outputPath. We may or may not keep support for this feature.
[ ] we skipped the watch-mode tests because they need to change structure and it would be better to do that after we've turned off app rewriting. Specific additional things that need to go into those watch tests, because their coverage got dropped from stage2 tests as they no longer live in stage 2:
[ ] changes in app.css are propagated at rebuild
[ ] public assets are included
[ ] updated public asset
[ ] added public asset
[ ] removed public asset
[ ] webpack support is gone right now, we intend to do an inverted-control version of webpack too.
[ ] We needed to skip some tests in windows because the build was timing out. We should do some basic analysis why things are running so slowly (or hanging) and see if we can re-enable these tests
[ ] we've skipped engines tests and they need to be re-enabled and fixed before release
[ ] we've skipped fastboot-app-test and they need to be re-enabled and fixed before release (with possible new way of running fastboot after a vite build)
Things to clean up before release
[ ] //TODO move the extra forwardslash handling out into the vite plugin
Things we may want to break but haven't yet
[ ] staticAddonTrees and staticAddonTestSupportTrees set to false was intended as a more-likely-to-work initial adoption mode. But they break things at least as often as they help, because they aggressively pull files into the build that can have problems. People have have a better adoption experience if we always keep them true and instead document how to identify when some small number of modules are not found at runtime.
Opening this as a place to keep track of what is currently breaking between 3.x (stable branch) and the upcoming 4.x (main branch).
Planned breaking changes in 4.x
--mode
argument.Currently breaking behaviors that we're working on
app.import
with customoutputPath
. We may or may not keep support for this feature.Things to clean up before release
//TODO move the extra forwardslash handling out into the vite plugin
Things we may want to break but haven't yet
staticAddonTrees
andstaticAddonTestSupportTrees
set to false was intended as a more-likely-to-work initial adoption mode. But they break things at least as often as they help, because they aggressively pull files into the build that can have problems. People have have a better adoption experience if we always keep themtrue
and instead document how to identify when some small number of modules are not found at runtime.