From 7bb6841815f7d2a16cd1438dcb1358b221c0b0c8 Mon Sep 17 00:00:00 2001 From: Sigurd Meldgaard Date: Mon, 7 Feb 2022 14:12:57 +0000 Subject: [PATCH] Reland "Remove the pub top-level" This is a reland of 872ffa85c2a5946eecc99236f9e952888a28b74f Original change's description: > Remove the pub top-level > > The old pub toplevel interface is still reachable via > > ``` > $ dart __deprecated_pub > ``` > > That is what `flutter pub` is using. > > Part of https://github.com/dart-lang/sdk/issues/46100 > > Bug: https://github.com/dart-lang/pub/issues/3292 > Change-Id: I97a14f2458d0f67c7bf98a90664d504cfaba0e98 > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/229541 > Reviewed-by: Jonas Jensen > Reviewed-by: Michael Thomsen > Commit-Queue: Sigurd Meldgaard Bug: https://github.com/dart-lang/pub/issues/3292 Change-Id: I45b5bf93f30c8abad4558cb15b61289c6c786f65 Cq-Include-Trybots: luci.dart.try:flutter-engine-linux-try,flutter-engine-linux-web_tests-try,flutter-frontend-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/231943 Reviewed-by: Jonas Jensen Reviewed-by: Michael Thomsen Commit-Queue: Sigurd Meldgaard --- CHANGELOG.md | 8 +++ sdk/BUILD.gn | 7 +-- sdk/bin/pub.bat | 56 ------------------- sdk/bin/pub_sdk | 47 ---------------- sdk/bin/pub_sdk.bat | 50 ----------------- tools/bots/pub_integration_test.py | 16 ++++-- .../linux_distribution_support.py | 3 - 7 files changed, 19 insertions(+), 168 deletions(-) delete mode 100644 sdk/bin/pub.bat delete mode 100755 sdk/bin/pub_sdk delete mode 100644 sdk/bin/pub_sdk.bat diff --git a/CHANGELOG.md b/CHANGELOG.md index fec38ce5233..e8b0ec05a7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -102,6 +102,14 @@ in 2018, as it doesn't work with any Dart 2.x release. [an issue]: https://github.com/dart-lang/sdk/issues/new +- **Breaking Change** [#46100](https://github.com/dart-lang/sdk/issues/46100): + The deprecated standalone `pub` tool has been removed. + Its replacement is the `dart pub` command. + Should you find any issues, or missing features, in the replacement + command, kindly file [an issue][]. + +[an issue]: https://github.com/dart-lang/pub/issues/new + #### Pub - Fixed race conditions in `dart pub get`, `dart run` and `dart pub global run`. diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn index 867dd32305c..8e6a103c8dd 100644 --- a/sdk/BUILD.gn +++ b/sdk/BUILD.gn @@ -39,7 +39,6 @@ declare_args() { # ......dartanalyzer # ......dartdevc # ......utils/gen_snapshot or utils/gen_snapshot.exe (if not on ia32) -# ......pub # ......snapshots/ # ........analysis_server.dart.snapshot # ........dart2js.dart.snapshot @@ -88,16 +87,12 @@ declare_args() { # ......api_readme.md # Scripts that go under bin/ -_platform_sdk_scripts = [ - "dartanalyzer", - "pub", -] +_platform_sdk_scripts = [ "dartanalyzer" ] _full_sdk_scripts = [ "dart2js", "dartanalyzer", "dartdevc", - "pub", ] # Snapshots that go under bin/snapshots diff --git a/sdk/bin/pub.bat b/sdk/bin/pub.bat deleted file mode 100644 index 7eb8b0dde42..00000000000 --- a/sdk/bin/pub.bat +++ /dev/null @@ -1,56 +0,0 @@ -@echo off -REM Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file -REM for details. All rights reserved. Use of this source code is governed by a -REM BSD-style license that can be found in the LICENSE file. - -rem Run pub.dart on the Dart VM. This script is only used when running pub from -rem within the Dart source repo. The shipped SDK instead uses "pub_sdk.bat", -rem which is renamed to "pub.bat" when the SDK is built. - -setlocal -rem Handle the case where dart-sdk/bin has been symlinked to. -set DIR_NAME_WITH_SLASH=%~dp0 -set DIR_NAME=%DIR_NAME_WITH_SLASH:~0,-1%% -call :follow_links "%DIR_NAME%", RETURNED_BIN_DIR -rem Get rid of surrounding quotes. -for %%i in ("%RETURNED_BIN_DIR%") do set BIN_DIR=%%~fi - -rem Get absolute full name for SDK_DIR. -for %%i in ("%BIN_DIR%\..\") do set SDK_DIR=%%~fi - -rem Remove trailing backslash if there is one -IF %SDK_DIR:~-1%==\ set SDK_DIR=%SDK_DIR:~0,-1% - -set VM_OPTIONS= - -rem We allow extra vm options to be passed in through an environment variable. -if not "_%DART_VM_OPTIONS%_" == "__" ( - set VM_OPTIONS=%VM_OPTIONS% %DART_VM_OPTIONS% -) - -rem Use the Dart binary in the built SDK so pub can find the version file next -rem to it. -set BUILD_DIR=%SDK_DIR%\..\out\ReleaseX64 -set DART=%BUILD_DIR%\dart-sdk\bin\dart - -rem Run pub. -set PUB="%SDK_DIR%\..\third_party\pkg\pub\bin\pub.dart" -"%DART%" "--packages=%SDK_DIR%\..\.packages" %VM_OPTIONS% "%PUB%" %* - -endlocal - -exit /b %errorlevel% - -:follow_links -setlocal -for %%i in (%1) do set result=%%~fi -set current= -for /f "usebackq tokens=2 delims=[]" %%i in (`dir /a:l "%~dp1" 2^>nul ^ - ^| %SystemRoot%\System32\find.exe "> %~n1 [" 2^>nul`) do ( - set current=%%i -) -if not "%current%"=="" call :follow_links "%current%", result -endlocal & set %~2=%result% -goto :eof - -:end diff --git a/sdk/bin/pub_sdk b/sdk/bin/pub_sdk deleted file mode 100755 index 17ce14c4e74..00000000000 --- a/sdk/bin/pub_sdk +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env bash -# Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file -# for details. All rights reserved. Use of this source code is governed by a -# BSD-style license that can be found in the LICENSE file. - -# Run pub.dart on the Dart VM. This script assumes the Dart SDK's directory -# structure. - -function follow_links() { - file="$1" - while [ -h "$file" ]; do - # On Mac OS, readlink -f doesn't work. - file="$(readlink "$file")" - done - echo "$file" -} - -function array_contains() { - local needle="$1" - local element - shift - for element; do [ "$element" = "$needle" ] && return 0; done - return 1 -} - -# Unlike $0, $BASH_SOURCE points to the absolute path of this file. -PROG_NAME="$(follow_links "$BASH_SOURCE")" - -# Handle the case where dart-sdk/bin has been symlinked to. -BIN_DIR="$(cd "${PROG_NAME%/*}" ; pwd -P)" -DART="$BIN_DIR/dart" - -unset VM_OPTIONS -declare -a VM_OPTIONS - -# Allow extra VM options to be passed in through an environment variable. -if [[ $DART_VM_OPTIONS ]]; then - read -a OPTIONS <<< "$DART_VM_OPTIONS" - VM_OPTIONS+=("${OPTIONS[@]}") -fi - -if [ -t 2 ]; then # Only print warning when run in terminal. - >&2 echo 'The top level `pub` command is deprecated. Use `dart pub` instead.' -fi - -# Forward to the `dart __deprecatedpub` command. -exec "$DART" "${VM_OPTIONS[@]}" __deprecated_pub "$@" diff --git a/sdk/bin/pub_sdk.bat b/sdk/bin/pub_sdk.bat deleted file mode 100644 index e882aac21e9..00000000000 --- a/sdk/bin/pub_sdk.bat +++ /dev/null @@ -1,50 +0,0 @@ -@echo off -REM Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file -REM for details. All rights reserved. Use of this source code is governed by a -REM BSD-style license that can be found in the LICENSE file. - -setlocal -rem Handle the case where dart-sdk/bin has been symlinked to. -set DIR_NAME_WITH_SLASH=%~dp0 -set DIR_NAME=%DIR_NAME_WITH_SLASH:~0,-1%% -call :follow_links "%DIR_NAME%", RETURNED_BIN_DIR -rem Get rid of surrounding quotes. -for %%i in ("%RETURNED_BIN_DIR%") do set BIN_DIR=%%~fi - -rem Get absolute full name for SDK_DIR. -for %%i in ("%BIN_DIR%\..\") do set SDK_DIR=%%~fi - -rem Remove trailing backslash if there is one -IF %SDK_DIR:~-1%==\ set SDK_DIR=%SDK_DIR:~0,-1% - -set VM_OPTIONS= -set USING_DART_1= - -rem We allow extra vm options to be passed in through an environment variable. -if not "_%DART_VM_OPTIONS%_" == "__" ( - set VM_OPTIONS=%VM_OPTIONS% %DART_VM_OPTIONS% - for %%o in (%DART_VM_OPTIONS%) do ( - if "%%o" equ "--no-preview-dart-2" set USING_DART_1=y - ) -) - -echo "The top level `pub.bat` command is deprecated. Use `dart pub` instead." 1>&2 -"%BIN_DIR%\dart" %VM_OPTIONS% __deprecated_pub %* - -endlocal - -exit /b %errorlevel% - -:follow_links -setlocal -for %%i in (%1) do set result=%%~fi -set current= -for /f "usebackq tokens=2 delims=[]" %%i in (`dir /a:l "%~dp1" 2^>nul ^ - ^| %SystemRoot%\System32\find.exe "> %~n1 [" 2^>nul`) do ( - set current=%%i -) -if not "%current%"=="" call :follow_links "%current%", result -endlocal & set %~2=%result% -goto :eof - -:end diff --git a/tools/bots/pub_integration_test.py b/tools/bots/pub_integration_test.py index f80c554612e..4f35ae6a7c3 100755 --- a/tools/bots/pub_integration_test.py +++ b/tools/bots/pub_integration_test.py @@ -35,10 +35,10 @@ def Main(): mode = ('Debug' if options.mode == 'debug' else 'Release') out_dir = 'xcodebuild' if sys.platform == 'darwin' else 'out' - extension = '' if not sys.platform == 'win32' else '.bat' - pub = os.path.abspath('%s/%s%s/dart-sdk/bin/pub%s' % - (out_dir, mode, arch, extension)) - print(pub) + extension = '' if not sys.platform == 'win32' else '.exe' + dart = os.path.abspath('%s/%s%s/dart-sdk/bin/dart%s' % + (out_dir, mode, arch, extension)) + print(dart) working_dir = tempfile.mkdtemp() try: @@ -49,11 +49,15 @@ def Main(): with open(working_dir + '/pubspec.yaml', 'w') as pubspec_yaml: pubspec_yaml.write(PUBSPEC) - exit_code = subprocess.call([pub, 'get'], cwd=working_dir, env=env) + exit_code = subprocess.call([dart, 'pub', 'get'], + cwd=working_dir, + env=env) if exit_code != 0: return exit_code - exit_code = subprocess.call([pub, 'upgrade'], cwd=working_dir, env=env) + exit_code = subprocess.call([dart, 'pub', 'upgrade'], + cwd=working_dir, + env=env) if exit_code != 0: return exit_code finally: diff --git a/tools/linux_dist_support/linux_distribution_support.py b/tools/linux_dist_support/linux_distribution_support.py index 35b7b07d97b..cb739d4f9bb 100644 --- a/tools/linux_dist_support/linux_distribution_support.py +++ b/tools/linux_dist_support/linux_distribution_support.py @@ -123,9 +123,6 @@ def SrcSteps(): Run(['/usr/lib/dart/bin/dart', 'analyze', test_file]) Run(['/usr/lib/dart/bin/dart', test_file]) - # Sanity check that pub can start up and print the version - Run(['/usr/lib/dart/bin/pub', '--version']) - UninstallDart() TestInstallation(assume_installed=False)