Skip to content
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

TypeScript 5.0 Iteration Plan #51362

Closed
DanielRosenwasser opened this issue Oct 31, 2022 · 73 comments
Closed

TypeScript 5.0 Iteration Plan #51362

DanielRosenwasser opened this issue Oct 31, 2022 · 73 comments
Labels
Planning Iteration plans and roadmapping

Comments

@DanielRosenwasser
Copy link
Member

DanielRosenwasser commented Oct 31, 2022

This document outlines our focused tasks for TypeScript 5.0. It minimally indicates intent to investigate tasks or contribute to an implementation. Nothing is set in stone, but we will strive to complete these tasks in a reasonable timeframe.

Date Event
November 15th TypeScript 4.9 Release
January 20th Create 5.0 Beta (5.0.0) Build for Testing
January 24th TypeScript 5.0 Beta Release
February 24th Create 5.0 RC (5.0.1) Build for Testing
February 28th TypeScript 5.0 RC Release
March 10th Create 5.0 Final (5.0.2) Build for Testing
March 16th TypeScript 5.0 Final Release 🚀
gantt
    dateFormat  YYYY-MM-DD
    TypeScript 4.9 Stabilization Period : 2022-10-28, 2022-11-11
    TypeScript 5.0 Beta Development : 2022-10-28, 2023-01-19
    TypeScript 5.0 RC Development : 2023-01-19, 2023-02-24
    TypeScript 5.0 Stabilization Period : 2023-02-24, 2023-03-16
todayMarker stroke-width:5px,stroke:#0f0,opacity:0.5

Language and Compiler Features

Editor Productivity

Performance

Infrastructure

Website

@DanielRosenwasser DanielRosenwasser added the Planning Iteration plans and roadmapping label Oct 31, 2022
@DanielRosenwasser DanielRosenwasser pinned this issue Nov 1, 2022
@DanielRosenwasser
Copy link
Member Author

The 4.9 iteration plan is over at #50457.

@akononenko-sumo
Copy link

It's so sad that adding proper type support for throw is not on the roadmap for v5...

@MLoughry
Copy link

MLoughry commented Nov 2, 2022

One idea I had previously floated to @amcasey was to add compiler/server APIs with asynchronous signatures in 5.0 (even if they're still synchronous under the hood), and deprecate the synchronous APIs. This would allow Typescript to later (6.0?) remove the synchronous APIs and unblock the ability to perform asynchronous I/O (or even worker-based parallelization?) in future versions.

@lukeapage
Copy link

I’d love to see the core team engage with issues that are for example 400+ thumbs up and marked “awaiting feedback” rather than issues that seem less important.
Even if the answer is that the team consider it to not be typescript’s responsibility and close the issue - i would rather that than limbo and newer but less important features being tackled.

https://github.com/microsoft/TypeScript/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc+label%3A%22Awaiting+More+Feedback%22

@patroza
Copy link

patroza commented Nov 11, 2022

@lukeapage I smell another 400+ thumbs up incoming..

@kuator
Copy link

kuator commented Nov 27, 2022

I’d love to see the core team engage with issues that are for example 400+ thumbs up and marked “awaiting feedback” rather than issues that seem less important. Even if the answer is that the team consider it to not be typescript’s responsibility and close the issue - i would rather that than limbo and newer but less important features being tackled.

https://github.com/microsoft/TypeScript/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc+label%3A%22Awaiting+More+Feedback%22

Waiting for any news on LSP implementation

@utenma
Copy link

utenma commented Dec 4, 2022

Any plan to add experimental support ECMAScript Operator Overloading, Pipeline Operator or extension methods?

@ljharb
Copy link
Contributor

ljharb commented Dec 4, 2022

@mindlid It would be highly inappropriate to add support for any proposal prior to stage 3.

@utenma

This comment was marked as off-topic.

@ljharb

This comment was marked as off-topic.

@utenma

This comment was marked as off-topic.

@ljharb

This comment was marked as off-topic.

@utenma

This comment was marked as off-topic.

@ljharb

This comment was marked as off-topic.

@dilame
Copy link

dilame commented Dec 8, 2022

Dear TS team, i really appreciate and respect your excellent work, but so much people are waiting for the throws statement, why isn't it in the 5.0 roadmap? FMPOV this functionality is directly related to the purpose of the existence of the TypeScript – typed JS. This is the feature i really miss more then any other feature – it lacks type-safety a lot.
Would be very grateful if some of team members could give a reply about it

@SmashingQuasar
Copy link

My bad, I was actually think about this syntax:

module Foo { }

which still works without any flag but is deprecated in favor of namespaces. Thanks for pointing it out for others who may not know about it. This is a good example of deprecation done right by TypeScript. (it would benefit from triggering a warning which does not seem to be the case with TS 4.9.x)

@RyanCavanaugh
Copy link
Member

module Foo { isn't deprecated either (yet). See #51825.

I think a nice thing about the deprecation strategy we're using for 5.0 is that none of the guessing that's happening here is actually necessary. No Error = Not Deprecated.

@SmashingQuasar
Copy link

Yes, but just remember that this whole discussion was about TypeScript not following SemVer and instead using an arbitrary versioning that uses the SemVer format but not the logic. If you don't want to use SemVer, it would be preferable to simply use raw version numbers like some other software do such as TS 5, TS 6... TS 123.
Then, I pointed out that your link listed deprecations, which do not constitute a breaking change under the SemVer logic and should instead be listed within a minor version. You insisted that these were breaking changes and they are not. Overall, deprecations should not break existing code, otherwise they are not deprecations, they are simply feature suppression with possibly a compatibility bridge that needs manual activation.

@RyanCavanaugh
Copy link
Member

It seems like maybe you're not fully aware of how these deprecations are being rolled out? If you currently are targeting ES3 and try to use TS5, you will get an error you didn't get before. That's exactly the situation (my build was passing and now it's not) that 95% of "This should have been a semver major bump" complaints are about. The ease of getting back to zero errors is, in all cases, wholly irrelevant.

@DanielRosenwasser
Copy link
Member Author

@typescript-bot bump release-5.0

@typescript-bot
Copy link
Collaborator

Heya @DanielRosenwasser, I've started to update the version number on release-5.0 to 5.0.2 for you. Here's the link to my best guess at the log.

@SmashingQuasar
Copy link

It seems like maybe you're not fully aware of how these deprecations are being rolled out? If you currently are targeting ES3 and try to use TS5, you will get an error you didn't get before. That's exactly the situation (my build was passing and now it's not) that 95% of "This should have been a semver major bump" complaints are about. The ease of getting back to zero errors is, in all cases, wholly irrelevant.

Again, deprecations should not break existing code. That is the whole concept of a deprecation. If they are breaking existing code, they are not deprecations, they are feature removal with a retro-compatibility bridge. If they are handled that way, then sure, those are breaking changes that constitute a major version. They should however be listed as such and not as deprecations.

@DanielRosenwasser
Copy link
Member Author

We're having an issue with a build pipeline, so we'll be targeting the stable release for Thursday, March 16th.

@trim21

This comment was marked as resolved.

@DanielRosenwasser
Copy link
Member Author

DanielRosenwasser commented Mar 13, 2023

Ugh, that is a typo in the release plans. 5.0.2 is the release I'm talking about. I've fixed up the original comment.

@sacummings91
Copy link

It's crazy that people have the nerve to come in here and complain. TS is literally free for us to use and everyone on the team puts a massive amount of effort into it. You should just be grateful it exists.

@jez9999
Copy link

jez9999 commented Mar 16, 2023

It's the 16th... any chance of TS5 today?

@RyanCavanaugh
Copy link
Member

Yes! https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/

@utenma
Copy link

utenma commented Mar 17, 2023

@polkovnikov-ph https://civet.dev/ supports ES proposals and compiles to typescript

@DanielRosenwasser
Copy link
Member Author

@typescript-bot bump release-5.0

@typescript-bot
Copy link
Collaborator

Heya @DanielRosenwasser, I've started to update the version number on release-5.0 to 5.0.3 for you. Here's the link to my best guess at the log.

@DanielRosenwasser
Copy link
Member Author

@typescript-bot bump release-5.0

@typescript-bot
Copy link
Collaborator

Heya @DanielRosenwasser, I've started to update the version number on release-5.0 to 5.0.4 for you. Here's the link to my best guess at the log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Planning Iteration plans and roadmapping
Projects
None yet
Development

No branches or pull requests