beeware / beeware/briefcase

Allow third-party packages to supplement Briefcase configuration

Open
#1,879 2 comments 0 reactions 0 assignees View on GitHub
enhancement not quite right
Dominant language
Python
Stars
3.3k
Forks
549
Avg merge
1d 4h
Merged PRs (30d)
40

Description

### What is the problem or limitation you are having?

If we consider a third-party package like [bleekWare](https://github.com/MarkusPiotrowski/bleekWare), it requires users to manually specify specific content in to `build_gradle_extra_content` and `android_manifest_extra_content` in their `pyproject.toml`.

### Describe the solution you'd like

Users do not need to manually specify this configuration and Briefcase derives it from the presence of the package.

From a user's perspective, they've already indicated they want to use the package by including it in `requires`; so, taking the next step of automatically modifying the build process for that package seems at least logical if not reasonable.

Implementation may be complicated, though, in the event of conflicts between existing configuration in a user's project and what a required package wants to do.

### Describe alternatives you've considered

Such packages could also publish a related template for users to use that already includes the necessary updates. This seems particularly arduous for everyone involved. And doesn't scale well back trying to use a single package trying to do this in a project.

### Additional context

_No response_

Contributor guide

Open the contributing guide

Research direction

Start by reviewing how pyproject.toml fields such as requires, build_gradle_extra_content, and android_manifest_extra_content are processed. Done means Briefcase can derive third-party package configuration automatically while defining how conflicts with existing project configuration are handled.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, python
Domain
build-system, mobile
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.