Closed DanielRosenwasser closed 10 months ago
The TypeScript 5.1 Iteration Plan is available here.
We will likely publish the RC tomorrow.
I don't want to start a debate about it, just want to point out that deprecations do not fall under the breaking change status because they don't break anything yet. Removal of syntax or features is what falls under the breaking changes nomenclature.
They do break things, because your build is going to start failing until you opt into the "give me back the old behavior" flag.
I don't want to start a debate about it, just want to point out that deprecations do not fall under the breaking change status because they don't break anything yet. Removal of syntax or features is what falls under the breaking changes nomenclature.
They do break things, because your build is going to start failing until you opt into the "give me back the old behavior" flag.
That's not a deprecation. A deprecation triggers a notice or a warning without behavior change. You are describing a retro-compatiblity option which is not the same at all. To me knowledge, namespaces are widely deprecated and are still working just fine without any optional flag. Optional flags are also used for opt-in to some more strict features. It's really not a good example of deprecation in my opinion. Again, let's not start a debate about that.
Namespaces aren't deprecated.
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)
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.
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.
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.
@typescript-bot bump release-5.0
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.
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.
We're having an issue with a build pipeline, so we'll be targeting the stable release for Thursday, March 16th.
We're having an issue with a build pipeline, so we'll be targeting the stable release for Thursday, March 16th.
is this the same reason why 5.0.2 is not released?
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.
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.
It's the 16th... any chance of TS5 today?
@polkovnikov-ph https://civet.dev/ supports ES proposals and compiles to typescript
@typescript-bot bump release-5.0
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.
@typescript-bot bump release-5.0
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.
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.
Language and Compiler Features
enum
s as Unions.ts
as a Module Specifier for Bundler/Loader Scenariosextends
fortsconfig.json
Fileslib.d.ts
Updates@types/web
VersionableEditor Productivity
switch
/case
Snippet CompletionsSharedArrayBuffer
-Backed Host for Web Editing ContextsPerformance
.tsbuildinfo
Files.tsbuildinfo
Infrastructure
strictFunctionTypes
on TypeScript CodebaseWebsite