diff --git a/.github/workflows/dart.yml b/.github/workflows/dart.yml index 71a33a157a..f0444a92ac 100644 --- a/.github/workflows/dart.yml +++ b/.github/workflows/dart.yml @@ -1,4 +1,4 @@ -# Created with package:mono_repo v6.5.3 +# Created with package:mono_repo v6.5.5 name: Dart CI on: push: @@ -34,22 +34,22 @@ jobs: sdk: stable - id: checkout name: Checkout repository - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 + uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab - name: mono_repo self validate - run: dart pub global activate mono_repo 6.5.3 + run: dart pub global activate mono_repo 6.5.5 - name: mono_repo self validate run: dart pub global run mono_repo generate --validate job_002: - name: "analyze_and_format; Dart 2.19.0; PKGS: pkgs/http, pkgs/http_client_conformance_tests; `dart analyze --fatal-infos`" + name: "analyze_and_format; Dart 2.19.0; PKG: pkgs/http_client_conformance_tests; `dart analyze --fatal-infos`" runs-on: ubuntu-latest steps: - name: Cache Pub hosted dependencies uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 with: path: "~/.pub-cache/hosted" - key: "os:ubuntu-latest;pub-cache-hosted;sdk:2.19.0;packages:pkgs/http-pkgs/http_client_conformance_tests;commands:analyze" + key: "os:ubuntu-latest;pub-cache-hosted;sdk:2.19.0;packages:pkgs/http_client_conformance_tests;commands:analyze" restore-keys: | - os:ubuntu-latest;pub-cache-hosted;sdk:2.19.0;packages:pkgs/http-pkgs/http_client_conformance_tests + os:ubuntu-latest;pub-cache-hosted;sdk:2.19.0;packages:pkgs/http_client_conformance_tests os:ubuntu-latest;pub-cache-hosted;sdk:2.19.0 os:ubuntu-latest;pub-cache-hosted os:ubuntu-latest @@ -59,16 +59,7 @@ jobs: sdk: "2.19.0" - id: checkout name: Checkout repository - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 - - id: pkgs_http_pub_upgrade - name: pkgs/http; dart pub upgrade - run: dart pub upgrade - if: "always() && steps.checkout.conclusion == 'success'" - working-directory: pkgs/http - - name: "pkgs/http; dart analyze --fatal-infos" - run: dart analyze --fatal-infos - if: "always() && steps.pkgs_http_pub_upgrade.conclusion == 'success'" - working-directory: pkgs/http + uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab - id: pkgs_http_client_conformance_tests_pub_upgrade name: pkgs/http_client_conformance_tests; dart pub upgrade run: dart pub upgrade @@ -79,6 +70,36 @@ jobs: if: "always() && steps.pkgs_http_client_conformance_tests_pub_upgrade.conclusion == 'success'" working-directory: pkgs/http_client_conformance_tests job_003: + name: "analyze_and_format; Dart 3.0.0-417.4.beta; PKG: pkgs/http; `dart analyze --fatal-infos`" + runs-on: ubuntu-latest + steps: + - name: Cache Pub hosted dependencies + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 + with: + path: "~/.pub-cache/hosted" + key: "os:ubuntu-latest;pub-cache-hosted;sdk:3.0.0-417.4.beta;packages:pkgs/http;commands:analyze" + restore-keys: | + os:ubuntu-latest;pub-cache-hosted;sdk:3.0.0-417.4.beta;packages:pkgs/http + os:ubuntu-latest;pub-cache-hosted;sdk:3.0.0-417.4.beta + os:ubuntu-latest;pub-cache-hosted + os:ubuntu-latest + - name: Setup Dart SDK + uses: dart-lang/setup-dart@d6a63dab3335f427404425de0fbfed4686d93c4f + with: + sdk: "3.0.0-417.4.beta" + - id: checkout + name: Checkout repository + uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab + - id: pkgs_http_pub_upgrade + name: pkgs/http; dart pub upgrade + run: dart pub upgrade + if: "always() && steps.checkout.conclusion == 'success'" + working-directory: pkgs/http + - name: "pkgs/http; dart analyze --fatal-infos" + run: dart analyze --fatal-infos + if: "always() && steps.pkgs_http_pub_upgrade.conclusion == 'success'" + working-directory: pkgs/http + job_004: name: "analyze_and_format; Dart dev; PKGS: pkgs/http, pkgs/http_client_conformance_tests; `dart analyze --fatal-infos`" runs-on: ubuntu-latest steps: @@ -98,7 +119,7 @@ jobs: sdk: dev - id: checkout name: Checkout repository - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 + uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab - id: pkgs_http_pub_upgrade name: pkgs/http; dart pub upgrade run: dart pub upgrade @@ -117,7 +138,7 @@ jobs: run: dart analyze --fatal-infos if: "always() && steps.pkgs_http_client_conformance_tests_pub_upgrade.conclusion == 'success'" working-directory: pkgs/http_client_conformance_tests - job_004: + job_005: name: "analyze_and_format; Dart dev; PKGS: pkgs/http, pkgs/http_client_conformance_tests; `dart format --output=none --set-exit-if-changed .`" runs-on: ubuntu-latest steps: @@ -137,7 +158,7 @@ jobs: sdk: dev - id: checkout name: Checkout repository - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 + uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab - id: pkgs_http_pub_upgrade name: pkgs/http; dart pub upgrade run: dart pub upgrade @@ -156,27 +177,27 @@ jobs: run: "dart format --output=none --set-exit-if-changed ." if: "always() && steps.pkgs_http_client_conformance_tests_pub_upgrade.conclusion == 'success'" working-directory: pkgs/http_client_conformance_tests - job_005: - name: "unit_test; Dart 2.19.0; PKG: pkgs/http; `dart run --define=no_default_http_client=true test/no_default_http_client_test.dart`" + job_006: + name: "unit_test; Dart 3.0.0-417.4.beta; PKG: pkgs/http; `dart run --define=no_default_http_client=true test/no_default_http_client_test.dart`" runs-on: ubuntu-latest steps: - name: Cache Pub hosted dependencies uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 with: path: "~/.pub-cache/hosted" - key: "os:ubuntu-latest;pub-cache-hosted;sdk:2.19.0;packages:pkgs/http;commands:command" + key: "os:ubuntu-latest;pub-cache-hosted;sdk:3.0.0-417.4.beta;packages:pkgs/http;commands:command" restore-keys: | - os:ubuntu-latest;pub-cache-hosted;sdk:2.19.0;packages:pkgs/http - os:ubuntu-latest;pub-cache-hosted;sdk:2.19.0 + os:ubuntu-latest;pub-cache-hosted;sdk:3.0.0-417.4.beta;packages:pkgs/http + os:ubuntu-latest;pub-cache-hosted;sdk:3.0.0-417.4.beta os:ubuntu-latest;pub-cache-hosted os:ubuntu-latest - name: Setup Dart SDK uses: dart-lang/setup-dart@d6a63dab3335f427404425de0fbfed4686d93c4f with: - sdk: "2.19.0" + sdk: "3.0.0-417.4.beta" - id: checkout name: Checkout repository - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 + uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab - id: pkgs_http_pub_upgrade name: pkgs/http; dart pub upgrade run: dart pub upgrade @@ -191,27 +212,28 @@ jobs: - job_002 - job_003 - job_004 - job_006: - name: "unit_test; Dart 2.19.0; PKG: pkgs/http; `dart test --platform chrome`" + - job_005 + job_007: + name: "unit_test; Dart 3.0.0-417.4.beta; PKG: pkgs/http; `dart test --platform chrome`" runs-on: ubuntu-latest steps: - name: Cache Pub hosted dependencies uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 with: path: "~/.pub-cache/hosted" - key: "os:ubuntu-latest;pub-cache-hosted;sdk:2.19.0;packages:pkgs/http;commands:test_1" + key: "os:ubuntu-latest;pub-cache-hosted;sdk:3.0.0-417.4.beta;packages:pkgs/http;commands:test_1" restore-keys: | - os:ubuntu-latest;pub-cache-hosted;sdk:2.19.0;packages:pkgs/http - os:ubuntu-latest;pub-cache-hosted;sdk:2.19.0 + os:ubuntu-latest;pub-cache-hosted;sdk:3.0.0-417.4.beta;packages:pkgs/http + os:ubuntu-latest;pub-cache-hosted;sdk:3.0.0-417.4.beta os:ubuntu-latest;pub-cache-hosted os:ubuntu-latest - name: Setup Dart SDK uses: dart-lang/setup-dart@d6a63dab3335f427404425de0fbfed4686d93c4f with: - sdk: "2.19.0" + sdk: "3.0.0-417.4.beta" - id: checkout name: Checkout repository - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 + uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab - id: pkgs_http_pub_upgrade name: pkgs/http; dart pub upgrade run: dart pub upgrade @@ -226,27 +248,28 @@ jobs: - job_002 - job_003 - job_004 - job_007: - name: "unit_test; Dart 2.19.0; PKG: pkgs/http; `dart test --platform vm`" + - job_005 + job_008: + name: "unit_test; Dart 3.0.0-417.4.beta; PKG: pkgs/http; `dart test --platform vm`" runs-on: ubuntu-latest steps: - name: Cache Pub hosted dependencies uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 with: path: "~/.pub-cache/hosted" - key: "os:ubuntu-latest;pub-cache-hosted;sdk:2.19.0;packages:pkgs/http;commands:test_0" + key: "os:ubuntu-latest;pub-cache-hosted;sdk:3.0.0-417.4.beta;packages:pkgs/http;commands:test_0" restore-keys: | - os:ubuntu-latest;pub-cache-hosted;sdk:2.19.0;packages:pkgs/http - os:ubuntu-latest;pub-cache-hosted;sdk:2.19.0 + os:ubuntu-latest;pub-cache-hosted;sdk:3.0.0-417.4.beta;packages:pkgs/http + os:ubuntu-latest;pub-cache-hosted;sdk:3.0.0-417.4.beta os:ubuntu-latest;pub-cache-hosted os:ubuntu-latest - name: Setup Dart SDK uses: dart-lang/setup-dart@d6a63dab3335f427404425de0fbfed4686d93c4f with: - sdk: "2.19.0" + sdk: "3.0.0-417.4.beta" - id: checkout name: Checkout repository - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 + uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab - id: pkgs_http_pub_upgrade name: pkgs/http; dart pub upgrade run: dart pub upgrade @@ -261,7 +284,8 @@ jobs: - job_002 - job_003 - job_004 - job_008: + - job_005 + job_009: name: "unit_test; Dart dev; PKG: pkgs/http; `dart run --define=no_default_http_client=true test/no_default_http_client_test.dart`" runs-on: ubuntu-latest steps: @@ -281,7 +305,7 @@ jobs: sdk: dev - id: checkout name: Checkout repository - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 + uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab - id: pkgs_http_pub_upgrade name: pkgs/http; dart pub upgrade run: dart pub upgrade @@ -296,7 +320,8 @@ jobs: - job_002 - job_003 - job_004 - job_009: + - job_005 + job_010: name: "unit_test; Dart dev; PKG: pkgs/http; `dart test --platform chrome`" runs-on: ubuntu-latest steps: @@ -316,7 +341,7 @@ jobs: sdk: dev - id: checkout name: Checkout repository - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 + uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab - id: pkgs_http_pub_upgrade name: pkgs/http; dart pub upgrade run: dart pub upgrade @@ -331,7 +356,8 @@ jobs: - job_002 - job_003 - job_004 - job_010: + - job_005 + job_011: name: "unit_test; Dart dev; PKG: pkgs/http; `dart test --platform vm`" runs-on: ubuntu-latest steps: @@ -351,7 +377,7 @@ jobs: sdk: dev - id: checkout name: Checkout repository - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 + uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab - id: pkgs_http_pub_upgrade name: pkgs/http; dart pub upgrade run: dart pub upgrade @@ -366,3 +392,4 @@ jobs: - job_002 - job_003 - job_004 + - job_005 diff --git a/pkgs/http/CHANGELOG.md b/pkgs/http/CHANGELOG.md index fe3c527343..ab36177f38 100644 --- a/pkgs/http/CHANGELOG.md +++ b/pkgs/http/CHANGELOG.md @@ -1,3 +1,8 @@ +## 1.0.0 + +* Requires Dart 3.0 or later. +* Add `base`, `final`, and `interface` modifiers to some classes. + ## 0.13.6 * `BrowserClient` throws an exception if `send` is called after `close`. diff --git a/pkgs/http/lib/retry.dart b/pkgs/http/lib/retry.dart index b943df5c9e..dedba9a9e7 100644 --- a/pkgs/http/lib/retry.dart +++ b/pkgs/http/lib/retry.dart @@ -14,7 +14,7 @@ import 'http.dart'; /// NOTE: [RetryClient] makes a copy of the request data in order to support /// resending it. This can cause a lot of memory usage when sending a large /// [StreamedRequest]. -class RetryClient extends BaseClient { +final class RetryClient extends BaseClient { /// The wrapped client. final Client _inner; diff --git a/pkgs/http/lib/src/base_client.dart b/pkgs/http/lib/src/base_client.dart index 9020495b88..48a7f92fe9 100644 --- a/pkgs/http/lib/src/base_client.dart +++ b/pkgs/http/lib/src/base_client.dart @@ -17,7 +17,7 @@ import 'streamed_response.dart'; /// /// This is a mixin-style class; subclasses only need to implement [send] and /// maybe [close], and then they get various convenience methods for free. -abstract class BaseClient implements Client { +abstract mixin class BaseClient implements Client { @override Future head(Uri url, {Map? headers}) => _sendUnstreamed('HEAD', url, headers); diff --git a/pkgs/http/lib/src/byte_stream.dart b/pkgs/http/lib/src/byte_stream.dart index 6f9efca5e3..d8ae4dc4d2 100644 --- a/pkgs/http/lib/src/byte_stream.dart +++ b/pkgs/http/lib/src/byte_stream.dart @@ -7,7 +7,7 @@ import 'dart:convert'; import 'dart:typed_data'; /// A stream of chunks of bytes representing a single piece of data. -class ByteStream extends StreamView> { +final class ByteStream extends StreamView> { const ByteStream(super.stream); /// Returns a single-subscription byte stream that will emit the given bytes diff --git a/pkgs/http/lib/src/client.dart b/pkgs/http/lib/src/client.dart index 11c266888c..6159d0067c 100644 --- a/pkgs/http/lib/src/client.dart +++ b/pkgs/http/lib/src/client.dart @@ -29,7 +29,7 @@ import 'streamed_response.dart'; /// extend [BaseClient] rather than [Client]. In most cases, you can wrap /// another instance of [Client] and add functionality on top of that. This /// allows all classes implementing [Client] to be mutually composable. -abstract class Client { +abstract interface class Client { /// Creates a new platform appropriate client. /// /// Creates an `IOClient` if `dart:io` is available and a `BrowserClient` if diff --git a/pkgs/http/pubspec.yaml b/pkgs/http/pubspec.yaml index 1acc884f60..e6d259a018 100644 --- a/pkgs/http/pubspec.yaml +++ b/pkgs/http/pubspec.yaml @@ -4,7 +4,7 @@ description: A composable, multi-platform, Future-based API for HTTP requests. repository: https://github.com/dart-lang/http/tree/master/pkgs/http environment: - sdk: '>=2.19.0 <3.0.0' + sdk: '>=3.0.0-417.4.beta <4.0.0' dependencies: async: ^2.5.0 diff --git a/tool/ci.sh b/tool/ci.sh index 5a9f07ace3..75cc963f5f 100755 --- a/tool/ci.sh +++ b/tool/ci.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Created with package:mono_repo v6.5.3 +# Created with package:mono_repo v6.5.5 # Support built in commands on windows out of the box. # When it is a flutter repo (check the pubspec.yaml for "sdk: flutter")