-
Notifications
You must be signed in to change notification settings - Fork 216
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
Update deprecated and outdated devDependencies #7590
base: master
Are you sure you want to change the base?
Conversation
…cy of @electron/get) WIP
…ckages which have been overridden
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.
thx for volunteering to do this Bill.
i hope we can drop nyc, instabul, typemoq as we move to vitest, and probably wouldnt want to spend any further time updating those deps
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.
Approving presentation changes.
For the 3 dependencies likely coming only from our packages:
typemoq
[^1] has not been maintained at all in nearly 7 years; we should migrate away from it ASAP.
While I agree we should avoid using it in all new tests (and we do), and it would be great to get rid of it, is having it under devDependencies
really that big of a problem? We have a huge set of tests which are using the library, and switching to another library would be a huge undertaking. In addition, the tests are for code that's gradually being deprecated and will go away in future releases. With all that in mind, I'd hate to waste anyone's time on this, unless it's a real issue.
json-schema-faker
[^2] has newer versions available, but I'm concerned that updating may break or introduce flakiness in presentation tests.
I'm going to drop it, it's not necessary.
typescript-json-schema
[^3] is a dependency of@itwin/presentation-common
and is now in "maintenance mode". We should consider switching to an alternative package or opening a PR to help them update.
This pull request is now in conflicts. Could you fix it @wgoehrig? 🙏 |
@tcobbs-bentley looks like the build is failing due to missing support for a Unicode character class in our iOS environment. Is ICU somehow disabled on mobile or something? If not, any other ideas? FWIW, we can revert the |
@wgoehrig ICU is missing from the mobile builds of Node (both iOS and Android). Unfortunately, the way that we build Node makes it difficult to include. The V8 build is done completely separately from the rest of the build which include ICU4C, and it needs ICU support in order for Node to support ICU. Fixing this may be possible, but I'm not sure how to do so in a reasonable way. We have run into this problem before and made sure that the problematic code didn't get accessed in mobile builds. The problem with this specific instance is that Node throws an exception while parsing the JS due to the hard-coded RegEx using functionality that only works when ICU is loaded. So that code has to be completely excluded from the mobile build. I think that a discussion is probably needed between multiple people who have a firm understanding of Bentley buildology if we want to get ICU support into our mobile Node builds. |
It's been a while since we've tried to update many of our devDependencies, and as a result the number of deprecation and unmet peer warnings has grown and grown. Rather than attempting to update all devDependencies en masse, I've started with the deprecation warnings and worked backwards. With these changes, the 50+ lines of warnings on
rush install
are now down to:The following dependencies are preventing us from updating/removing those last 7 deprecated packages:
typemoq
1 has not been maintained at all in nearly 7 years; we should migrate away from it ASAP.json-schema-faker
2 has newer versions available, but I'm concerned that updating may break or introduce flakiness in presentation tests.typescript-json-schema
3 is a dependency of@itwin/presentation-common
and is now in "maintenance mode". We should consider switching to an alternative package or opening a PR to help them update.nyc
34 already has a PR open to updateglob
andrimraf
babel-plugin-istanbul
3 already has a PR open to updatetest-exclude
azurite
45 has a PR open foruuid
, but nothing currently forrimraf
or@azure/ms-rest-js
(although there is an issue open for@azure/ms-rest-js
)Updating
jsdom
led me to removejsdom-global
since it breaksatob
in jsdom v23 (and also hasn't been updated in 8 years). In a few cases I still had to stick some globals fromjsdom
into node's global scope but the jsdom docs are very clear that this is an anti-pattern. We should probably consider droppingjsdom
entirely and moving those tests to vitest-browser.Footnotes
typemoc
depends on both[email protected]
and[email protected]
↩json-schema-faker
depends on[email protected]
↩typescript-json-schema
,nyc
, andbabel-plugin-istanbul
(viatest-exclude
) all depend on[email protected]
(which itself depends on[email protected]
) ↩ ↩2 ↩3azurite
andnyc
(both directly and viaspawn-wrap
) depend on[email protected]
(which itself depends on[email protected]
and, indirectly,[email protected]
) ↩ ↩2azurite
(both directly and via@azure/ms-rest-js
) depends on[email protected]
↩