Upgrading outdated packages is an essential task in Flutter development. It ensures that your application benefits from bug fixes, performance improvements, and new features provided by the package developers. In this post, we will go through the steps of identifying outdated packages, upgrading them using automated methods, and manually upgrading packages when necessary.
1. Inspect the pubspec.yaml
pubspec.yaml I have the following packages:
name: webfeed version: 0.7.0 description: webfeed is a dart package for parsing RSS and Atom feeds. Media, DublinCore, iTunes, Syndication namespaces are also supported. homepage: https://github.com/witochandra/webfeed environment: sdk: '>=2.12.0 <3.0.0' dependencies: xml: ^5.0.2 intl: ^0.17.0 dev_dependencies: test: ^1.3.0 http: ^0.13.0
2. Check outdated packages
Before upgrading our packages, we first need to check which ones are outdated. We can do that by executing the
flutter pub outdated command.
You can see that 2 packages are outdated.
3. Upgrade the outdated packages
Now we can upgrade them, as you might have noticed in the previous screenshot, we can do that by executing the following command:
flutter pub upgrade --major-versions.
Be aware that upgrading major versions can bring breaking changes. If you do not want to upgrade to major versions, execute
flutter pub upgradeinstead.
As you can see 2 packages were changed by executing
flutter pub upgrade --major-versions.
4. Upgrade packages manually
As you might have noticed, when executing
flutter pub outdated it said that my
dev_depencies are up-to-date. However, when we check the http package, you can see that it has newer versions available.
If you are running into the same problem, you can change the versions of the packages manually. Of course, this requires more work because you have to check the new available versions yourself.
There are 2 ways to upgrade the packages manually.
4.1 Using pubspec.yaml
Look up the version for every package that did not get detected by
flutter pub outdated command and change it in the
pubspec.yaml. I changed the versions for both the http and the test package on lines 14 and 15.
name: webfeed version: 0.7.0 description: webfeed is a dart package for parsing RSS and Atom feeds. Media, DublinCore, iTunes, Syndication namespaces are also supported. homepage: https://github.com/witochandra/webfeed environment: sdk: '>=2.12.0 <3.0.0' dependencies: xml: ^6.3.0 intl: ^0.18.1 dev_dependencies: test: ^1.24.3 http: ^0.13.6
After you made the changes, you need to run
flutter pub get to make sure that your changes are applied.
4.2 Deleting the package and reinstalling it again.
By deleting and reinstalling, you will automatically install the package with the latest version.
Delete the package by executing the
flutter pub remove http command where
http should be the package name. After that reinstall the package by executing either
flutter pub add http or
flutter pub add http --dev. The
--dev flag will place the package underneath the
5. Test your application
At last, because we upgraded all our packages, we need to make sure that our application still works as intended. We can do this by running our tests by executing the
flutter test command.
If needed, you can also go through your application manually to make sure that your application does not have any issues.
Upgrading Flutter packages is a simple process that requires a few commands. However, it is worth noting that automatic upgrades may not cover all packages. In such scenarios, manual upgrades can be done by modifying the
pubspec.yaml file or by removing and reinstalling the packages. By staying up to date with package updates, you can take advantage of the latest improvements, ultimately enhancing the overall quality of your Flutter application.