409 Commits

Author SHA1 Message Date
Zuul
c4acc5639f Merge "Remove Extension.extras" 5.0.0 2023-01-23 16:01:39 +00:00
Ian Wienand
5189992d71
Order old importlib-metadata results by group
A Debian Buster-based zuul-jobs test started failing when using stestr
recently [1].  Upon further investigation, this is a Python 3.7
environment which is affected by a recent breaking change to
importlib_metadata.

It seems stevedore worked around this with
Ib9c2b0a14edea91e97d122d2ac93b650029f918e, which was released with
3.5.1 -- but I was still seeing the issue.

Upon further investigation, the "real_groups" dict being returned here
with importlib-metadata 4.12.0 is in buckets by group, e.g.

 {'group.one': [EntryPoint(name='foo', ... , group='group.one'),
                EntryPoint(name='bar', ... , group='group.one')],
  'group.two': [EntryPoint(name='moo', ... , group='group.two'),
                EntryPoint(name='goo', ... , group='group.two')],
 }

This current code seems to return a dict with entry-points by thier
name, e.g.

 {'foo': EntryPoint(name='foo', ... , group='group.one),
  'bar': EntryPoint(name='bar', ... , group='group.one),
  'moo': EntryPoint(name='moo', ... , group='group.two),
  'goo': EntryPoint(name='goo', ... , group='group.two)
 }

This reorgansies the fixup routine to put entry-points in a bucket by
their group.  With this change, stestr is again finding it's command
plugins.

[1] https://github.com/mtreinish/stestr/issues/336
[2] https://github.com/python/importlib_metadata/issues/409

Change-Id: I3496ab1dfa312b1098a869cdfd9a0c6f81653b28
4.1.1
2022-10-19 07:57:43 +11:00
Zuul
9eb809421d Merge "Add Python3 antelope unit tests" 4.1.0 2022-10-05 15:24:14 +00:00
Zuul
135e285ec6 Merge "Fix compatibility with Python 3.12, importlib-metadata 5.0" 2022-10-05 11:56:41 +00:00
Zuul
ae36c47165 Merge "Fix compatibility with Python 3.10, 3.9.11" 2022-10-05 11:56:39 +00:00
Stephen Finucane
7eca3f5661 Remove Extension.extras
The behavior of the 'EntryPoint.extras` attribute that this exposes has
changed in recent versions of 'importlib_metadata'/'importlib.metadata'.
In change Iff536d4f4267efbebc4be1e7e5da8a9fde39f79b we applied a
temporary fix to preserve the legacy behavior on these newer versions,
however, given that this is actually a deprecated attribute [1], the
best long-term option seems to be not exposing things. Do just that.

[1] https://packaging.python.org/en/latest/specifications/entry-points/#data-model

Change-Id: Id772d9f002e6945666685138bdef8f8ca32b5229
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2022-10-04 17:26:32 +01:00
Stephen Finucane
28fc7164da Fix compatibility with Python 3.12, importlib-metadata 5.0
importlib-metadata 5.0 has removed support for dict-style interaction
with entrypoints [1]. This is going to eventually affect us when Python
3.12 is released but even before then anyone not properly using upper
constraints with an older Python 3.7-based release (the only Python
version where we require the third-party importlib-metadata package
rather than the stdlib importlib.metadata package) will be bitten. Fix
it now to address both.

[1] dde2b9de29

Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Change-Id: Ib9c2b0a14edea91e97d122d2ac93b650029f918e
Closes-Bug: #1991559
2022-10-04 11:24:25 +01:00
Stephen Finucane
663d56c953 Fix compatibility with Python 3.10, 3.9.11
A fix to 'importlib.metadata' in Python 3.10 [1], later backported to
3.9 and released in 3.9.11 [2], has broken our tests. Fix them.

[1] b1e2868607
[2] 177be52517

Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Closes-bug: #1966040
Change-Id: Iff536d4f4267efbebc4be1e7e5da8a9fde39f79b
2022-10-04 11:23:17 +01:00
Zuul
13a9c2799a Merge "remove unicode from code" 2022-10-03 16:27:53 +00:00
8c546cb6c8 Add Python3 antelope unit tests
This is an automatically generated patch to ensure unit testing
is in place for all the of the tested runtimes for antelope.

See also the PTI in governance [1].

[1]: https://governance.openstack.org/tc/reference/project-testing-interface.html

Change-Id: Ibf3e8d63a7a43e65ac626e50ef42831c4a9b5e41
2022-09-09 09:19:31 +00:00
55e9e1e5e8 Update master for stable/zed
Add file to the reno documentation build to show release notes for
stable/zed.

Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/zed.

Sem-Ver: feature
Change-Id: I258603f7e7304c3e852d6d47bae5e024e33a90f7
2022-09-09 09:19:30 +00:00
wangjiaqi07
c13ac8a0cc remove unicode from code
Change-Id: Ib4c9f766b2844d8a3cdc748fbd9ef98b81aec5a5
2022-08-25 09:14:44 +08:00
Takashi Kajinami
ccd17543a3 Fix remaining logic to support Python 3.6/7
... because this library no longer supports these old versions and
requires Python >= 3.8 now[1].

[1] 8efaa1ceb82300cce19acaf3d5ecd969f6dab3e0

Change-Id: I2b229b24425d3afb9159b2479bd9547e3443011f
4.0.0
2022-06-21 21:54:06 +09:00
Hervé Beraud
8efaa1ceb8 Drop python3.6/3.7 support in testing runtime
In Zed cycle testing runtime, we are targetting to drop the
python 3.6/3.7 support, project started adding python 3.8 as minimum,

example nova:
- 56b5aed08c/setup.cfg (L13)

Also indicates that we support python 3.9.

Change-Id: I1bdec397b1ac563b09174763c20e8a91e5f86143
2022-05-05 16:02:13 +02:00
3e10666e14 Add Python3 zed unit tests
This is an automatically generated patch to ensure unit testing
is in place for all the of the tested runtimes for zed.

See also the PTI in governance [1].

[1]: https://governance.openstack.org/tc/reference/project-testing-interface.html

Change-Id: I5fab51857949a743a07d4639f5e0ba114de19eab
2022-03-04 17:20:49 +00:00
15d258c29e Update master for stable/yoga
Add file to the reno documentation build to show release notes for
stable/yoga.

Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/yoga.

Sem-Ver: feature
Change-Id: I732f42ae437931a824aba788bf434f85100f06fa
2022-03-04 17:20:47 +00:00
442f157193 Add Python3 yoga unit tests
This is an automatically generated patch to ensure unit testing
is in place for all the of the tested runtimes for yoga.

See also the PTI in governance [1].

[1]: https://governance.openstack.org/tc/reference/project-testing-interface.html

Change-Id: Ia489c3d9a47828961b7a8fe736c3bc1ddaaa32cc
3.5.0
2021-09-10 14:41:12 +00:00
ba9469f41e Update master for stable/xena
Add file to the reno documentation build to show release notes for
stable/xena.

Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/xena.

Sem-Ver: feature
Change-Id: I6195a346563189a6867482950b13eda11e0fb5d2
2021-09-10 14:41:10 +00:00
Jason R. Coombs
11da137e3f Rely on member access, the preferred access since importlib_metadata 4.8.
Change-Id: I20a7fe4240cf78e6b863951740c2d0fe9aa28132
Closes: #1941991
2021-09-01 10:55:33 +01:00
Zuul
8846a3f24a Merge "setup.cfg: Replace dashes with underscores" 3.4.0 2021-05-26 18:46:18 +00:00
Zuul
e32c2a0396 Merge "Fix formatting of release list" 2021-05-26 17:20:19 +00:00
maaoyu
cba482114c setup.cfg: Replace dashes with underscores
Setuptools v54.1.0 introduces a warning that the use of dash-separated
options in 'setup.cfg' will not be supported in a future version [1].
Get ahead of the issue by replacing the dashes with underscores. Without
this, we see 'UserWarning' messages like the following on new enough
versions of setuptools:

  UserWarning: Usage of dash-separated 'description-file' will not be
  supported in future versions. Please use the underscore name
  'description_file' instead

[1] https://github.com/pypa/setuptools/commit/a2e9ae4cb

Change-Id: I394e12bf1816e4e23e4f547db4bae89547af7989
2021-05-04 10:08:29 +08:00
Zuul
31c58f24e7 Merge "Add Python3 xena unit tests" 2021-04-16 14:03:43 +00:00
Pierre Riteau
ba1268da18 Fix formatting of release list
Change-Id: I86d06e8b665e4440f6c67e1de8cd3a217ac1d166
2021-04-16 14:22:50 +02:00
wu.shiming
74d6d5867b Remove lower-constraints remnants
These were missed in change: I62d911111b54976a9df726c48f593a52e275fe6c

Change-Id: I4f07ec3617d5e73abbabd45234fe4e67ec395fdb
2021-04-16 11:03:09 +00:00
Zuul
3ce59eee72 Merge "Update master for stable/wallaby" 2021-04-15 18:06:53 +00:00
Daniel Bengtsson
53838531be Move flake8 as a pre-commit local target.
The goal here is to avoid conflicts between flake8 and hacking version each
2 days.

Inspired from nova's approach[1].

The flake8 version to install will be determined by hacking and
requirements[2] will stay aligned instead of relying on different versions.

[1] https://opendev.org/openstack/nova/src/branch/master/.pre-commit-config.yaml#L26-L35
[2] https://opendev.org/openstack/hacking/src/branch/master/requirements.txt#L1

Change-Id: I9ffd46865477b3fa7d43258d67dd0ec224ee6467
2021-03-23 13:11:54 +01:00
518948a489 Add Python3 xena unit tests
This is an automatically generated patch to ensure unit testing
is in place for all the of the tested runtimes for xena.

See also the PTI in governance [1].

[1]: https://governance.openstack.org/tc/reference/project-testing-interface.html

Change-Id: Ib5e435c53f7719b6e64a550c0aec6a2d0d576839
2021-03-18 11:33:52 +00:00
107308ac1d Update master for stable/wallaby
Add file to the reno documentation build to show release notes for
stable/wallaby.

Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/wallaby.

Sem-Ver: feature
Change-Id: I73998aa60325a26fc11418a0b37c1f4524469e32
2021-03-18 11:33:41 +00:00
Zuul
6cd09a820e Merge "Use TOX_CONSTRAINTS_FILE" 2021-01-22 11:19:38 +00:00
Hervé Beraud
90b5daaa9c Dropping lower constraints testing
We facing errors related to the new pip resolver, this
topic was discussed on the ML and QA team proposed to
to test lower-constraints [1].

I propose to drop this test because the complexity and recurring pain needed
to maintain that now exceeds the benefits provided by this mechanismes.

[1] http://lists.openstack.org/pipermail/openstack-discuss/2020-December/019390.html

Change-Id: I62d911111b54976a9df726c48f593a52e275fe6c
2020-12-18 15:15:29 +01:00
Zuul
7d7154f7ea Merge "Use py3 as the default runtime for tox" 3.3.0 2020-11-06 11:43:29 +00:00
Zuul
d7cfadbb7d Merge "Fix cache dir flooding when running from /tmp" 2020-11-05 22:10:11 +00:00
Hervé Beraud
8b6b861813 Use TOX_CONSTRAINTS_FILE
UPPER_CONSTRAINTS_FILE is old name and deprecated
This allows to use upper-constraints file as more
readable way instead of UPPER_CONSTRAINTS_FILE=<lower-constraints file>.

[1] https://review.opendev.org/#/c/722814/
[2] https://zuul-ci.org/docs/zuul-jobs/python-roles.html#rolevar-tox.tox_constraints_file

Change-Id: I03900ffe9e59ad3f4f8f89329a9e1b9c6844b1b1
2020-11-04 10:53:22 +01:00
Hervé Beraud
41a4d63d38 Use py3 as the default runtime for tox
Moving on py3 as the default runtime for tox to avoid to update this at
each new cycle.

Wallaby support officially the following runtimes [1]:
- Python 3.6
- Python 3.8

During Victoria Python 3.7 was used as the default runtime [2] however this
version isn't longer officially supported.

[1] https://governance.openstack.org/tc/reference/runtimes/wallaby.html#python-runtimes-for-wallaby
[2] https://governance.openstack.org/tc/reference/runtimes/victoria.html#python-runtimes-for-victoria

Change-Id: Ieb5fd2c1efd9297b9b589e6f13cbe5e0a4cb73cb
2020-11-03 16:14:05 +01:00
Zuul
9f4a7d1e26 Merge "Adding pre-commit" 2020-10-05 16:59:20 +00:00
Hervé Beraud
de9b2fc6a1 Adding pre-commit
Introduced changes:
- pre-commit config and rules.
- Add pre-commit to pep8 gate, Flake8 is covered in the pre-commit hooks.
- Applying fixes for pre-commit compliance in all code.

Also commit hash will be used instead of version tags in pre-commit to
prevend arbitrary code from running in developer's machines.

pre-commit will be used to:
- trailing whitespace;
- Replaces or checks mixed line ending (mixed-line-ending);
- Forbid files which have a UTF-8 byte-order marker
  (check-byte-order-marker);
- Checks that non-binary executables have a proper
  shebang (check-executables-have-shebangs);
- Check for files that contain merge conflict strings
  (check-merge-conflict);
- Check for debugger imports and py37+ breakpoint()
  calls in python source (debug-statements);
- Attempts to load all yaml files to verify syntax (check-yaml);
- Run flake8 checks (flake8) (local)

For further details about tests please refer to:
https://github.com/pre-commit/pre-commit-hooks

Change-Id: I045fa1cd7932d960e1cf49b2c335c7acdeba0b46
Signed-off-by: Moisés Guimarães de Medeiros <moguimar@redhat.com>
2020-09-15 13:40:37 +02:00
Artem Goncharov
3a46e29141 Fix cache dir flooding when running from /tmp
Ansible invokes modules with executable placed under /tmp. This
causes stevedore caching to create bazillions of useless cache files.
When we can identify we run with executable under /tmp or if in the
target cache directory an empty file '.disable' is present - skip
writing cache.

Change-Id: Ic483ac68027505402ba32d7f612631e15a678d09
2020-09-14 16:06:14 +02:00
1f41eccb3a Add Python3 wallaby unit tests
This is an automatically generated patch to ensure unit testing
is in place for all the of the tested runtimes for wallaby.

See also the PTI in governance [1].

[1]: https://governance.openstack.org/tc/reference/project-testing-interface.html

Change-Id: I1a592855fcb07e982b7b25688026646d51961096
2020-09-11 21:03:34 +00:00
371f87edd4 Update master for stable/victoria
Add file to the reno documentation build to show release notes for
stable/victoria.

Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/victoria.

Change-Id: I111d3307dd6af6d814d5f685f3acd7a41e5168e0
Sem-Ver: feature
2020-09-11 21:03:32 +00:00
Evgeni Golov
274eaa6c54 fix supported python versions in documentation
Change-Id: Ia92d5b8f6194d9f7ba2f3221fe378dafe23be567
victoria-em 3.2.2
2020-09-08 09:22:31 +02:00
zhangziwen
efb338e00b Fix the bug 1892610. There're some syntax errors in the comment of stevedore code.
There is a syntax error in the comment of stevedore code.
For example, in the HookManager class:
    :param on_load_failure_callback: Callback function that will be called when
        a entrypoint can not be loaded.
Here should not be `a entrypoint`, just `an entrypoint` instead.

Fixes: bug #1892610

Change-Id: Ic2aaf5f467bcecaec6adff1ead8e159ae749ac50
3.2.1
2020-08-23 10:27:26 +08:00
Doug Hellmann
e9204ee7b7
add property methods to extension for more entry point values
The underlying EntryPoint class has some similar methods to fetch
these values, but they depend on the version of importlib.metadata
that is installed, so this provides a consistent API

Change-Id: I7a1b9541f0e4042a224e49c890ba3c63e8a5a259
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
3.2.0
2020-07-12 17:50:24 -04:00
Doug Hellmann
bc04ca91e0
sphinxext: fix warning message for detailed list
Fix the way the warning for undocumented modules in a detail list is
produced. The new importlib.metadata.EntryPoint type is derived from
namedtuple so using string interpolation means the multi-part tuple
causes an error. Take the opportunity to include a more detailed
message.

Change-Id: I02223a982258a1bf8fc28fa91c7c090c7ac3554e
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
3.1.0
2020-07-12 15:01:34 -04:00
Doug Hellmann
5eb3ef2de3
add release note before major version update
Change-Id: I1ffe194f9edfffac07c9c78f9691e999f2e61246
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
3.0.0
2020-07-10 14:19:16 -04:00
Doug Hellmann
d5297167e0 switch to importlib.metadata package
Load entry points using 'importlib.metadata' instead of 'pkg_resources'.

Include a caching layer.  The cache stores the parsed text data from all
of the ini input files in a single JSON file with a name based on the
hash of the path entries and the mtimes. This should produce a unique
filename for each import path, regardless of the use of a virtualenv.

The data is stored in a format that means no other files need to be
examined or parsed in order to return EntryPoint objects.

Change-Id: I8b08f289d446f4775eac1e1a91997fa96f25f641
Depends-On: Ic6db7af34c87a636bfe55bacae03c42154f4b9c7
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2020-07-06 08:39:52 -04:00
Sean McGinnis
01c12eca14
Remove Travis CI config
Travis is not actually used for this repo. Remove the old configuration
file to clean things up.

Change-Id: I862f8e0222a7f0e12c7b67ad305e021b76859fe4
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2.0.1
2020-06-08 08:16:34 -05:00
Michał Górny
34b9a13049 Replace external mock with built-in unittest.mock
Now that stevedore does not support Python 2 anymore, there is no need
to ever use the external 'mock' package.  Python 3.3+ has it integrated
as 'unittest.mock', so just use that.

Change-Id: I28a50cac12670bb6987b4c7794a15e15aa1fe965
Signed-off-by: Michał Górny <mgorny@gentoo.org>
2020-06-05 15:46:27 +02:00
Zuul
0c10f5cf21 Merge "Stop to use the __future__ module." 2.0.0 2020-06-03 11:06:55 +00:00
Hervé Beraud
db43e802fb Stop to use the __future__ module.
The __future__ module [1] was used in this context to ensure compatibility
between python 2 and python 3.

We previously dropped the support of python 2.7 [2] and now we only support
python 3 so we don't need to continue to use this module and the imports
listed below.

Imports commonly used and their related PEPs:
- `division` is related to PEP 238 [3]
- `print_function` is related to PEP 3105 [4]
- `unicode_literals` is related to PEP 3112 [5]
- `with_statement` is related to PEP 343 [6]
- `absolute_import` is related to PEP 328 [7]

[1] https://docs.python.org/3/library/__future__.html
[2] https://governance.openstack.org/tc/goals/selected/ussuri/drop-py27.html
[3] https://www.python.org/dev/peps/pep-0238
[4] https://www.python.org/dev/peps/pep-3105
[5] https://www.python.org/dev/peps/pep-3112
[6] https://www.python.org/dev/peps/pep-0343
[7] https://www.python.org/dev/peps/pep-0328

Change-Id: I5f8107287877dc5dc4a12c1f85e8671c8d49f56f
2020-06-03 10:34:57 +02:00