-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Bump Typescript to 3.8 #3690
Bump Typescript to 3.8 #3690
Conversation
@kamilogorek hey, not sure if I fully get what's wrong in this PR that so many tests are failing.
Can you help me understand the issue? |
@@ -19937,6 +19937,11 @@ typescript@3.7.5: | |||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.5.tgz#0692e21f65fd4108b9330238aac11dd2e177a1ae" | |||
integrity sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw== | |||
|
|||
typescript@3.8.3: | |||
version "3.8.3" | |||
resolved "https://packages.atlassian.com/api/npm/npm-remote/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" |
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.
😶
There's a reason why we have this version locked-in, see: I just verified the ember package mentioned in #2848 and it now compiles correctly 🤔 |
@kamilogorek thank you for spending time to explain this. I totally get the problem. Building something which will be used by so many people in different environments is hard. It looks like updating to 3.9 is not possible. What do you think about updating to 3.8? Will this still be unsafe?
Is there something I can help you with here? |
Thanks, appreciate that.
Yes, that's, unfortunately, the problem, because TypeScript doesn't follow semver. When we bump to 3.8, we introduce the type-only imports syntax into the mix. Then, when we then use a dependency that utilizes it, we won't catch that issue, as there will be no compilation error (because we'd use 3.8), however, people using our SDK, would have an indirect dependency on the version of types that are not 3.7 compatible and it would not allow them to compile their apps. The biggest issue here is that it's not possible to catch this, as there's effectively no bug/issue, it's that we changed the contract between the SDK and end-users. Changing minimum requirements for the compiler would mean a breaking change for a vast number of users still stuck with 3.7 (lots of older Angular projects for example). We are currently working on rewriting some internals of the SDK, and when it's done, we will almost certainly bump the major version of the SDK as well. And this will be the only good opportunity to change the TS compiler version as well. |
All good. Thanks!
Do you have any ETAs on when this will be released? I just want to understand what my next steps will be with #3669 |
Not really, as it includes a lot of research work first, so it's hard to accurately estimate. |
@kamilogorek this is a great idea, I will discuss it with my colleagues.
This is |
I don't see the codebase being available publicly, only the npm package. Is that correct? |
@kamilogorek pretty much. Forge runtime is not a publicly available open-source component: it is a core part of Forge platform which lets us run developers' code securely. |
This is a blocker for #3669 as one of the TS dependencies has d.ts file with
export type Smth
which is only available since 3.8: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html