Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: [package_info_plus] Web: Version info returns next version in server #2675

Open
8 tasks done
rpaat opened this issue Mar 12, 2024 · 4 comments
Open
8 tasks done
Labels
bug Something isn't working package_info_plus stuff related to package_info_plus triage web

Comments

@rpaat
Copy link

rpaat commented Mar 12, 2024

Platform

Web

Plugin

package_info_plus

Version

5.0.1

Flutter SDK

3.19.2

Steps to reproduce

  1. Deploy app to hosting
  2. Open app in browser
  3. Bump app version
  4. Deploy new version to hosting
  5. Call PackageInfo.fromPlatform() in already running app and check app version in app
  6. New upcoming version info from hosting is shown instead of the currently running app version

Code Sample

No response

Logs

NA

Flutter Doctor

[√] Flutter (Channel stable, 3.19.2, on Microsoft Windows [Version 10.0.22631.3155], locale et-EE)
    • Flutter version 3.19.2 on channel stable at C:\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 7482962148 (13 days ago), 2024-02-27 16:51:22 -0500
    • Engine revision 04817c99c9
    • Dart version 3.3.0
    • DevTools version 2.31.1                                                                                                                                                  09:17

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at C:\Android\SDK
    • Platform android-29, build-tools 29.0.3
    • ANDROID_HOME = C:\Android\SDK
    • Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-9586694)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop Windows apps (Visual Studio Community 2019 16.11.13)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.11.32413.511
    • Windows 10 SDK version 10.0.19041.0

[√] Android Studio (version 2022.2)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-9586694)

[√] VS Code (version 1.86.2)
    • VS Code at C:\Users\Rainer Paat\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.83.20240201

[√] VS Code (version 1.48.0-insider)
    • VS Code at C:\Users\Rainer Paat\AppData\Local\Programs\Microsoft VS Code Insiders
    • Flutter extension can be installed from:
       https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.22631.3155]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 122.0.6261.95
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 122.0.2365.66

[√] Network resources
    • All expected network resources are available.

• No issues found!

Checklist before submitting a bug

  • I searched issues in this repository and couldn't find such bug/problem
  • I Google'd a solution and I couldn't find it
  • I searched on StackOverflow for a solution and I couldn't find it
  • I read the README.md file of the plugin
  • I'm using the latest version of the plugin
  • All dependencies are up to date with flutter pub upgrade
  • I did a flutter clean
  • I tried running the example project
@rpaat rpaat added bug Something isn't working triage labels Mar 12, 2024
@miquelbeltran
Copy link
Member

This is definitely not documented, but the plugin works by obtaining the information from the version.json stored where the app is running from. So it depends on whatever is in that version.json file.

@rpaat
Copy link
Author

rpaat commented Mar 12, 2024

@miquelbeltran
Copy link
Member

Yes, implemented here some years ago: 25e72e7

The original ticket has some information about this: #225

I am not a web expert, so I cannot chip in if this is correct or not.

@AriasBros
Copy link
Contributor

AriasBros commented Mar 23, 2024

The source of the problem I think is the nature of the web implementation, that is dependent of an external resource that needs to be loaded with a fetch request (GET version.json) and as all web resources, it has its own cache.

You can remove the buster cache, but then you will depend of the browser cache invalidation. Your main.dart.js and your version.json can be invalidated in different moments, so you will be in the same situation.

And this only thinking in the browser cache invalidation, but it could be other cache layers, like for example an AWS CloudFront cache invalidation layer, or others.

It is a complicated situation, to be honest.

We could add a new parameter to opt out the cache buster. Maybe that could mitigate the issue, but in my view, it will be there yet, just happening sometimes, instead always.

Or, we could implement a solution no dependent of the version.json file. For example, in the web build process of the app, the package could inject the same information that we can find in the version.json file in a dart file. In that way, you can know exactly which version of the app you are seeing in your browser, because the information it is in the same main.dart.js of your app.

Of course, this is just a theoretical solution and I don't know if it could be implemented even.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working package_info_plus stuff related to package_info_plus triage web
Projects
None yet
Development

No branches or pull requests

3 participants