Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pymod2pkg for
openSUSE:Factory checked in at 2024-01-07 21:40:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pymod2pkg (Old)
and /work/SRC/openSUSE:Factory/.python-pymod2pkg.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pymod2pkg"
Sun Jan 7 21:40:51 2024 rev:24 rq:1137433 version:0.28.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pymod2pkg/python-pymod2pkg.changes
2023-09-08 21:16:16.092029904 +0200
+++
/work/SRC/openSUSE:Factory/.python-pymod2pkg.new.28375/python-pymod2pkg.changes
2024-01-07 21:41:07.173802795 +0100
@@ -1,0 +2,33 @@
+Sun Jan 7 20:04:31 UTC 2024 - [email protected]
+
+- removed 0001-add-suse_py39-flavor-to-explicitly-render-templates-.patch
+- update to version 0.28.0
+ - Moving IRC network reference to OFTC
+ - Remove retired Qinling support
+ - Remove retired Searchlight usage
+ - add suse_py39 flavor to explicitly render templates for py39
+ - Remove retired karbor usage
+ - Add RDO mapping for psycopg2-binary
+ - Remove retired Karbor support
+ - Update package rules for some packages in the Redhat ecosystems
+ - update to zed level jobs
+ - Add python2 and python3 return values
+ - Bump some requirements in lower-constraints.txt
+ - Convert from "-" to "_" in setup.cfg
+ - Add RDO mapping for semantic-version
+ - Revert "Fix PyYAML mapping for RDO"
+ - bump py37 to py38 in tox.ini
+ - Move CLI code into it's own module
+ - [tox] Update constraints, flake8 settings and default envlist
+ - Add reqs2pkg
+ - Use py3 as the default runtime for tox
+ - remove unicode from code
+ - [community goal] Update contributor documentation
+ - Add doc/requirements
+ - Retire django-openstack-auth
+ - add suse_py311 flavor to explicitly render templates for py311
+ - Add RDO mapping for suds-community
+ - Add RDO mapping for prometheus-client
+ - Change RDO mapping for sympy and protobuf
+
+-------------------------------------------------------------------
Old:
----
0001-add-suse_py39-flavor-to-explicitly-render-templates-.patch
pymod2pkg-0.26.0.tar.gz
New:
----
pymod2pkg-0.28.0.tar.gz
BETA DEBUG BEGIN:
Old:
- removed 0001-add-suse_py39-flavor-to-explicitly-render-templates-.patch
- update to version 0.28.0
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pymod2pkg.spec ++++++
--- /var/tmp/diff_new_pack.XDtYYW/_old 2024-01-07 21:41:07.901829278 +0100
+++ /var/tmp/diff_new_pack.XDtYYW/_new 2024-01-07 21:41:07.905829423 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-pymod2pkg
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,14 +18,13 @@
%global sname pymod2pkg
Name: python-pymod2pkg
-Version: 0.26.0
+Version: 0.28.0
Release: 0
Summary: OpenStack Packaging - python module name to package name map
License: Apache-2.0
Group: Development/Libraries/Python
URL: https://wiki.openstack.org/wiki/Rpm-packaging
-Source0:
https://files.pythonhosted.org/packages/source/p/pymod2pkg/pymod2pkg-0.26.0.tar.gz
-Patch1: 0001-add-suse_py39-flavor-to-explicitly-render-templates-.patch
+Source0:
https://files.pythonhosted.org/packages/source/p/pymod2pkg/pymod2pkg-0.28.0.tar.gz
BuildRequires: openstack-macros
BuildRequires: python3-distro
BuildRequires: python3-pbr >= 2.0.0
@@ -61,7 +60,7 @@
Documentation for python module name to package name map library.
%prep
-%autosetup -p1 -n pymod2pkg-0.26.0
+%autosetup -p1 -n pymod2pkg-0.28.0
%py_req_cleanup
%build
@@ -82,7 +81,9 @@
%license LICENSE
%doc README*
%{_bindir}/pymod2pkg
-%{python3_sitelib}/*
+%{_bindir}/reqs2pkg
+%{python3_sitelib}/pymod2pkg
+%{python3_sitelib}/pymod2pkg-%{version}*-info
%files -n python-pymod2pkg-doc
%doc doc/build/html
++++++ _service ++++++
--- /var/tmp/diff_new_pack.XDtYYW/_old 2024-01-07 21:41:07.929830296 +0100
+++ /var/tmp/diff_new_pack.XDtYYW/_new 2024-01-07 21:41:07.929830296 +0100
@@ -1,14 +1,14 @@
<services>
- <service mode="disabled" name="renderspec">
+ <service mode="manual" name="renderspec">
<param
name="input-template">https://git.openstack.org/cgit/openstack/rpm-packaging/plain/openstack/pymod2pkg/pymod2pkg.spec.j2</param>
<param name="output-name">python-pymod2pkg.spec</param>
<param
name="requirements">https://raw.githubusercontent.com/openstack/pymod2pkg/master/requirements.txt</param>
<param name="changelog-email">[email protected]</param>
<param name="changelog-provider">gh,openstack,pymod2pkg</param>
</service>
- <service mode="disabled" name="download_files">
+ <service mode="manual" name="download_files">
<param name="changesgenerate">enable</param>
</service>
- <service name="format_spec_file" mode="disabled"/>
+ <service name="format_spec_file" mode="manual"/>
</services>
++++++ pymod2pkg-0.26.0.tar.gz -> pymod2pkg-0.28.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/.zuul.yaml
new/pymod2pkg-0.28.0/.zuul.yaml
--- old/pymod2pkg-0.26.0/.zuul.yaml 2020-10-02 10:44:14.000000000 +0200
+++ new/pymod2pkg-0.28.0/.zuul.yaml 2024-01-07 16:56:19.000000000 +0100
@@ -1,5 +1,4 @@
- project:
templates:
- - openstack-lower-constraints-jobs
- - openstack-python3-ussuri-jobs
+ - openstack-python3-zed-jobs
- publish-openstack-docs-pti
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/AUTHORS new/pymod2pkg-0.28.0/AUTHORS
--- old/pymod2pkg-0.26.0/AUTHORS 2020-10-02 10:45:04.000000000 +0200
+++ new/pymod2pkg-0.28.0/AUTHORS 2024-01-07 16:57:12.000000000 +0100
@@ -9,6 +9,7 @@
Colleen Murphy <[email protected]>
Corey Bryant <[email protected]>
Dirk Mueller <[email protected]>
+Dirk Müller <[email protected]>
Doug Hellmann <[email protected]>
Flavio Percoco <[email protected]>
Ghanshyam Mann <[email protected]>
@@ -26,6 +27,7 @@
Jon Schlueter <[email protected]>
Joseph Davis <[email protected]>
Ken Dreyer <[email protected]>
+Kendall Nelson <[email protected]>
OndÅej Nový <[email protected]>
Ryan Tidwell <[email protected]>
Sean McGinnis <[email protected]>
@@ -33,8 +35,14 @@
Sumit Jamgade <[email protected]>
Thomas Bechtold <[email protected]>
Tomasz TrÄbski <[email protected]>
+Tony Breeds <[email protected]>
Tony Xu <[email protected]>
+karolinku <[email protected]>
liuwei <[email protected]>
loooosy <[email protected]>
+maaoyu <[email protected]>
malei <[email protected]>
+manchandavishal <[email protected]>
melissaml <[email protected]>
+wangjiaqi07 <[email protected]>
+zhangboye <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/CONTRIBUTING.rst
new/pymod2pkg-0.28.0/CONTRIBUTING.rst
--- old/pymod2pkg-0.26.0/CONTRIBUTING.rst 1970-01-01 01:00:00.000000000
+0100
+++ new/pymod2pkg-0.28.0/CONTRIBUTING.rst 2024-01-07 16:56:19.000000000
+0100
@@ -0,0 +1,22 @@
+The source repository for this project can be found at:
+
+ https://opendev.org/openstack/pymod2pkg
+
+Pull requests submitted through GitHub are not monitored.
+
+To start contributing to OpenStack, follow the steps in the contribution guide
+to set up and use Gerrit:
+
+
https://docs.openstack.org/contributors/code-and-documentation/quick-start.html
+
+Bugs should be filed on Launchpad:
+
+ https://bugs.launchpad.net/pymod2pkg
+
+Developers should also join the discussion on the mailing list, at:
+
+ http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-discuss
+
+or join the IRC channel on
+
+ https://webchat.oftc.net/?channels=openstack-rpm-packaging
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/ChangeLog
new/pymod2pkg-0.28.0/ChangeLog
--- old/pymod2pkg-0.26.0/ChangeLog 2020-10-02 10:45:04.000000000 +0200
+++ new/pymod2pkg-0.28.0/ChangeLog 2024-01-07 16:57:12.000000000 +0100
@@ -1,6 +1,37 @@
CHANGES
=======
+0.28.0
+------
+
+* add suse\_py311 flavor to explicitly render templates for py311
+* add suse\_py39 flavor to explicitly render templates for py39
+* Add reqs2pkg
+* Move CLI code into it's own module
+* Convert from "-" to "\_" in setup.cfg
+* remove unicode from code
+* Update package rules for some packages in the Redhat ecosystems
+* [tox] Update constraints, flake8 settings and default envlist
+* Add python2 and python3 return values
+* update to zed level jobs
+* Add RDO mapping for semantic-version
+* Change RDO mapping for sympy and protobuf
+* Add RDO mapping for psycopg2-binary
+* Revert "Fix PyYAML mapping for RDO"
+* Add RDO mapping for suds-community
+* Remove retired Karbor support
+* Add RDO mapping for prometheus-client
+* [community goal] Update contributor documentation
+* Retire django-openstack-auth
+* Moving IRC network reference to OFTC
+* Use py3 as the default runtime for tox
+* Add doc/requirements
+* Remove retired Qinling support
+* Bump some requirements in lower-constraints.txt
+* Remove retired karbor usage
+* Remove retired Searchlight usage
+* bump py37 to py38 in tox.ini
+
0.26.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/PKG-INFO
new/pymod2pkg-0.28.0/PKG-INFO
--- old/pymod2pkg-0.26.0/PKG-INFO 2020-10-02 10:45:04.000000000 +0200
+++ new/pymod2pkg-0.28.0/PKG-INFO 2024-01-07 16:57:12.786491600 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: pymod2pkg
-Version: 0.26.0
+Version: 0.28.0
Summary: python module name to package name map
Home-page: https://docs.openstack.org/pymod2pkg/latest/
Author: OpenStack
@@ -48,7 +48,7 @@
or join the IRC channel on
- http://webchat.freenode.net/?channels=openstack-rpm-packaging
+ http://webchat.oftc.net/?channels=openstack-rpm-packaging
Platform: UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/README.rst
new/pymod2pkg-0.28.0/README.rst
--- old/pymod2pkg-0.26.0/README.rst 2020-10-02 10:44:14.000000000 +0200
+++ new/pymod2pkg-0.28.0/README.rst 2024-01-07 16:56:19.000000000 +0100
@@ -40,5 +40,5 @@
or join the IRC channel on
- http://webchat.freenode.net/?channels=openstack-rpm-packaging
+ http://webchat.oftc.net/?channels=openstack-rpm-packaging
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/doc/requirements.txt
new/pymod2pkg-0.28.0/doc/requirements.txt
--- old/pymod2pkg-0.26.0/doc/requirements.txt 1970-01-01 01:00:00.000000000
+0100
+++ new/pymod2pkg-0.28.0/doc/requirements.txt 2024-01-07 16:56:19.000000000
+0100
@@ -0,0 +1,2 @@
+sphinx>=2.0.0,!=2.1.0 # BSD
+openstackdocstheme>=2.2.1 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/doc/source/conf.py
new/pymod2pkg-0.28.0/doc/source/conf.py
--- old/pymod2pkg-0.26.0/doc/source/conf.py 2020-10-02 10:44:14.000000000
+0200
+++ new/pymod2pkg-0.28.0/doc/source/conf.py 2024-01-07 16:56:19.000000000
+0100
@@ -27,8 +27,8 @@
master_doc = 'index'
# General information about the project.
-project = u'pymod2pkg'
-copyright = u'2016, OpenStack Foundation'
+project = 'pymod2pkg'
+copyright = '2016, OpenStack Foundation'
# If true, '()' will be appended to :func: etc. cross-reference text.
add_function_parentheses = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/lower-constraints.txt
new/pymod2pkg-0.28.0/lower-constraints.txt
--- old/pymod2pkg-0.26.0/lower-constraints.txt 2020-10-02 10:44:14.000000000
+0200
+++ new/pymod2pkg-0.28.0/lower-constraints.txt 2024-01-07 16:56:19.000000000
+0100
@@ -1,13 +1,13 @@
alabaster==0.7.10
Babel==2.3.4
-docutils==0.11
+docutils==0.14
extras==1.0.0
fixtures==3.0.0
flake8==3.5.0
imagesize==0.7.1
Jinja2==2.10
linecache2==1.0.0
-MarkupSafe==1.0
+MarkupSafe==1.1
mccabe==0.6.1
openstackdocstheme==2.2.1
pbr==2.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/pymod2pkg/__init__.py
new/pymod2pkg-0.28.0/pymod2pkg/__init__.py
--- old/pymod2pkg-0.26.0/pymod2pkg/__init__.py 2020-10-02 10:44:14.000000000
+0200
+++ new/pymod2pkg-0.28.0/pymod2pkg/__init__.py 2024-01-07 16:56:19.000000000
+0100
@@ -10,8 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-import argparse
-import distro
import re
@@ -106,21 +104,49 @@
return (pkg, py2pkg, py3pkg)
+def default_suse_py39_tr(mod):
+ """
+ Default translation function for openSUSE, SLES, and other
+ SUSE based systems that have python 3.9
+
+ Returns a tuple of 3 elements - the unversioned name, the python2 versioned
+ name and the python3 versioned name.
+ """
+ pkg = 'python-%s' % mod
+ py2pkg = 'python2-%s' % mod
+ py3pkg = 'python39-%s' % mod
+ return (pkg, py2pkg, py3pkg)
+
+
+def default_suse_py311_tr(mod):
+ """
+ Default translation function for openSUSE, SLES, and other
+ SUSE based systems that have python 3.11
+
+ Returns a tuple of 3 elements - the unversioned name, the python2 versioned
+ name and the python3 versioned name.
+ """
+ pkg = 'python-%s' % mod
+ py2pkg = 'python2-%s' % mod
+ py3pkg = 'python311-%s' % mod
+ return (pkg, py2pkg, py3pkg)
+
+
def openstack_prefix_tr(mod):
pkg = 'openstack-' + mod.lower()
- return (pkg, '', '')
+ return (pkg, pkg, pkg)
def rdo_horizon_plugins_tr(mod):
mod = mod.replace('dashboard', 'ui')
pkg = 'openstack-' + mod
- return (pkg, '', '')
+ return (pkg, pkg, pkg)
def suse_horizon_plugins_tr(mod):
mod = mod.replace('dashboard', 'ui')
pkg = 'openstack-horizon-plugin-' + mod
- return (pkg, '', '')
+ return (pkg, pkg, pkg)
def rdo_xstatic_tr(mod):
@@ -155,7 +181,7 @@
'Tempest', 'aodh', 'barbican', 'ceilometer', 'cinder',
'cloudkitty', 'cyborg', 'designate', 'ec2-api', 'freezer', 'freezer-api',
'freezer-dr', 'glance', 'heat', 'heat-templates', 'ironic',
- 'ironic-discoverd', 'ironic-inspector', 'ironic-python-agent', 'karbor',
+ 'ironic-discoverd', 'ironic-inspector', 'ironic-python-agent',
'keystone', 'magnum', 'manila', 'masakari', 'masakari-monitors',
'mistral', 'monasca-agent', 'monasca-api', 'monasca-ceilometer',
'monasca-log-api', 'monasca-notification', 'monasca-persister',
@@ -198,14 +224,19 @@
SingleRule('nosexcover', 'python-nose-xcover',
py3pkg='python3-nose-xcover'),
SingleRule('posix_ipc', 'python-posix_ipc', py3pkg='python3-posix_ipc'),
+ SingleRule('prometheus-client', 'python-prometheus_client',
+ py3pkg='python3-prometheus_client'),
SingleRule('sysv_ipc', 'python-sysv_ipc', py3pkg='python3-sysv_ipc'),
SingleRule('oslosphinx', 'python-oslo-sphinx',
py3pkg='python3-oslo-sphinx'),
SingleRule('ovs', 'python-openvswitch', py3pkg='python3-openvswitch'),
+ SingleRule('psycopg2-binary', 'python-psycopg2',
+ py3pkg='python3-psycopg2'),
SingleRule('pyinotify', 'python-inotify', py3pkg='python3-inotify'),
SingleRule('pyScss', 'python-scss', py3pkg='python3-scss'),
SingleRule('tripleo-incubator', 'openstack-tripleo'),
SingleRule('pika-pool', 'python-pika_pool', py3pkg='python3-pika_pool'),
+ SingleRule('suds-community', 'python-suds', py3pkg='python3-suds'),
SingleRule('suds-jurko', 'python-suds', py3pkg='python3-suds'),
SingleRule('supervisor', 'supervisor', py3pkg='python3-supervisor'),
SingleRule('wsgi_intercept', 'python-wsgi_intercept',
@@ -223,21 +254,26 @@
SingleRule('networking-l2gw', 'openstack-neutron-l2gw'),
SingleRule('neutron-dynamic-routing', 'openstack-neutron-dynamic-routing'),
SingleRule('m2crypto', 'm2crypto'),
- SingleRule('libvirt-python', 'libvirt-python', py3pkg='libvirt-python3'),
+ SingleRule('libvirt-python', 'python-libvirt', py3pkg='python3-libvirt'),
SingleRule('tempest-horizon', 'python-horizon-tests-tempest'),
SingleRule('rtslib-fb', 'python-rtslib', py3pkg='python3-rtslib'),
- SingleRule('PyYAML', 'PyYAML', py3pkg='python3-PyYAML'),
+ SingleRule('PyYAML', 'python-pyyaml', py3pkg='python3-pyyaml'),
SingleRule('pyOpenSSL', 'python-pyOpenSSL', py3pkg='python3-pyOpenSSL'),
SingleRule('semantic_version', 'python-semantic_version',
py3pkg='python3-semantic_version'),
+ SingleRule('semantic-version', 'python-semantic_version',
+ py3pkg='python3-semantic_version'),
SingleRule('sphinxcontrib-svg2pdfconverter',
'python-sphinxcontrib-rsvgconverter',
py3pkg='python3-sphinxcontrib-rsvgconverter'),
+ SingleRule('systemd-python', 'python-systemd', py3pkg='python3-systemd'),
# simple direct mapping no name change
MultiRule(
+ mods=['dib-utils', 'diskimage-builder'],
+ pkgfun=lambda mod: ((mod, mod, mod))),
+ # simple direct mapping no name change - except for python3
+ MultiRule(
mods=['numpy', 'pyflakes', 'pylint',
- 'dib-utils',
- 'diskimage-builder',
'graphviz',
'instack-undercloud',
'os-apply-config',
@@ -245,9 +281,6 @@
'os-net-config',
'os-refresh-config',
'pexpect',
- 'protobuf',
- 'sympy',
- 'systemd-python',
'watchdog',
'pystache', 'pysendfile'],
pkgfun=lambda mod: ((mod, mod, 'python3-' + mod))),
@@ -263,7 +296,7 @@
]
-SUSE_PKG_MAP = [
+SUSE_COMMON_PKG_MAP = [
# not following SUSE naming policy
SingleRule('ansible', 'ansible'),
SingleRule('ansible-runner', 'ansible-runner'),
@@ -276,10 +309,10 @@
'barbican', 'ceilometer', 'cinder', 'cloudkitty',
'congress', 'cue', 'cyborg', 'designate', 'distil', 'drac', 'fuel',
'freezer', 'heat', 'glance', 'glare', 'ironic',
- 'ironic-inspector-', 'karbor', 'k8s', 'keystone',
+ 'ironic-inspector-', 'k8s', 'keystone',
'magnum', 'manila', 'masakari', 'mistral', 'monasca',
'murano', 'nimble', 'neutron', 'nova', 'octavia', 'oneview',
- 'openstack', 'qinling', 'sahara', 'scci', 'searchlight', 'senlin',
+ 'openstack', 'sahara', 'scci', 'senlin',
'smaug', 'solum', 'swift', 'tacker', 'tripleo', 'trove',
'vitrage', 'watcher', 'zaqar', 'zun')],
pkgfun=subst_python2_python3),
@@ -304,8 +337,19 @@
pkgfun=suse_horizon_plugins_tr),
]
+SUSE_PKG_MAP = SUSE_COMMON_PKG_MAP
+
+SUSE_PY39_PKG_MAP = SUSE_COMMON_PKG_MAP
+SUSE_PY39_PKG_MAP.extend([
+ SingleRule('devel', 'python-devel', 'python39-devel'),
+])
+
+SUSE_PY311_PKG_MAP = SUSE_COMMON_PKG_MAP
+SUSE_PY311_PKG_MAP.extend([
+ SingleRule('devel', 'python-devel', 'python311-devel'),
+])
+
UBUNTU_PKG_MAP = [
- SingleRule('django_openstack_auth', 'python-openstack-auth'),
SingleRule('glance_store', 'python-glance-store'),
SingleRule('GitPython', 'python-git'),
SingleRule('libvirt-python', 'python-libvirt'),
@@ -320,10 +364,10 @@
mods=['python-%sclient' % c for c in (
'barbican', 'ceilometer', 'cinder', 'cloudkitty', 'congress',
'designate', 'fuel', 'heat', 'glance', 'ironic',
- 'karbor', 'keystone',
+ 'keystone',
'magnum', 'manila', 'masakari', 'mistral', 'monasca',
'murano', 'neutron', 'nova', 'octavia',
- 'openstack', 'qinling', 'sahara',
+ 'openstack', 'sahara',
'senlin', 'swift',
'trove', 'zaqar', 'zun')],
pkgfun=same_name_python_subst_python3),
@@ -342,6 +386,10 @@
def get_pkg_map(dist):
d_lower = dist.lower()
+ if 'suse_py39' in d_lower:
+ return SUSE_PY39_PKG_MAP
+ if 'suse_py311' in d_lower:
+ return SUSE_PY311_PKG_MAP
if 'suse' in d_lower or 'sles' in d_lower:
return SUSE_PKG_MAP
if 'ubuntu' in d_lower:
@@ -351,6 +399,10 @@
def get_default_tr_func(dist):
d_lower = dist.lower()
+ if 'suse_py39' in d_lower:
+ return default_suse_py39_tr
+ if 'suse_py311' in d_lower:
+ return default_suse_py311_tr
if 'suse' in d_lower or 'sles' in d_lower:
return default_suse_tr
if 'ubuntu' in d_lower:
@@ -408,40 +460,3 @@
if pkglist:
return pkglist[0]
return mod
-
-
-def main():
- """for resolving names from command line"""
- parser = argparse.ArgumentParser(description='Python module name to'
- 'package name')
- group = parser.add_mutually_exclusive_group()
- group.add_argument(
- '--dist', help='distribution style (default: %(default)s)',
- default=distro.LinuxDistribution().id().partition(' ')[0])
- group.add_argument('--upstream', help='map to OpenStack project name',
- action='store_true')
- parser.add_argument('--pyver', help='Python versions to return. "py" is '
- 'the unversioned name',
- action='append', choices=['py', 'py2', 'py3'],
- default=[])
- parser.add_argument('modulename', help='python module name')
- args = vars(parser.parse_args())
-
- pyversions = args['pyver'] if args['pyver'] else ['py']
-
- if args['upstream']:
- print(module2upstream(args['modulename']))
- else:
- pylist = module2package(args['modulename'], args['dist'],
- py_vers=pyversions)
- # When only 1 version is requested, it will be returned as a string,
- # for backwards compatibility. Else, it will be a list.
- if type(pylist) is list:
- print(' '.join(pylist))
- else:
- print(pylist)
-
-
-# for debugging to call the file directly
-if __name__ == "__main__":
- main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/pymod2pkg/cli/pymod2pkg.py
new/pymod2pkg-0.28.0/pymod2pkg/cli/pymod2pkg.py
--- old/pymod2pkg-0.26.0/pymod2pkg/cli/pymod2pkg.py 1970-01-01
01:00:00.000000000 +0100
+++ new/pymod2pkg-0.28.0/pymod2pkg/cli/pymod2pkg.py 2024-01-07
16:56:19.000000000 +0100
@@ -0,0 +1,48 @@
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import argparse
+import distro
+
+import pymod2pkg
+
+
+def main():
+ """for resolving names from command line"""
+ parser = argparse.ArgumentParser(description='Python module name to'
+ 'package name')
+ group = parser.add_mutually_exclusive_group()
+ group.add_argument(
+ '--dist', help='distribution style (default: %(default)s)',
+ default=distro.LinuxDistribution().id().partition(' ')[0])
+ group.add_argument('--upstream', help='map to OpenStack project name',
+ action='store_true')
+ parser.add_argument('--pyver', help='Python versions to return. "py" is '
+ 'the unversioned name',
+ action='append', choices=['py', 'py2', 'py3'],
+ default=[])
+ parser.add_argument('modulename', help='python module name')
+ args = vars(parser.parse_args())
+
+ pyversions = args['pyver'] if args['pyver'] else ['py']
+
+ if args['upstream']:
+ print(pymod2pkg.module2upstream(args['modulename']))
+ else:
+ pylist = pymod2pkg.module2package(args['modulename'], args['dist'],
+ py_vers=pyversions)
+ # When only 1 version is requested, it will be returned as a string,
+ # for backwards compatibility. Else, it will be a list.
+ if type(pylist) is list:
+ print(' '.join(pylist))
+ else:
+ print(pylist)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/pymod2pkg/cli/reqs2pkg.py
new/pymod2pkg-0.28.0/pymod2pkg/cli/reqs2pkg.py
--- old/pymod2pkg-0.26.0/pymod2pkg/cli/reqs2pkg.py 1970-01-01
01:00:00.000000000 +0100
+++ new/pymod2pkg-0.28.0/pymod2pkg/cli/reqs2pkg.py 2024-01-07
16:56:19.000000000 +0100
@@ -0,0 +1,115 @@
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import argparse
+import distro
+import packaging.requirements
+import pymod2pkg
+import sys
+
+
+def get_default_prefix(dist):
+ d_lower = dist.lower()
+ if 'ubuntu' in d_lower:
+ return "Depends"
+ return "Requires"
+
+
+def main():
+ """Process python requirements files into a list of distribution
+ packages"""
+ parser = argparse.ArgumentParser(
+ description='Process python requirements files into a list of '
+ 'distribution packages'
+ )
+ parser.add_argument(
+ '--dist', help='distribution style (default: %(default)s)',
+ default=distro.LinuxDistribution().id().partition(' ')[0])
+ parser.add_argument('--pyver', help='Python versions to return. "py" is '
+ 'the unversioned name',
+ action='append', choices=['py', 'py2', 'py3'],
+ default=[])
+ parser.add_argument('-r', '--requirements', action="append",
+ dest='requirements', required=True, default=[],
+ help="python requirements file to parse")
+ parser.add_argument('-v', '--verbose', dest='verbose', action='count',
+ default=1, help='Invrease verbosity of the program')
+ parser.add_argument('-b', '--brief', dest='verbose', action='store_const',
+ const=0, help='Only generate packagenames')
+ parser.add_argument('--prefix', dest='prefix', nargs='?', const=None,
+ help="Prefix the output with a string provided by "
+ "the user or one determined by the --dist value")
+
+ args = vars(parser.parse_args())
+
+ pyversions = args['pyver'] if args['pyver'] else ['py']
+ if len(pyversions) > 1:
+ print("Please select only one version of python", file=sys.stderr)
+ return 1
+ args['prefix'] = get_default_prefix(args['dist'])
+
+ for reqs_file in args['requirements']:
+ if args['verbose']:
+ print(f'Processing: {reqs_file}')
+ try:
+ with open(reqs_file) as f:
+ reqs_txt = [line.strip() for line in f.readlines()]
+ except FileNotFoundError as ex:
+ print(ex)
+
+ reqs = []
+ for line in reqs_txt:
+ if line.startswith('#') or line == '':
+ continue
+ # TODO(tonyb): Do we need to extend this so that it does the
+ # right thing when given muliple versions of python for example:
+ # requirements,txt":
+ # liba>2;python_version>=3
+ # altlib;python_version<3
+ # We should honor this based on pyversions
+ req = packaging.requirements.Requirement(line.split('#')[0])
+ pkg = pymod2pkg.module2package(req.name, args['dist'],
+ py_vers=pyversions)
+ # We can potentially extend this to include versions
+ # specifications. The exact output will clearly be
+ # distribution specific
+ reqs.append(pkg)
+
+ # This is slightly complex but it handles the following scenarios:
+ # $ reqs2pkg -r test-requirements.txt --dist ubuntu -b
+ # python-stestr
+ # python-testresources
+ # python-testtools
+ # $ reqs2pkg -r test-requirements.txt --dist ubuntu
+ # Processing: test-requirements.txt
+ # Depends: python-stestr, python-testresources, python-testtools
+ # $ reqs2pkg -r test-requirements.txt --dist rhel -b
+ # python-stestr
+ # python-testresources
+ # python-testtools
+ # $ reqs2pkg -r test-requirements.txt --dist rhel
+ # Processing: test-requirements.txt
+ # Requires: python-stestr
+ # Requires: python-testresources
+ # Requires: python-testtools
+ prefix = ''
+ if args['verbose']:
+ prefix = f"{args['prefix']}: "
+ if args['dist'].lower() in 'ubuntu':
+ delim = ", "
+ else:
+ delim = f"\n{prefix}"
+
+ if args['verbose']:
+ print(prefix + delim.join(reqs))
+ else:
+ print("\n".join(reqs))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/pymod2pkg.egg-info/PKG-INFO
new/pymod2pkg-0.28.0/pymod2pkg.egg-info/PKG-INFO
--- old/pymod2pkg-0.26.0/pymod2pkg.egg-info/PKG-INFO 2020-10-02
10:45:04.000000000 +0200
+++ new/pymod2pkg-0.28.0/pymod2pkg.egg-info/PKG-INFO 2024-01-07
16:57:12.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: pymod2pkg
-Version: 0.26.0
+Version: 0.28.0
Summary: python module name to package name map
Home-page: https://docs.openstack.org/pymod2pkg/latest/
Author: OpenStack
@@ -48,7 +48,7 @@
or join the IRC channel on
- http://webchat.freenode.net/?channels=openstack-rpm-packaging
+ http://webchat.oftc.net/?channels=openstack-rpm-packaging
Platform: UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/pymod2pkg.egg-info/SOURCES.txt
new/pymod2pkg-0.28.0/pymod2pkg.egg-info/SOURCES.txt
--- old/pymod2pkg-0.26.0/pymod2pkg.egg-info/SOURCES.txt 2020-10-02
10:45:04.000000000 +0200
+++ new/pymod2pkg-0.28.0/pymod2pkg.egg-info/SOURCES.txt 2024-01-07
16:57:12.000000000 +0100
@@ -1,6 +1,7 @@
.stestr.conf
.zuul.yaml
AUTHORS
+CONTRIBUTING.rst
ChangeLog
LICENSE
MANIFEST.in
@@ -13,6 +14,7 @@
test-requirements.txt
tests.py
tox.ini
+doc/requirements.txt
doc/source/conf.py
doc/source/index.rst
doc/source/static/.placeholder
@@ -24,4 +26,7 @@
pymod2pkg.egg-info/not-zip-safe
pymod2pkg.egg-info/pbr.json
pymod2pkg.egg-info/requires.txt
-pymod2pkg.egg-info/top_level.txt
\ No newline at end of file
+pymod2pkg.egg-info/top_level.txt
+pymod2pkg/cli/__init__.py
+pymod2pkg/cli/pymod2pkg.py
+pymod2pkg/cli/reqs2pkg.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/pymod2pkg.egg-info/entry_points.txt
new/pymod2pkg-0.28.0/pymod2pkg.egg-info/entry_points.txt
--- old/pymod2pkg-0.26.0/pymod2pkg.egg-info/entry_points.txt 2020-10-02
10:45:04.000000000 +0200
+++ new/pymod2pkg-0.28.0/pymod2pkg.egg-info/entry_points.txt 2024-01-07
16:57:12.000000000 +0100
@@ -1,3 +1,4 @@
[console_scripts]
-pymod2pkg = pymod2pkg:main
+pymod2pkg = pymod2pkg.cli.pymod2pkg:main
+reqs2pkg = pymod2pkg.cli.reqs2pkg:main
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/pymod2pkg.egg-info/pbr.json
new/pymod2pkg-0.28.0/pymod2pkg.egg-info/pbr.json
--- old/pymod2pkg-0.26.0/pymod2pkg.egg-info/pbr.json 2020-10-02
10:45:04.000000000 +0200
+++ new/pymod2pkg-0.28.0/pymod2pkg.egg-info/pbr.json 2024-01-07
16:57:12.000000000 +0100
@@ -1 +1 @@
-{"git_version": "3b2f6d7", "is_release": true}
\ No newline at end of file
+{"git_version": "520ee43", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/pymod2pkg.egg-info/requires.txt
new/pymod2pkg-0.28.0/pymod2pkg.egg-info/requires.txt
--- old/pymod2pkg-0.26.0/pymod2pkg.egg-info/requires.txt 2020-10-02
10:45:04.000000000 +0200
+++ new/pymod2pkg-0.28.0/pymod2pkg.egg-info/requires.txt 2024-01-07
16:57:12.000000000 +0100
@@ -1,2 +1,3 @@
distro
+packaging
pbr!=2.1.0,>=2.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/requirements.txt
new/pymod2pkg-0.28.0/requirements.txt
--- old/pymod2pkg-0.26.0/requirements.txt 2020-10-02 10:44:14.000000000
+0200
+++ new/pymod2pkg-0.28.0/requirements.txt 2024-01-07 16:56:19.000000000
+0100
@@ -3,3 +3,4 @@
# process, which may cause wedges in the gate later.
distro
pbr!=2.1.0,>=2.0.0 # Apache-2.0
+packaging
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/setup.cfg
new/pymod2pkg-0.28.0/setup.cfg
--- old/pymod2pkg-0.26.0/setup.cfg 2020-10-02 10:45:04.000000000 +0200
+++ new/pymod2pkg-0.28.0/setup.cfg 2024-01-07 16:57:12.786491600 +0100
@@ -1,12 +1,12 @@
[metadata]
name = pymod2pkg
summary = python module name to package name map
-description-file =
+description_file =
README.rst
author = OpenStack
-author-email = [email protected]
-home-page = https://docs.openstack.org/pymod2pkg/latest/
-python-requires = >=3.6
+author_email = [email protected]
+home_page = https://docs.openstack.org/pymod2pkg/latest/
+python_requires = >=3.6
classifier =
Programming Language :: Python :: 3
Programming Language :: Python :: 3.6
@@ -19,7 +19,8 @@
[entry_points]
console_scripts =
- pymod2pkg = pymod2pkg:main
+ pymod2pkg = pymod2pkg.cli.pymod2pkg:main
+ reqs2pkg = pymod2pkg.cli.reqs2pkg:main
[files]
packages =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/test-requirements.txt
new/pymod2pkg-0.28.0/test-requirements.txt
--- old/pymod2pkg-0.26.0/test-requirements.txt 2020-10-02 10:44:14.000000000
+0200
+++ new/pymod2pkg-0.28.0/test-requirements.txt 2024-01-07 16:56:19.000000000
+0100
@@ -4,6 +4,3 @@
stestr>=2.0.0 # Apache-2.0
testresources>=2.0.0 # Apache-2.0/BSD
testtools>=2.2.0 # MIT
-
-sphinx>=2.0.0,!=2.1.0 # BSD
-openstackdocstheme>=2.2.1 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/tests.py
new/pymod2pkg-0.28.0/tests.py
--- old/pymod2pkg-0.26.0/tests.py 2020-10-02 10:44:14.000000000 +0200
+++ new/pymod2pkg-0.28.0/tests.py 2024-01-07 16:56:19.000000000 +0100
@@ -132,7 +132,8 @@
def test_translation_py2py3_suse(self):
self.assertEqual(pymod2pkg.module2package('nova', 'suse',
py_vers=['py', 'py2', 'py3']),
- ['openstack-nova', '', ''])
+ ['openstack-nova', 'openstack-nova',
+ 'openstack-nova'])
self.assertEqual(pymod2pkg.module2package('aodhclient',
'suse', py_vers=['py2', 'py3']),
['python2-aodhclient', 'python3-aodhclient'])
@@ -149,7 +150,8 @@
['python2-neutronclient', 'python3-neutronclient'])
self.assertEqual(pymod2pkg.module2package('Tempest', 'suse',
py_vers=['py', 'py2', 'py3']),
- ['openstack-tempest', '', ''])
+ ['openstack-tempest', 'openstack-tempest',
+ 'openstack-tempest'])
self.assertEqual(pymod2pkg.module2package('devel', 'suse',
py_vers=['py2', 'py3']),
['python-devel', 'python3-devel'])
@@ -179,7 +181,8 @@
['python-babel', 'python3-babel'])
self.assertEqual(pymod2pkg.module2package('nova', 'fedora',
py_vers=['py', 'py2', 'py3']),
- ['openstack-nova', '', ''])
+ ['openstack-nova', 'openstack-nova',
+ 'openstack-nova'])
class RegexRuleTests(unittest.TestCase):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymod2pkg-0.26.0/tox.ini new/pymod2pkg-0.28.0/tox.ini
--- old/pymod2pkg-0.26.0/tox.ini 2020-10-02 10:44:14.000000000 +0200
+++ new/pymod2pkg-0.28.0/tox.ini 2024-01-07 16:56:19.000000000 +0100
@@ -1,5 +1,5 @@
[tox]
-envlist = py37,pypy,pep8
+envlist = py3,pypy3,pep8
minversion = 3.1
skipsdist = True
ignore_basepython_conflict = True
@@ -13,20 +13,22 @@
OS_STDERR_NOCAPTURE=False
PYTHONHASHSEED=0
deps =
-
-c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
+
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = stestr run {posargs}
[testenv:pep8]
deps = {[testenv]deps}
- flake8<3.8.0,>=3.7.0
+ flake8<7.1.0,>=7.0.0
commands = flake8
[testenv:venv]
commands = {posargs}
[testenv:docs]
+deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
+ -r{toxinidir}/doc/requirements.txt
commands =
sphinx-build -W -b html doc/source doc/build/html
@@ -36,3 +38,6 @@
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
+
+[flake8]
+exclude=.tox,.venv