Reduce the number of Galaxy API calls made during dependency resolution by fetching remote signatures afterwards, since these are not used in backtracking.
Reduce the verbosity to `-vvvv` (to match other Galaxy API calls) to see this activity.
Co-authored-by: Sviatoslav Sydorenko <webknjaz@redhat.com>
(cherry picked from commit 460abe0cef)
* clog frag
* Fix retries so that each explicit call to _call_galaxy is retried for the correct number of attempts. Fixes#80174
* Extend retry logic to common URL related connection errors. Fixes#80170
* Extend retries to downloading artifacts
* Extend param docs for change
* Rework the exception handling
* Don't be overly broad, reduce to TimeoutError, and BadStatusLine for now
* _download_file needs to raise AnsibleError.orig_exc
* Remove unused import
* Add IncompleteRead
* Add socket.timeout for py39
* Add 502 to retry codes
* Move http error code checking first
* Use itertools.tee to replay the backoff_iterator instead of using a callable
* Actually set a CLI default of 60s for timeout, to prevent implicit galaxy from using 10s as default from Request.open
* Import typing
* fix type hints
* Use http.HTTPStatus instead of int HTTP error codes where feasible
* Split exception handling
* Add missing import
---------
.
(cherry picked from commit 2ae013667e)
This patch pre-builds the sdist via build using the self-eliminating
in-tree build backend and then, feeds the result to a pottentially
outdated pip (below v20) so that it uses the setuptools' native
PEP 517 build backend to build a wheel on install.
This change includes backports of the PRs #79606, #80098, #80253, #80255 and #80262, with a number of backward compatibility changes that make it work and be testable in older CI environments.
This patch creates a thin wrapper around the `setuptools`' PEP 517 build backend in-tree. It features an ability to request generating the manpage files in-memory, in the process of building a source distribution. The build is happening in an isolated temporary directory. This toggle is implemented using the `config_settings` mechanism of PEP 517.
One must explicitly pass it a CLI option to the build front-end to trigger said behavior. The packagers are expected to use the following call:
python -m build --config-setting=--build-manpages
This option has no effect on building wheels.
🧪 The change includes integration tests
This test runs building and re-building sdists and wheels with and without the `--build-manpages` config setting under the oldest-supported and new `setuptools` pinned.
It is intended to preserve the interoperability of the packaging setup across Python runtimes.
An extra smoke test also verifies that non PEP 517 interfaces remain functional.
📦 The sdist build-system is switched to pure setuptools upon the first build from Git checkout
This patch modifies the in-tree build backend to build sdists that swap
out pointers to it in the `pyproject.toml`'s `[build-system]` section.
The effect of this is that the first build from source (for example,
from a Git checkout) uses our PEP 517 in-tree build backend. But the
produced tarball has `build-backend` set to `setuptools.build_meta`
which is the native build backend of `setuptools`. So any following
builds from that sdist will skip using the in-tree build backend,
calling the setuptools' one.
The good news is that if the first build generated the manpages, they
will be included and won't go anywhere even though, a different build
system is in place.
Combined with #80253, this makes sure not to modify the current
source checkout on that first build.
Co-Authored-By: Matt Clay <matt@mystile.com>
Co-Authored-By: Matt Davis <6775756+nitzmahone@users.noreply.github.com>
(cherry picked from commit 56036013cd)
(cherry picked from commit 67bafafbc0)
(cherry picked from commit 888abf5d6e)
(cherry picked from commit 7097df3eed)
(cherry picked from commit eebfd71a6d)
This change allows ansible-test to work with newer versions of git on AZP.
(cherry picked from commit bad8843124)
Co-authored-by: Matt Clay <matt@mystile.com>
Scripts previously under `test/utils/shippable/` are now under `.azure-pipelines/commands/` instead..
(cherry picked from commit f47bc03599)
Co-authored-by: Matt Clay <matt@mystile.com>
- Support loading of vendored Python packages.
- Exclude vendored Python packages from payloads.
(cherry picked from commit 6bfe6b899a)
Co-authored-by: Matt Clay <matt@mystile.com>
Always indicate the Python version being used before installing requirements.
(cherry picked from commit 5e3db6e441)
Co-authored-by: Matt Clay <matt@mystile.com>
Integration test target prefixes defined in a `tests/integration/target-prefixes.{group}` file can now contain an underscore (`_`) character.
(cherry picked from commit e6cffce0eb)
Co-authored-by: Matt Clay <matt@mystile.com>
* [stable-2.13] ansible-test - Fix pylint error with old home dir (#80151)
(cherry picked from commit 27287b40c0)
Co-authored-by: Matt Clay <matt@mystile.com>
* ansible-test - Fix error with missing pylint home (#80155)
(cherry picked from commit 367d45facd)
Also improve the ansible-test-container integration test:
- Add coverage for the no-probe code path.
- Add work-arounds for centos6 containers (to support backporting).
- Avoid systemd debug when the container doesn't use cgroup.
(cherry picked from commit 04fc98c794)
Co-authored-by: Matt Clay <matt@mystile.com>
* Omit redundant fact gathering.
* Add connection type to split test.
* Add user info to split integration test.
(cherry picked from commit 2e5e802)
Co-authored-by: Matt Clay <matt@mystile.com>
* ansible-test - More flexible become support.
(cherry picked from commit 5666c6d6a3)
* ansible-test - Add support for more remotes.
(cherry picked from commit 24d91f552c)
* ansible-test - Enable ACLs on FreeBSD remotes.
This allows integration tests to switch from one unprivileged user
to another, sharing files between the users using ACLs.
(cherry picked from commit b63812bc08)
* ansible-test - Enable ACL support on more remotes. (#78299)
(cherry picked from commit 8bb20fe06b)
* ansible-test - Install `acl` on Alpine remotes. (#78303)
(cherry picked from commit 8565deaae3)
* ansible-test - Use sudo for all remotes. (#78310)
(cherry picked from commit f3f4ad9332)
* ansible-test - Fix Ubuntu 20.04 bootstrapping. (#78551)
(cherry picked from commit d683c5bd21)
* ansible-test - Verify executables are executable. (#78606)
(cherry picked from commit ece85abbc4)
* ansible-test - Use --tmpfs to run containers. (#78605)
(cherry picked from commit 4187707f03)
* ansible-test - Remove Fedora 35 support. (#78720)
(cherry picked from commit 38a82a5cc4)
* ansible-test - Fix container error handling. (#78739)
(cherry picked from commit 79f67ed561)
* ansible-test - Improve container management. (#78550)
See changelogs/fragments/ansible-test-container-management.yml for details.
(cherry picked from commit cda16cc5e9)
* ansible-test - Fix container detection. (#79530)
(cherry picked from commit 80d2f8da02)
* Update test matrix symlinks. (#78737)
* Add remote platform symlinks.
These were already supported by ansible-test.
This change adds the symlinks for use in the CI test matrix.
* Remove obsolete AIX test symlink.
AIX was already removed from ansible-test.
(cherry picked from commit 62221a3be2)
* Use patched containers without VOLUME instruction.
* Make test suite compatible with older ansible.
* Fix compatibility with Python 3.8.
* Fix file touch check mode result (#79360) (#79422)
Fixes#79360
(cherry picked from commit 3936b5c471)
* Rename changelog fragment according to PR number
* Enable the `reboot` integration test in CI
Co-Authored-By: Matt Clay <matt@mystile.com>
(cherry picked from commit bb7ad0f0d8)
* [CI] Move running `reboot` integration test to group 2
PR #79289, follow-up for #78402.
It was breaking the integration-aliases sanity test, but only
became apparent post-merge. This patch fixes that.
(cherry picked from commit 26a4775611)
Co-authored-by: Sloane Hertel <19572925+s-hertel@users.noreply.github.com>
This should prevent color codes from interfering with string matches.
(cherry picked from commit 31f9d60b8d)
Co-authored-by: Matt Clay <matt@mystile.com>