Python Ports Policy

Status: Defacto. If in doubt, check with the FreeBSD Python Team

This policy document is used:

Upstream Branch Support

FreeBSD currently supports Python (CPython) branches until they are end-of-life (EoL) as defined upstream.

Note: Upstream currently only provides bug fixes for the latest minor release (and Python 2.7 at the time of this writing). In order to reduce maintenance overheads and inconsistencies between ports, it is likely that the FreeBSD Python team will modify its branch support policy to only support branches that are also supported by upstream in the future.

Naming

General

Prefixing (py-*)

PORTNAME

PKGNAMEPREFIX

CATEGORIES

MASTER_SITES

Ports SHOULD use MASTER_SITES=CHEESESHOP if a Python package is registered on PyPI, unless there is a compelling (temporary) case not to.

Examples where temporarily using an alternate MASTER_SITES is OK:

In these cases, issues or pull request SHOULD be created upstream to rectify the problem, and MASTER_SITES switched to CHEESESHOP when the change is released in a later version.

This ensures upstreams packaging and deployment pipeline is well tested and standardised (Python standards), as it is heavily relied upon (setuptools, autoplist, documentation, discoverability, etc).

USES=python

USE_PYTHON Features

autoplist

Note: autoplist can be used in combination with PLIST_FILES, PLIST_DIRS and explicit entries in pkg-plist

concurrent

See Also: https://reviews.freebsd.org/D20927#454268

distutils

Dependencies

NOTE: Be careful when referencing dependencies only from requirements.txt files. Unless the setup.py parses those requirements.txt entries, only setup.py defined dependencies are canonical/actual.

Optional Dependencies

Tests

Patches

Upstreaming

Framework Compliance

Packages and Modules

Python as a Build Dependency

This allows ports to be built with different default versions of Python.

Python Scripts

Example:

A port devel/foobar provides a script foofoo.py, which requires textproc/py-barbar at runtime

Python Language Ports and Framework

Description: Upstream issue summary or commit short log
Issue ID: URL to upstream Issue
Changeset: URL to upstream Commit
TODO: Comments on what needs to be done to remove local patch

TODO


CategoryPorts

Python/PortsPolicy (last edited 2019-07-16 04:18:13 by KubilayKocak)