beeware / beeware/briefcase

Deprecate Briefcase config keys that conflict with PEP621 representations.

Open
#1,235 7 comments 0 reactions 0 assignees View on GitHub
enhancement
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?

#1219 introduced support for using PEP621 metadata keys. However, no changes were made to Briefcase's own representations; the PEP621 keys were honoured, but the names weren't used.

In addition, some of the keys in PEP621 allow a much richer specification that Briefcase allows. Briefcase should allow at least as much breath of representation as PEP621 for these keys.

### Describe the solution you'd like

Briefcase should prefer the PEP 621 form of metadata over its own custom formats. When PEP 621 defines a different format to Briefcase, the PEP 621 format should be preferred. For example:

* The singular `author` and `author_email` keys should be deprecated in favour of a list of `authors`
* The singular `url` should be deprecated in favor of `urls`, with the `Homepage` key filling the role of the current `url`.

Project templates should be updated to output PEP 621-format by default (i.e., most metadata in a `[project]` block, rather than in `[tool.briefcase.*]` blocks.

Optional changes worth considering:
* Adding a `changelog` key analogous to `license`, so that Linux can specify a file that is the changelog
* Normalising from `requires` to `dependencies`
* Normalising `test_requires`. There's no obvious mapping here; the simple approach would be just using `test_dependencies` as a name; or we could adopt some form of `optional-dependencies` on a per-backend config basis.

### Describe alternatives you've considered

Do nothing :-)

### Additional context

See #2867 and #2868 for some closely related issues. This issue is related specifically to the core PEP 621 keys that are duplicated by Briefcase.

This ticket can be approached piecemeal - for example, implementing only an update to the format of author details would be an acceptable standalone change.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the PEP 621 support introduced in #1219 and compare it with the related concerns in #2867 and #2868. Choose a focused slice, such as author metadata: update Briefcase to prefer the PEP 621 representation and update project templates to emit it by default, with tests confirming the new format and precedence.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.