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 3.9 Iteration Plan #37198

Closed
DanielRosenwasser opened this issue Mar 3, 2020 · 32 comments
Closed

TypeScript 3.9 Iteration Plan #37198

DanielRosenwasser opened this issue Mar 3, 2020 · 32 comments
Labels
Planning Iteration plans and roadmapping

Comments

@DanielRosenwasser
Copy link
Member

DanielRosenwasser commented Mar 3, 2020

This document outlines our focused tasks for TypeScript 3.9, as well as some of the discussion that explains how/why we prioritized certain work items. Nothing is set in stone, but we will strive to complete them in a reasonable timeframe.

Date Event
February 20th TypeScript 3.8 Release (past)
March 20th Create 3.9 Beta (3.9.0) Build for Testing
March 24th TypeScript 3.9 Beta Release
April 24th Create 3.9 RC (3.9.1) Build for Testing
April 28th TypeScript 3.9 RC Release
May 8th Create 3.9 Final (3.9.2) Build for Testing
May 12th TypeScript 3.9 Final Release 🚀

Work Items

Expected Work Items

@DanielRosenwasser DanielRosenwasser added the Planning Iteration plans and roadmapping label Mar 3, 2020
@DanielRosenwasser DanielRosenwasser pinned this issue Mar 3, 2020
@LittleStoney
Copy link

Thanks

@ExE-Boss
Copy link
Contributor

ExE-Boss commented Mar 5, 2020

The current awaited type operator PR is #35998.

@masx200
Copy link

masx200 commented Mar 8, 2020

#35392

#20469

This issue has not been resolved for a long time since the question was asked.

Support JSX fragments with jsxFragFactory compiler option and @jsxFrag pragma

@xiaoxiangmoe
Copy link
Contributor

Is it possible to support mjs/cjs in ts 3.10?

@Jack-Works
Copy link
Contributor

@xiaoxiangmoe does #35148 satisfy it? 🤔

@DanielRosenwasser
Copy link
Member Author

@typescript-bot create release-3.9

@typescript-bot
Copy link
Collaborator

Heya @DanielRosenwasser, I've started to create the release-3.9 branch for you. Here's the link to my best guess at the log.

@ExE-Boss
Copy link
Contributor

ExE-Boss commented Mar 21, 2020

#37510 should probably be merged too.

It’s the only part of #36368 that wasn’t included in #35998.

@DanielRosenwasser
Copy link
Member Author

DanielRosenwasser commented Mar 26, 2020

For those following the issue and the listed features, we noticed that a lot of code was being impacted by awaited and we've decided that we need to back out the feature to ensure that we can roll it out more smoothly later on. Had we caught some of the errors sooner (see #37560), we might've gotten a better hint around some more of the impact, but even then we've just hit more stuff doing offhand experiments with public repos. Since the PR, we've seen

And we still have some fixes to awaited in flight:

We considered keeping awaited in and pulling it back out if the issues seem insurmountable, but this seems like an unfair amount of churn to impose on users, especially since the fixes aren't necessarily backwards-compatible. Asking users to use awaited and then remove it if we think it's not working out would be a waste of time for everyone.

We also considered pushing back the beta another week. Adding delays for a feature isn't something we want to start doing, especially because "fixing" a feature takes an indefinite amount of time with enough unknown unknowns. In the worst-case scenario, a bunch of fixes followed by a total rollback of a feature would delay our releases even further.

So the course of action we're taking is:

  1. Delay the beta by another day or two.
  2. Back out the changes and run a bunch of tests to ensure nothing else regresses (including another round of validation on the Visual Studio side just to be safe).
  3. Revisit the awaited type for a later version.

I think this is the most ideal outcome. By not rushing this feature, we'll have a much better handle on it and its impact. 3.9 beta won't be delayed any further, and we'll still have a reasonable amount of time for feedback before the RC for other features.

@ExE-Boss
Copy link
Contributor

I think that 4.0 might be a better version for awaited, given that it has backwards compatibility issues.

@Jack-Works
Copy link
Contributor

Jack-Works commented Mar 26, 2020

I think it's reasonable to request people to change the T to awaited T. TypeScript is inferring it correctly

@falsandtru
Copy link
Contributor

falsandtru commented Mar 27, 2020

Type system shouldn't implicitly create awaited types by default. Creating awaited types by Promise functions and methods and async/await operators obviously breaks existing code. So you should provide the stricter type inference and the lib.d.ts using awaited operator only when a flag is enabled.

// strictAwaitedTypes: false
// lib.es5.d.ts
  then((value: T) => awaited T | T): Promise<T>;
// strictAwaitedTypes: true
// lib.es5.awaited.d.ts
  then((value: awaited T) =>  awaited T | T): Promise<awaited T>;
// strictAwaitedTypes: false
await value; // Returns T
// strictAwaitedTypes: true
await value; // Returns awaited T

@DanielRosenwasser
Copy link
Member Author

@typescript-bot sync release-3.9

@typescript-bot
Copy link
Collaborator

Heya @DanielRosenwasser, I've started to sync release-3.9 with master for you. Here's the link to my best guess at the log.

@DanielRosenwasser
Copy link
Member Author

Had to do it manually. 😢 Ah well.

@typescript-bot bump release-3.9

@typescript-bot
Copy link
Collaborator

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

@DanielRosenwasser
Copy link
Member Author

@typescript-bot bump release-3.9 and LKG

@typescript-bot
Copy link
Collaborator

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

@DanielRosenwasser DanielRosenwasser unpinned this issue May 12, 2020
@DanielRosenwasser
Copy link
Member Author

@typescript-bot bump release-3.9 and LKG

@typescript-bot
Copy link
Collaborator

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

@DanielRosenwasser
Copy link
Member Author

@typescript-bot bump release-3.9 and LKG

@typescript-bot
Copy link
Collaborator

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

@DanielRosenwasser
Copy link
Member Author

I bungled the publish and don't want to mess around with things locally.

@typescript-bot bump release-3.9 and LKG

@typescript-bot
Copy link
Collaborator

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

@DanielRosenwasser
Copy link
Member Author

@typescript-bot bump release-3.9 and LKG

@typescript-bot
Copy link
Collaborator

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

@DanielRosenwasser
Copy link
Member Author

@typescript-bot bump release-3.9 and LKG

@typescript-bot
Copy link
Collaborator

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

@DanielRosenwasser
Copy link
Member Author

@typescript-bot bump release-3.9

@DanielRosenwasser
Copy link
Member Author

@typescript-bot bump release-3.9 and LKG

@typescript-bot
Copy link
Collaborator

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

@DanielRosenwasser
Copy link
Member Author

DanielRosenwasser commented Jun 16, 2021

Weird! Looks like it ran last time but didn't post a response. I've cancelled that run.

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

8 participants