The O3 squad will be rolling out a substantial breaking change to openmrs-esm-core. These changes will arrive with the package versions 4.0 of
openmrs.* We are presently aiming to complete this update by May 20, but we are open to community feedback about the process for this.
We intend to include the following changes:
- Upgrade to React 18. This will probably not require any action from O3 implementers.
- Upgrade to React Router 6. This may require some substantial changes. Please see the React Router 6 migration guide.
- Upgrade to Carbon 11. This too will require some substantial changes. Please see the Carbon 11 migration guide.
- A breaking change to the way frontend modules (aka microfrontends) are loaded which will improve reliability and fix some bugs related to frontend loading. No changes should be required to upgrade.
- A minor breaking change to breakpoints and responsiveness functions. The only change required is that code that checks if
useLayoutType() == "desktop"should be changed to use
Frontend modules compiled against the previous version of openmrs-esm-core will not work with the new version of openmrs-esm-core and vice-versa. The app shell and frontend modules must be upgraded in sync.
dev3.openmrs.org server will be upgraded to the new system as soon as it is released. Developers using that server as a backend for custom frontend modules will need to upgrade their modules to the new version for them to work. Developers who develop against custom backends will not be affected in this way (as long as their server keeps running the old version of the app shell), but should still upgrade ASAP, as the old version will not be maintained. For future upgrades we may adopt a more conservative upgrade process, but given the early stage of O3 adoption, I think it is best to have everyone upgrade at once.
Happy to hear questions/comments/concerns/cheers.
*No, it is not OpenMRS 4.0, it is still OpenMRS 3. These are just the frontend core package versions; the fact that they are presently 3 is incidental.