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 - cloud-de...@suse.de + +- 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">cloud-de...@suse.de</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 <colleen.mur...@suse.de> Corey Bryant <corey.bry...@canonical.com> Dirk Mueller <d...@dmllr.de> +Dirk Müller <d...@dmllr.de> Doug Hellmann <d...@doughellmann.com> Flavio Percoco <flape...@gmail.com> Ghanshyam Mann <gm...@ghanshyammann.com> @@ -26,6 +27,7 @@ Jon Schlueter <jschl...@redhat.com> Joseph Davis <joseph.da...@suse.com> Ken Dreyer <kdre...@redhat.com> +Kendall Nelson <kennelso...@gmail.com> OndÅej Nový <ondrej.n...@firma.seznam.cz> Ryan Tidwell <rtidw...@suse.com> Sean McGinnis <sean.mcgin...@gmail.com> @@ -33,8 +35,14 @@ Sumit Jamgade <sjamg...@suse.com> Thomas Bechtold <tbecht...@suse.com> Tomasz TrÄbski <tomasz.treb...@ts.fujitsu.com> +Tony Breeds <t...@bakeyournoodle.com> Tony Xu <hhkt...@gmail.com> +karolinku <kk...@redhat.com> liuwei <liuw...@chinaunicom.cn> loooosy <syluo5...@fiberhome.com> +maaoyu <maa...@inspur.com> malei <malei@maleideMacBook-Pro.local> +manchandavishal <manchandavishal...@gmail.com> melissaml <ma....@99cloud.net> +wangjiaqi07 <wangjiaq...@inspur.com> +zhangboye <zhangb...@inspur.com> 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 = openstack-disc...@lists.openstack.org -home-page = https://docs.openstack.org/pymod2pkg/latest/ -python-requires = >=3.6 +author_email = openstack-disc...@lists.openstack.org +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