You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Prompt to run "pub upgrade" upon opening a package if the SDK versions has changed #4261
When the user upgrades their SDK (a major or minor change, but not patch) there may be new versions of packages that were not available before (or that are required for some classes of changes). We should detect this change when we're checking if they need to run "pub get" (we can get the last version used to fetch packages from .dart_tool/package_config.json: ("generatorVersion": "2.19.0-374.0.dev")) and offer to run pub upgrade (in preference to pub get).
@devoncarew should we do this in both directions, or only one? It probably doesn't affect many users, but I realise that I often switch between SDK versions (for testing) and if I click pub upgrade on this prompt and then switch back to an older SDK, there's a possibility that I now have packages that are not valid. Would pub upgrade even fix this (I don't thinkpub downgrade is what's wanted here, because I want to go back to "the highest that is valid given this new (lower) SDK"?)
Interesting. I think the sdk downgrade case is pretty rare. I could see people running into it if they (intentionally) have multiple SDKs installed locally.
I would say we could either:
not handle it, or
handle it but switch to using pub get?
We'd mostly be concerned with package versions that solved into the newer sdk but that wouldn't solve into the older sdk.
@devoncarew here's how this current looks (this prompt is just a special case of the pub-get check when you open a project or change your workspace folders):
Let me know if you have any suggestions for the text. It may also be useful to have a "More Info" button here that explains why this this is recommended. I can add something to the Dart-Code website, although perhaps it's better having something on the Dart website (or Wiki?) since this may be applicable to other editors (and CLI users)?
(I'm slightly worried that "Upgrade packages" might make it seem like this is going to change constraints in pubspec or similar, and people may skip clicking it unsure what it does)
I'm slightly worried that "Upgrade packages" might make it seem like this is going to change constraints in pubspec or similar, and people may skip clicking it unsure what it does
It matches the 'get' packages prompt however? Instead of Upgrade packages we could say run dart pub upgrade? It's more technical but there'd be less uncertainty about what the tool is going to do. I'm not 100% sure this is an issue, but the command name would have slightly more clarity.
Yeah, the other one said "Get packages". I've changed them to run 'pub get' and run 'pub upgrade' (I left off dart to be shorter and avoid confusion with flutter and this prompt may apply to multiple projects in the workspace), looks like this now (I changed "upgrade" to "updated" in the text as I think it reads a little better too, but happy to tweak):
Activity
devoncarew commentedon Nov 10, 2022
Interesting. I think the sdk downgrade case is pretty rare. I could see people running into it if they (intentionally) have multiple SDKs installed locally.
I would say we could either:
pub get?We'd mostly be concerned with package versions that solved into the newer sdk but that wouldn't solve into the older sdk.
DanTup commentedon Nov 10, 2022
Ah, I hadn't considered that that would fix it, that makes sense. So where today it's:
I think we probably want:
?
devoncarew commentedon Nov 10, 2022
sgtm!
DanTup commentedon Nov 14, 2022
@devoncarew here's how this current looks (this prompt is just a special case of the pub-get check when you open a project or change your workspace folders):
Let me know if you have any suggestions for the text. It may also be useful to have a "More Info" button here that explains why this this is recommended. I can add something to the Dart-Code website, although perhaps it's better having something on the Dart website (or Wiki?) since this may be applicable to other editors (and CLI users)?
(I'm slightly worried that "Upgrade packages" might make it seem like this is going to change constraints in pubspec or similar, and people may skip clicking it unsure what it does)
devoncarew commentedon Nov 14, 2022
The prompt looks great - thanks!
It matches the 'get' packages prompt however? Instead of
Upgrade packageswe could say rundart pub upgrade? It's more technical but there'd be less uncertainty about what the tool is going to do. I'm not 100% sure this is an issue, but the command name would have slightly more clarity.DanTup commentedon Nov 14, 2022
Yeah, the other one said "Get packages". I've changed them to
run 'pub get'andrun 'pub upgrade'(I left offdartto be shorter and avoid confusion withflutterand this prompt may apply to multiple projects in the workspace), looks like this now (I changed "upgrade" to "updated" in the text as I think it reads a little better too, but happy to tweak):devoncarew commentedon Nov 14, 2022
Looks great - very clear about what it'll do (and makes sense to not specify the 'dart' or 'flutter' prefix).
Prompt to run "pub upgrade" when SDK version changes