pypa / pypa/packaging

plugin system for tags

Open
#161 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement packaging.tags
Dominant language
Python
Stars
751
Forks
324
Avg merge
12h 58m
Merged PRs (30d)
3

Description

According to PEP 425, "tools should use the most-preferred architecture dependent tag e.g. cp33-cp33m-win32 or the most-preferred pure python tag e.g. py33-none-any by default."

If we can get those tools to import the same list of tags then bdist_wheel would give all new wheels with C extensions the tag tags[0] and pip would install them.

We could give packaging.tags a config Python script that could change the list of tags. Then BSD users (who have said the default tag is not useful for them) or cluster users could use appropriate tags without having to pass special arguments to every invocation of install or build tools. This would remove the need for a global standard or a separate "no manylinux" config.

For example try: import _filter_tags; tags = _filter_tags.filter(default_tags), or check a config file for the import if that's not too strange a beast. By accepting a list of tags from packaging.tags a filter could change the list of tags without having to necessarily generate them all itself.

@cjerdonek I'm not thrilled with this example of a plugin system

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names packaging.tags, bdist_wheel, and pip but no repository files or tests. Start by tracing how these tools obtain and consume the tag list, then assess whether a configurable filter or plugin is appropriate. Done would require an agreed design for configurable tags and tests covering the resulting wheel and installation behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.