Blob Blame History Raw
document: modulemd
version: 2
data:
    summary: Python programming language, version 3.6
    description: |-
        This module gives users access to the internal Python 3.6 in RHEL8, as
        well as provides some additional Python packages the users might need.
        In addition to these you can install any python3-* package available
        in RHEL and use it with Python from this module.
    license:
        module:
            - MIT
    dependencies:
        - buildrequires:
              platform: [el8]
              # python-pymongo needs mongodb for tests
              # - mongodb version `3.6` being the same as version of Python 3.6
              #   is a coincidence.
              mongodb: [3.6]
          requires:
              platform: [el8]
    references:
        community: https://www.python.org/
        documentation: https://docs.python.org/3.6/
    profiles:
        common:
            rpms:
                - python36
        build:
            rpms:
                - python36
                - python36-devel
                - python36-rpm-macros
    filter:
        rpms:
            - python2-PyMySQL
            - python2-docutils
            - python2-nose
            - python2-pygments
            - python2-scipy
            - python2-sqlalchemy
            - python2-virtualenv
    api:
        rpms:
            - python-sqlalchemy-doc
            - python-virtualenv-doc
            - python3-PyMySQL
            - python3-bson
            - python3-docs
            - python3-docutils
            - python3-nose
            - python3-pygments
            - python3-pymongo
            - python3-pymongo-gridfs
            - python3-scipy
            - python3-sqlalchemy
            - python3-virtualenv
            - python3-wheel
            - python36
            - python36-debug
            - python36-devel
            - python36-rpm-macros
    buildopts:
        rpms:
            macros: |
                %_without_python2 1

                # For packages depending on python36, so that they
                # BuildRequire python36-devel/debug/rpm-macros instead of python3-*
                #
                # This won't be necessary for python37 and later. There we can
                # set %{python3_pkgversion}, because all packages will need to
                # have the pythonXY prefix. Whereas for Python 3.6 the packages
                # are split between non-modular RHEL and the python36 module,
                # and so it was easier and less confusing to keep the prefix at
                # python3- except for the devel/debug/rpm/macros packages.
                %_with_python36_module 1
    components:
        rpms:
            python36:
                # This package needs to be built before all others due to containing python36-rpm-macros
                rationale:
                    Contains the symlink to the platform-python interpreter.
                    Also contains python36-rpm-macros needed to build the
                    remaining packages.
                ref: stream-3.6
                buildorder: 10
            python-PyMySQL:
                rationale: Python adapter for the MySQL/MariaDB databases
                # PyMySQL [0] vs. mysqlclient-python [1]
                # - PyMySQL was originally chosen for the rh-python35 RH
                #   Software collection due to the opinion that maintaining
                #   mysqlclient-python would take much more resources (bad
                #   communication with upstream, backward incompatibilities in
                #   test suite, ...)[2]. PyMySQL was deemed the better
                #   alternative.
                # - When creating this module, this decision was reassessed,
                #   because mysqlclient-python seems to be faster than PyMySQL,
                #   but the choice was reaffirmed due to the customers already
                #   being familiar with PyMySQL from the abovementioned RHSCLs,
                #   and due to wider popularity of PyMySQL upstream.[3]
                # [0] https://github.com/PyMySQL/PyMySQL
                # [1] https://github.com/PyMySQL/mysqlclient-python
                # [2] https://bugzilla.redhat.com/show_bug.cgi?id=1012475
                # [3] python-maint@redhat.com mailing list, 2018-04-30, subject
                #     "python-MySQL vs PyMySQL"
                ref: stream-0.8.0
                buildorder: 20
            python-docutils:
                rationale: System for processing plaintext documentation
                ref: stream-0.14
                buildorder: 20
            python-nose:
                rationale: Discovery-based unit test extension for Python
                ref: stream-1.3.7
                buildorder: 20
            python-pygments:
                rationale: Syntax highlighting engine written in Python
                ref: stream-2.2.0
                buildorder: 20
            python-pymongo:
                # Package maintainer: mskalick
                rationale: Python driver for MongoDB
                ref: stream-3.6.1
                buildorder: 20
            python-sqlalchemy:
                rationale: Modular and flexible ORM library for python
                ref: stream-1.2.7
                buildorder: 20
            python-virtualenv:
                rationale: Tool to create isolated Python environments
                ref: stream-15.1.0
                buildorder: 20
            python-wheel:
                rationale: Built-package format for Python
                ref: stream-0.30.0
                buildorder: 20
            scipy:
                rationale: Scientific Tools for Python
                ref: stream-1.0.0
                buildorder: 20
            python-docs:
                rationale: Documentation for Python
                ref: stream-3.6
                buildorder: 20