`melos list` returns packages alphabetically, so `prepare` would tag
android_file_picker before the platform interface it depends on. Each
tag starts its own independent publish run, so that package would reach
pub.dev asking for an interface version that is not published yet.
`melos publish` sorts by the dependency graph internally, which is why
the dry run always looked right, but the tagging never did. It now takes
the order from `melos list --graph` and only tags a package once
everything it depends on has been tagged.
On the release this repository is about to cut, that turns
android_file_picker, file_picker, file_picker_darwin, file_picker_linux,
file_picker_platform_interface, file_picker_web, windows_file_picker
into
file_picker_platform_interface, android_file_picker, file_picker_darwin,
file_picker_linux, windows_file_picker, file_picker_web, file_picker
which is the order melos publishes in.