Skip to content

For Android, app requirements are not always updated when using -r/--update-requirements #1721

@rmartin16

Description

@rmartin16

Describe the bug

The use of -r/--update-requirements should force the build of a project to install the app's requirements. This is currently true for all output formats except Android Gradle. When a Gradle project is built, the step to install requirements only runs the first time an app is built or if the requirements.txt file changes.

Therefore, running briefcase build android -r is not guaranteed to update the requirements in the Gradle build unless requirements.txt file generated from the app's requirements is different from the last time it ran.

Steps to reproduce

  1. Run briefcase build android
  2. Run briefcase build android -r and see requirements are not installed again

Expected behavior

The app's requirements are installed whenever the -r/--update-requirements flag is used. As noted in #1719 (comment), any change to the content of requirements.txt will trigger the requirements to be re-installed during the next Gradle build; so, simply adding a timestamp to the file would achieve this, for instance.

Furthermore, this installation should effectively eagerly update the app's requirements and their requirements and so forth. While pip can be configured to do this with --upgrade-strategy=eager, Briefcase normally achieves this by not updating an existing installation of requirements but by removing all installed requirements and installing everything again.

Screenshots

No response

Environment

  • Operating System: pop os 22.04
  • Python version: 3.12.2
  • Software versions:
    • Briefcase: 0.3.18.dev162+g9b284776

Logs

briefcase build android - briefcase.2024_04_05-11_46_02.build.log
briefcase build android -r - briefcase.2024_04_05-11_46_50.build.log

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    androidThe issue relates to Android mobile support.bugA crash or error in behavior.good first issueIs this your first time contributing? This could be a good place to start!

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions