Version 2.4.0-dev.0.0
* Cherry-pick 73e2f469f8e312c256fa657b3b9868c90fe5b31c to dev
* Cherry-pick 9b55e3027a56129be5fdc4d06125ebe2355ab0d4 to dev
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 448c196..b9554f5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,4 @@
-## 2.3.3-dev.0.0
+## 2.4.0 - 2019-06-24
### Core libraries
@@ -7,34 +7,15 @@
* `TransferableTypedData` class was added to facilitate faster cross-isolate
communication of `Uint8List` data.
-#### Linter
+* **Breaking change**: `Isolate.resolvePackageUri` will always throw an
+ `UnsupportedError` when compiled with dart2js or DDC. This was the only
+ remaining API in `dart:isolate` that didn't automatically throw since we
+ dropped support for this library in [Dart 2.0.0][1]. Note that the API already
+ throws in dart2js if the API is used directly without manually setting up a
+ `defaultPackagesBase` hook.
-The Linter was updated to `0.1.91`, which includes the following changes:
+[1]: https://github.com/dart-lang/sdk/blob/master/CHANGELOG.md#200---2018-08-07
-* fixed missed cases in `prefer_const_constructors`
-* fixed `prefer_initializing_formals` to no longer suggest API breaking changes
-* updated `omit_local_variable_types` to allow explicit `dynamic`s
-* (internal) migration from deprecated analyzer APIs
-
-## 2.3.2-dev.0.1
-
-### Language
-
-* **Breaking change:** Covariance of type variables used in super-interfaces
- is now enforced (issue [35097][]). For example, the following code was
- previously accepted and will now be rejected:
-
-```dart
-class A<X> {};
-class B<X> extends A<void Function(X)> {};
-```
-
-* The identifier `async` can now be used in asynchronous and generator
- functions.
-
-[35097]: https://github.com/dart-lang/sdk/issues/35097
-
-### Core libraries
#### `dart:developer`
* Exposed `result`, `errorCode` and `errorDetail` getters in
@@ -64,55 +45,10 @@
interface, this is a breaking change, as implementing classes will need to
implement the new getter.
-#### `dart:isolate`
-
-* **Breaking change**: `Isolate.resolvePackageUri` will always throw an
- `UnsupportedError` when compiled with dart2js or DDC. This was the only
- remaining API in `dart:isolate` that didn't automatically throw since we
- dropped support for this library in [Dart 2.0.0][1]. Note that the API already
- throws in dart2js if the API is used directly without setting up manually a
- `defaultPackagesBase` hook.
-
-[1]: https://github.com/dart-lang/sdk/blob/master/CHANGELOG.md#200---2018-08-07
-
-### Dart VM
-
-### Tools
-
-#### Linter
-
-The Linter was updated to `0.1.90`, which includes the following changes:
-
-* fixed null-reference in `unrelated_type_equality_checks`
-* new lint: `unsafe_html`
-
-#### Pub
-
-* `pub publish` will no longer warn about missing dependencies for import
- statements in `example/`.
-* OAuth2 authentication will explicitely ask for the `openid` scope.
-
-## 2.3.2-dev.0.0
-
-### Tools
-
-#### Linter
-
-Updated the linter to `0.1.89`, which includes the following changes:
-
-* Broadened `prefer_null_aware_operators` to work beyond local variables.
-* Added `prefer_if_null_operators`.
-* Fixed `prefer_contains` false positives.
-* Fixed `unnecessary_parenthesis` false positives.
-
-## 2.3.1-dev.0.0
-
-### Core libraries
-
#### `dart:async`
-* **Breaking change:**
- Fixed bug in `StreamIterator` that allowed constructor argument to be `null`
- and allowed `await for` on a `null` stream. This is now a runtime error.
+
+* **Breaking change:** The `await for` allowed `null` as a stream due to a bug
+ in `StreamIterator` class. This bug has now been fixed.
#### `dart:core`
@@ -137,10 +73,49 @@
This change only affects implementers of the `RegExp` interface; current
code using Dart regular expressions will not be affected.
-#### `dart:isolate`
+### Language
-* **Breaking change:** The `await for` allowed `null` as a stream due to a bug
- in `StreamIterator` class. This bug has now been fixed.
+* **Breaking change:** Covariance of type variables used in super-interfaces
+ is now enforced (issue [35097][]). For example, the following code was
+ previously accepted and will now be rejected:
+
+```dart
+class A<X> {};
+class B<X> extends A<void Function(X)> {};
+```
+
+* The identifier `async` can now be used in asynchronous and generator
+ functions.
+
+[35097]: https://github.com/dart-lang/sdk/issues/35097
+
+### Tools
+
+#### Linter
+
+The Linter was updated to `0.1.91`, which includes the following changes:
+
+* Fixed missed cases in `prefer_const_constructors`
+* Fixed `prefer_initializing_formals` to no longer suggest API breaking changes
+* Updated `omit_local_variable_types` to allow explicit `dynamic`s
+* Fixed null-reference in `unrelated_type_equality_checks`
+* New lint: `unsafe_html`
+* Broadened `prefer_null_aware_operators` to work beyond local variables.
+* Added `prefer_if_null_operators`.
+* Fixed `prefer_contains` false positives.
+* Fixed `unnecessary_parenthesis` false positives.
+* New lint: `prefer_double_quotes`
+* Fixed `prefer_asserts_in_initializer_lists` false positives
+* Fixed `curly_braces_in_flow_control_structures` to handle more cases
+* New lint: `prefer_double_quotes`
+* New lint: `sort_child_properties_last`
+* Fixed `type_annotate_public_apis` false positive for `static const` initializers
+
+#### Pub
+
+* `pub publish` will no longer warn about missing dependencies for import
+ statements in `example/`.
+* OAuth2 authentication will explicitely ask for the `openid` scope.
## 2.3.2 - 2019-06-11
diff --git a/tools/VERSION b/tools/VERSION
index 402a566..c5d7094 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -31,8 +31,8 @@
#
CHANNEL dev
MAJOR 2
-MINOR 3
-PATCH 3
+MINOR 4
+PATCH 0
PRERELEASE 0
PRERELEASE_PATCH 0
ABI_VERSION 5
diff --git a/tools/make_version.py b/tools/make_version.py
index bf88617..05f72e8 100755
--- a/tools/make_version.py
+++ b/tools/make_version.py
@@ -41,7 +41,8 @@
]
def MakeVersionString(quiet, no_git_hash, custom_for_pub=None):
- if custom_for_pub:
+ channel = utils.GetChannel()
+ if custom_for_pub and channel == 'be':
latest = utils.GetLatestDevTag()
if not latest:
# If grabbing the dev tag fails, then fall back on the VERSION file.
@@ -101,7 +102,8 @@
action="store",
type="string",
help=("Generates a version string that works with pub that includes"
- "the given string"))
+ "the given string. This is silently ignored on channels other"
+ "than be"))
parser.add_option("--input",
action="store",
type="string",