Deprecate Briefcase config keys that conflict with PEP621 representations.
- 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
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