Skip to content

Don't show a separate notification for every package when the pub get/pub upgrade prompts trigger many invocations #5740

Closed

Description

@reidbaker

Describe the bug

Screen.Recording.2025-10-07.at.1.11.38.PM.mov

To Reproduce
Steps to reproduce the behavior:

  1. open flutter/packages/packages in vscode
  2. click pub upgrade
  3. See a notification appear for every package as it upgrades.

Expected behavior
Any of the following design patterns

  • One notification the whole time
  • One notification the whole time with progress bar or text
  • One notification at the end
  • No notification

Please complete the following information:

You can run the Dart: Collect Diagnostic Information command from the VS Code command palette (F1) to easily capture this information or provide it manually.

Workspace Environment
Dart Code extension: 3.120.0
Flutter extension: 3.120.0 (activated)

App: Visual Studio Code
App Host: desktop
Version: mac 1.104.3

Workspace type: Dart, Flutter (LSP)
Workspace name: packages

Dart (3.10.0-268.0.dev): /Users/reidbaker/flutter-work/bin/cache/dart-sdk
Flutter (3.37.0-1.0.pre-386): /Users/reidbaker/flutter-work (macOS (darwin/macos))

Output from 'dart info'

/Users/reidbaker/flutter-work/bin/cache/dart-sdk/bin/dart info

If providing this information as part of reporting a bug, please review the information
below to ensure it only contains things you're comfortable posting publicly.

General info

  • Dart 3.10.0-268.0.dev (dev) (Wed Oct 1 09:03:20 2025 -0700) on "macos_arm64"
  • on macos / Version 15.7 (Build 24G222)
  • locale is en

Process info

Memory CPU Elapsed time Command line
34 MB 0.0% 01:59 dart devtools --machine --allow-embedding --dtd-uri ws:/PJfjwGEs7JM=
12034 MB 0.0% 01:59 dart language-server --protocol=lsp --client-id=VS-Code --client-version=3.120.0
19 MB 0.0% 01:59 dart tooling-daemon --machine
79 MB 0.9% 01:59 flutter_tools.snapshot daemon
Output from 'flutter doctor'

/Users/reidbaker/flutter-work/bin/flutter doctor -v

[✓] Flutter (Channel main, 3.37.0-1.0.pre-386, on macOS 15.7 24G222 darwin-arm64, locale en) [1,032ms]
    • Flutter version 3.37.0-1.0.pre-386 on channel main at /Users/reidbaker/flutter-work
    • Upstream repository [email protected]:flutter/flutter.git
    • Framework revision de64eed980 (5 days ago), 2025-10-02 11:37:33 -0400
    • Engine revision 65aca3661b
    • Dart version 3.10.0 (build 3.10.0-268.0.dev)
    • DevTools version 2.50.0
    • Feature flags: enable-web, enable-linux-desktop, enable-macos-desktop, enable-windows-desktop, enable-android, enable-ios, cli-animations, enable-native-assets, omit-legacy-version-file, enable-lldb-debugging

[✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0) [1,062ms]
    • Android SDK at /Users/reidbaker/Library/Android/sdk/
    • Emulator version 36.1.9.0 (build_id 13823996) (CL:N/A)
    • Platform android-36, build-tools 36.0.0
    • ANDROID_HOME = /Users/reidbaker/Library/Android/sdk/
    • Java binary at: /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home/bin/java
      This JDK is specified in your Flutter configuration.
      To change the current JDK, run: `flutter config --jdk-dir="path/to/jdk"`.
    • Java version OpenJDK Runtime Environment Homebrew (build 17.0.15+0)
    • All Android licenses accepted.

[!] Xcode - develop for iOS and macOS (Xcode 16.2) [435ms]
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 16C5032a
    ✗ Unable to get list of installed Simulator runtimes.
    ✗ CocoaPods not installed.
        CocoaPods is a package manager for iOS or macOS platform code.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/to/platform-plugins
      For installation instructions, see https://guides.cocoapods.org/using/getting-started.html#installation

[✓] Chrome - develop for the web [5ms]
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Connected device (2 available) [5.8s]
    • macOS (desktop) • macos  • darwin-arm64   • macOS 15.7 24G222 darwin-arm64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 141.0.7390.55

[✓] Network resources [871ms]
    • All expected network resources are available.

! Doctor found issues in 1 category.

Activity

  1. DanTup commented on Oct 7, 2025

    @DanTup
    Member

    Yeah, we should handle this better. The notification is shown inside the "pub get" command, and we're just invoking that for each project.

    I think we should aim for a single notification that shows the name (or relative path) for each package as it runs.

  2. added
    is enhancementAn enhancement or improvement that should be listed in release notes but is not a bug fix.
    in commandsRelates to commands (usually invoked from the command Palette)
    and removed on Oct 7, 2025
  3. added this to the v3.122.0 milestone on Oct 7, 2025
  4. changed the title [-]Vs code dart extension sends repeated notifications after clicking `pub upgrade` on flutter/packages.[/-] [+]Don't show a separate notification for every package when the `pub get`/`pub upgrade` prompts trigger many invocations[/+] on Oct 7, 2025
  5. DanTup commented on Oct 9, 2025

    @DanTup
    Member

    There was another implication of how this worked - you couldn't cancel the batch, because it would only cancel one run and you'd then frustratingly have to keep hitting Cancel on them all 😔

    I'm updated this so we create a single notification at the top level and pass it down when we execute for multiple projects:

    batch_progress.mp4
  6. added a commit that references this issue on Oct 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    in commandsRelates to commands (usually invoked from the command Palette)is enhancementAn enhancement or improvement that should be listed in release notes but is not a bug fix.

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions