-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: updated jest to v29 #415
Conversation
…to bilalqamar95/jest-v29-upgrade
…to bilalqamar95/jest-v29-upgrade
…to bilalqamar95/jest-v29-upgrade
Has this been tested against any MFEs? If so, could you link draft PRs to those MFEs with this branch (or a branch created based on this branch with Having a couple MFEs verified working (and knowing what issues arose in the process of making them work) will go a long way towards creating "how to upgrade your MFE to use jest v29" documentation. |
As per an internal conversation with @brian-smith-tcril, one way we could handle major upgrades to base libraries like this one is to start issuing bugfixes to the previous version, so there's (somewhat) less urgency in upgrading all downstream users. Apparently, semantic-release provides for this rather neatly: https://semantic-release.gitbook.io/semantic-release/recipes/release-workflow/maintenance-releases#releasing-a-bug-fix-for-version-1.0.x-users. We'd just need to check that this and other similar repos like paragon and frontend-platform are configured accordingly. And, of course, to check with the corresponding maintainers if they're up to always backporting fixes. |
Oh, and if we know there are further breaking changes coming down the pipes, we should hold off and merge them all from the same branch, so only one major version ends up being bumped. |
(On the latter comment, this repo is already configured with an |
@brian-smith-tcril Yes, this has been tested against several MFEs with drafted PRs in all of them. Here are 2 of them which i recently updated, frontend-app-account#958 & frontend-app-profile#932. I can update and link more if required |
@BilalQamar95 the CI is failing on both of the PRs you linked. |
@brian-smith-tcril That would be due to frontend-build dependency since I'm installing it from a branch, these were tested out locally, all tests are passing for both PRs. I have since added overrides for both frontend-app-account#958 & frontend-app-profile#932 to clear out the CI, you can have a look at it again. The dependency issue for the consumers will be resolved once this PR is merged and respective drafted PRs are updated. I can update and link more PRs similarly, if required |
@BilalQamar95 looks good! Would you mind also linking PRs showing CI passing on |
@brian-smith-tcril Sure, I have updated PRs for requested MFEs: frontend-platform#661, frontend-component-header#369 & frontend-component-footer#317. |
@brian-smith-tcril please let me know if is there anything else I can help with in order to get this reviewed & merged |
I have a question as well: should we bundle this into the alpha branch first, and release everything in one go? |
@arbrandes is there any reason to take that approach? The goal of this PR is to move the Jest upgrade forward, and bringing in other alpha-release related changes has a chance to create unnecessary noise to achieving that goal. I am fully supportive of getting the alpha branch into main, but I think they should be considered distinct efforts. |
I believe this was followed up on in the Frontend WG, and now has a path forward.
|
…o bilalqamar95/jest-v29-upgrade
@arbrandes @brian-smith-tcril this PR is rebased with alpha and now ready to review and merge |
That's a good point, and we may still end up splitting the Typescript work from Jest 29, but there are a couple of other considerations:
In any case, we should revisit this strategy if we run into any blockers. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me! Any objections to merging this into alpha
, @brian-smith-tcril?
Once it's in alpha, we should pick a couple of MFEs to upgrade to the |
We should probably also have the |
We have tested account, profile and learning MFE with alpha and jest with test branches and they were working fine |
Ok, see the PRs I just mentioned. Once merged, we can make alpha packages that depend on the frontend-build alpha, and finally port at least one MFE (better a couple) to actually use them in ther respective master branches. That should tell us right quick if there are any issues. :) |
Alright, let's get this into |
🎉 This PR is included in version 14.0.0-alpha.1 🎉 The release is available on: Your semantic-release bot 📦🚀 |
This introduces two main features: * feat: Re-enable typescript for production builds (introduced directly in this `alpha` branch) * feat!: updated jest to v29 (introduced originally via #415) It also includes a series of minor workflow and dependency updates. BREAKING CHANGE: Updating jest from v26 to v29 changes the default snapshotFormat.
🎉 This PR is included in version 15.0.0-alpha.1 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Description
jest
config for v29 (ChangeLog details)Breaking Change:
Updating jest from v26 to v29 introduces breaking change (except dropping Node versions), and that is to default snapshotFormat to {escapeString: false, printBasicPrototype: false}. This makes snapshots both more readable and more copy-pasteable.