From bae7dcbee08b71c8e92f56a5f94d1d997600eec1 Mon Sep 17 00:00:00 2001 From: "Alex Taylor (alta)" Date: Mon, 28 Oct 2024 19:06:12 -0700 Subject: [PATCH] v0.251.0 Summary: Release v0.251.0 Reviewed By: SamChou19815 Differential Revision: D65091648 fbshipit-source-id: 9ab10f64084042daaccb867369a6e4c64126b893 --- Changelog.md | 17 +++++++++++++++++ flow_parser.opam | 2 +- flowtype.opam | 4 ++-- packages/flow-parser-bin/package.json | 2 +- packages/flow-parser/package.json | 2 +- packages/flow-remove-types/package.json | 2 +- packages/try-flow-website-js/package.json | 2 +- src/common/flow_version.ml | 2 +- website/docs/install.md | 2 +- 9 files changed, 26 insertions(+), 9 deletions(-) diff --git a/Changelog.md b/Changelog.md index 2767f1887af..5e1d7471898 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,20 @@ +### 0.251.0 + +Likely to cause new Flow errors: +* Remove the deprecated `React.AbstractComponent` type. We recommend replacing them with [component types](https://flow.org/en/docs/react/component-types/). Since v0.249.0, we have provided a codemod via the `flow-upgrade` package to aid larger codebases with this conversion: `yarn run flow-codemod eliminateAbstractComponent path/to/src`. +* In addition to the removal of `React.AbstractComponent` type, we also removed support for the internal `React$AbstractComponent` when more than 1 type argument has been passed. Similarly, you should migrate to use component types if you want to specify ref props and renders. + +New Features: +* We now support a new way to easily specify library definitions for npm modules. For all files in `@flowtyped` directory at the root, they can be resolved by the relative path without leading `./` relative to `@flowtyped`. e.g. `/@flowtyped/react.js.flow` can be used to type the `react` package, and `/@flowtyped/react/jsx-runtime.js.flow` can be used to type `react/jsx-runtime` module. We now recommend using this approach instead of using `declare module` in global libdef. + +Notable bug fixes: +* `any` will now correctly propagate to inferred render type. [example](https://flow.org/try/#1N4Igxg9gdgZglgcxALlAIwIZoKYBsD6uEEAztvhgE6UYCe+JADpdhgCYowa5kA0I2KAFcAtiRQAXSkOz9sADwxgJ+NPTbYuQ3BMnTZA+Y2yU4IwRO4A6SFBIrGVDGM7c+h46fNRLuKxJIGWh8MeT0ZfhYlCStpHzNsFBAMIQkIEQwJODAQfiEyfBE4eWw2fDgofDBMsAALfAA3KjgsXGxxZC4eAw0G-GhcWn9aY3wWZldu-g1mbGqJUoBaCRHEzrcDEgBrbAk62kXhXFxJ923d-cPRHEpTgyEoMDaqZdW7vKgoOfaSKgOKpqmDA+d4gB5fMA-P6LCCMLLQbiLOoYCqgh6-GDYRYIXYLSgkRZkCR4jpddwPfJLZjpOBkO4AX34kA0SQAOhINE8qNgAAQwB7KODQHkAJUEGnxAEEoLQABQASmQPOBtAA3KyoJzcNy+QL4VAeQopNExZqTCQADwipVi6JWAByEA0AD5ZWAlZARIxoBZZSwYAB+G2sZQAEjFMAAyriTBaiiU2M7eDyrKnsF6VvKeSwzfjRYrRerHtB7Ib5MblKVpbRTRKeQBeMsViS182y1tSmXy1U8gD0vZ5swaQvygx5DwltnsNAqpWTUAgAHceRAthqjTRK2xqx3lSRDRm1X2B6ulSqeQA-Z0HuG0DW5EANc1CqBJBoABisACYAKyf98gPSQA). +* Fixed a bug with regard to jsx type inference with generic callable objects. [example](https://flow.org/try/#1N4Igxg9gdgZglgcxALlAIwIZoKYBsD6uEEAztvhgE6UYCe+JADpdhgCYowa5kA0I2KAFcAtiRQAXSkOz9sADwxgJ+NPTbYuQ3BMnTZA+Y2yU4IwRO4A6SFBIrGVDGM7c+h46fNRLuKxJIGWh8MeT0ZfhYlCStpHzNsFBAMIQkIEQwJODAQfiEyfBE4eWw2fDgofDBMsAALfAA3KjgsXGxxZC4eAw0G-GhcWn9aY3wWZldu-g1mbGqJUoBaCRHEzrcDEgBrbAk62kXhXFxJ923d-cPRHEpTgyEoMDaqZdW7vKgoOfaSKgOKpqmDA+d4gB5fMA-P6LCCMLLQbiLOoYCqgh6-GDYRYIXYLSgkRZkCR4jpddwPfJLZjpOBkO4AX34kA0SQ0Tyo2AABLZ7JyAAoQQYAeWQnOAAB0oJzpZyADwAFQAfAAKamMEii4AwYii+W8TkwKCi5XygCUnIAvIrOQ0IHA2PTTaKAEqsZRWAByEA0vEl9IA3JK2bgOdzoLyBYMAGJGuVK1WUWEasXaiC6-WG41my3W232x05zmu6Ke73YQNQSWyyO0IUG4gW4AAZnpBqgjeVDXNVrFDU5GBInPspigCH9nIA9AAqIe1CDaNickyJyic6DcgcSfWzBpweckQZrqV9xw0EScqcTzn01sTxUV6uC2gx+sQRsttsdruF4B9gdDqQKjHScZxIOcFyXagIFXddql5S9r1ve9JVyEAGhMEg9ygJIMnsEwQHpIA) +* Fixed a soundness hole that allowed frozen objects to be incompatible with non-readonly objects. This [example](https://flow.org/try/#1N4Igxg9gdgZglgcxALlAIwIZoKYBsD6uEEAztvhgE6UYCe+JADpdhgCYowa5kA0I2KAFcAtiRQAXSkOz9sADwxgJ+NPTbYuQ3BMnTZA+Y2yU4IwRO4A6SFBIrGVDGM7c+h46fNRLuKxJIGWh8MeT0ZfhYlCStpHzNsFBAMIQkIEQwJODAQfiEyfBE4eWw2fDgofDBMsAALfAA3KjgsXGxxZC4eAw0G-GhcWn9aY3wWZldu-g1mbGqJUoBaCRHEzrcDEgBrbAk62kXhXFxJ923d-cPRHEpTgyEoMDaqZdW7vKgoOfaSKgOKpqmDA+d4gB5fMA-P6LCCMLLQbiLOoYCqgh6-GDYRYIXYLSgkRZkCR4jpddwPfJLZjpOBkO4AX34kA0SVs9gABDBKBAAF6CADyaAAVnMJOyALzswUi5RWLnYbB8gAUwBgyHZABYAEz0gCUAG4ADqPaAckSpVrYaWi9Wq9XCEQ3dkAH3Z9lMUAQ9IlnO5fKg1uU+vZAHoQ+yAO5wY7sqAQCPsnDs4HskzcyjG82WNBtQMxGA+w0gYiMEhF-W5EANEwkODQJINAAMVi1GoAHFYAIwgelAA) will now produce an error. + +Library Definitions: +* We have updated some core React type definitions to use the new [component type](https://flow.org/en/docs/react/component-types/) instead of `React.AbstractComponent`. Most of the code won't be affected, but you might have to sometimes make the Props readonly. + ### 0.250.0 Likely to cause new Flow errors: diff --git a/flow_parser.opam b/flow_parser.opam index b27a28efd79..372a2a9f66b 100644 --- a/flow_parser.opam +++ b/flow_parser.opam @@ -1,6 +1,6 @@ opam-version: "2.0" name: "flow_parser" -version: "0.250.0" +version: "0.251.0" maintainer: "flow@fb.com" authors: ["Flow Team "] homepage: "https://github.com/facebook/flow/tree/master/src/parser" diff --git a/flowtype.opam b/flowtype.opam index e4de61e7d0e..c18344b8f17 100644 --- a/flowtype.opam +++ b/flowtype.opam @@ -1,6 +1,6 @@ opam-version: "2.0" name: "flowtype" -version: "0.250.0" +version: "0.251.0" maintainer: "flow@fb.com" authors: "Flow Team " license: "MIT" @@ -15,7 +15,7 @@ depends: [ "camlp-streams" {>= "5.0.1"} "dtoa" {>= "0.3.2"} "fileutils" {>= "0.6.4"} - "flow_parser" {= "0.250.0"} + "flow_parser" {= "0.251.0"} "inotify" {os = "linux" & >= "2.4.1"} "ounit2" {with-test} "lwt" {>= "5.7.0"} diff --git a/packages/flow-parser-bin/package.json b/packages/flow-parser-bin/package.json index 85461060f6e..755e702e1ea 100644 --- a/packages/flow-parser-bin/package.json +++ b/packages/flow-parser-bin/package.json @@ -1,6 +1,6 @@ { "name": "flow-parser-bin", - "version": "0.250.0", + "version": "0.251.0", "description": "The Flow JavaScript parser, via bindings to the native OCaml implementation", "main": "index.js", "repository": "https://github.com/facebook/flow.git", diff --git a/packages/flow-parser/package.json b/packages/flow-parser/package.json index 6185489c347..a047df1b8cc 100644 --- a/packages/flow-parser/package.json +++ b/packages/flow-parser/package.json @@ -1,6 +1,6 @@ { "name": "flow-parser", - "version": "0.250.0", + "version": "0.251.0", "description": "JavaScript parser written in OCaml. Produces ESTree AST", "homepage": "https://flow.org", "license": "MIT", diff --git a/packages/flow-remove-types/package.json b/packages/flow-remove-types/package.json index 6e0095edaa0..ac49d85d631 100644 --- a/packages/flow-remove-types/package.json +++ b/packages/flow-remove-types/package.json @@ -1,6 +1,6 @@ { "name": "flow-remove-types", - "version": "2.250.0", + "version": "2.251.0", "description": "Removes Flow type annotations from JavaScript files with speed and simplicity.", "author": { "name": "Flow Team", diff --git a/packages/try-flow-website-js/package.json b/packages/try-flow-website-js/package.json index 7e7e8e35171..012b62d426b 100644 --- a/packages/try-flow-website-js/package.json +++ b/packages/try-flow-website-js/package.json @@ -1,6 +1,6 @@ { "name": "try-flow-website-js", - "version": "0.250.0", + "version": "0.251.0", "description": "An NPM package to hold compiled `flow.js` and libdefs for every Flow version.", "license": "MIT", "repository": "facebook/flow", diff --git a/src/common/flow_version.ml b/src/common/flow_version.ml index 55d92b917f1..63655e1253d 100644 --- a/src/common/flow_version.ml +++ b/src/common/flow_version.ml @@ -5,4 +5,4 @@ * LICENSE file in the root directory of this source tree. *) -let version = "0.250.0" +let version = "0.251.0" diff --git a/website/docs/install.md b/website/docs/install.md index c28abb83a1e..b963d970cc7 100644 --- a/website/docs/install.md +++ b/website/docs/install.md @@ -126,7 +126,7 @@ npm install --save-dev flow-bin "name": "my-flow-project", "version": "1.0.0", "devDependencies": { - "flow-bin": "^0.250.0" + "flow-bin": "^0.251.0" }, "scripts": { "flow": "flow"