Merge branch 'devel' into issues/81549

pull/81550/head
Matt Anson 2 months ago
commit ca638c1ec0

@ -31,7 +31,7 @@ variables:
- name: fetchDepth - name: fetchDepth
value: 500 value: 500
- name: defaultContainer - name: defaultContainer
value: quay.io/ansible/azure-pipelines-test-container:4.0.1 value: quay.io/ansible/azure-pipelines-test-container:6.0.0
pool: Standard pool: Standard
@ -54,12 +54,12 @@ stages:
nameFormat: Python {0} nameFormat: Python {0}
testFormat: units/{0} testFormat: units/{0}
targets: targets:
- test: 3.7
- test: 3.8 - test: 3.8
- test: 3.9 - test: 3.9
- test: '3.10' - test: '3.10'
- test: 3.11 - test: 3.11
- test: 3.12 - test: 3.12
- test: 3.13
- stage: Windows - stage: Windows
dependsOn: [] dependsOn: []
jobs: jobs:
@ -68,35 +68,46 @@ stages:
nameFormat: Server {0} nameFormat: Server {0}
testFormat: windows/{0}/1 testFormat: windows/{0}/1
targets: targets:
- test: 2016 - name: 2016 WinRM HTTP
- test: 2019 test: 2016/winrm/http
- test: 2022 - name: 2019 WinRM HTTPS
test: 2019/winrm/https
- name: 2022 WinRM HTTPS
test: 2022/winrm/https
- name: 2022 PSRP HTTP
test: 2022/psrp/http
- name: 2022 SSH Key
test: 2022/ssh/key
- stage: Remote - stage: Remote
dependsOn: [] dependsOn: []
jobs: jobs:
- template: templates/matrix.yml # context/target - template: templates/matrix.yml # context/target
parameters: parameters:
targets: targets:
- name: macOS 13.2 - name: macOS 14.3
test: macos/13.2 test: macos/14.3
- name: RHEL 9.3 py39 - name: RHEL 9.4 py39
test: rhel/9.3@3.9 test: rhel/9.4@3.9
- name: RHEL 9.3 py311 - name: RHEL 9.4 py312
test: rhel/9.3@3.11 test: rhel/9.4@3.12
- name: FreeBSD 13.2 - name: FreeBSD 13.3
test: freebsd/13.2 test: freebsd/13.3
- name: FreeBSD 14.1
test: freebsd/14.1
groups: groups:
- 1 - 1
- 2 - 2
- template: templates/matrix.yml # context/controller - template: templates/matrix.yml # context/controller
parameters: parameters:
targets: targets:
- name: macOS 13.2 - name: macOS 14.3
test: macos/13.2 test: macos/14.3
- name: RHEL 9.3 - name: RHEL 9.4
test: rhel/9.3 test: rhel/9.4
- name: FreeBSD 13.2 - name: FreeBSD 13.3
test: freebsd/13.2 test: freebsd/13.3
- name: FreeBSD 14.1
test: freebsd/14.1
groups: groups:
- 3 - 3
- 4 - 4
@ -104,44 +115,44 @@ stages:
- template: templates/matrix.yml # context/controller (ansible-test container management) - template: templates/matrix.yml # context/controller (ansible-test container management)
parameters: parameters:
targets: targets:
- name: Alpine 3.18 - name: Alpine 3.20
test: alpine/3.18 test: alpine/3.20
- name: Fedora 39 - name: Fedora 40
test: fedora/39 test: fedora/40
- name: RHEL 9.3 - name: RHEL 9.4
test: rhel/9.3 test: rhel/9.4
- name: Ubuntu 22.04 - name: Ubuntu 24.04
test: ubuntu/22.04 test: ubuntu/24.04
groups: groups:
- 6 - 6
- stage: Docker - stage: Docker
dependsOn: [] dependsOn: []
jobs: jobs:
- template: templates/matrix.yml - template: templates/matrix.yml # context/target
parameters: parameters:
testFormat: linux/{0} testFormat: linux/{0}
targets: targets:
- name: Alpine 3 - name: Alpine 3.20
test: alpine3 test: alpine320
- name: Fedora 39 - name: Fedora 40
test: fedora39 test: fedora40
- name: Ubuntu 20.04
test: ubuntu2004
- name: Ubuntu 22.04 - name: Ubuntu 22.04
test: ubuntu2204 test: ubuntu2204
- name: Ubuntu 24.04
test: ubuntu2404
groups: groups:
- 1 - 1
- 2 - 2
- template: templates/matrix.yml - template: templates/matrix.yml # context/controller
parameters: parameters:
testFormat: linux/{0} testFormat: linux/{0}
targets: targets:
- name: Alpine 3 - name: Alpine 3.20
test: alpine3 test: alpine320
- name: Fedora 39 - name: Fedora 40
test: fedora39 test: fedora40
- name: Ubuntu 22.04 - name: Ubuntu 24.04
test: ubuntu2204 test: ubuntu2404
groups: groups:
- 3 - 3
- 4 - 4
@ -154,9 +165,9 @@ stages:
nameFormat: Python {0} nameFormat: Python {0}
testFormat: galaxy/{0}/1 testFormat: galaxy/{0}/1
targets: targets:
- test: '3.10'
- test: 3.11 - test: 3.11
- test: 3.12 - test: 3.12
- test: 3.13
- stage: Generic - stage: Generic
dependsOn: [] dependsOn: []
jobs: jobs:
@ -165,9 +176,9 @@ stages:
nameFormat: Python {0} nameFormat: Python {0}
testFormat: generic/{0}/1 testFormat: generic/{0}/1
targets: targets:
- test: '3.10'
- test: 3.11 - test: 3.11
- test: 3.12 - test: 3.12
- test: 3.13
- stage: Incidental_Windows - stage: Incidental_Windows
displayName: Incidental Windows displayName: Incidental Windows
dependsOn: [] dependsOn: []
@ -177,9 +188,16 @@ stages:
nameFormat: Server {0} nameFormat: Server {0}
testFormat: i/windows/{0} testFormat: i/windows/{0}
targets: targets:
- test: 2016 - name: 2016 WinRM HTTP
- test: 2019 test: 2016/winrm/http
- test: 2022 - name: 2019 WinRM HTTPS
test: 2019/winrm/https
- name: 2022 WinRM HTTPS
test: 2022/winrm/https
- name: 2022 PSRP HTTP
test: 2022/psrp/http
- name: 2022 SSH Key
test: 2022/ssh/key
- stage: Incidental - stage: Incidental
dependsOn: [] dependsOn: []
jobs: jobs:
@ -189,8 +207,6 @@ stages:
targets: targets:
- name: IOS Python - name: IOS Python
test: ios/csr1000v/ test: ios/csr1000v/
- name: VyOS Python
test: vyos/1.1.8/
- stage: Summary - stage: Summary
condition: succeededOrFailed() condition: succeededOrFailed()
dependsOn: dependsOn:

@ -6,6 +6,8 @@ declare -a args
IFS='/:' read -ra args <<< "$1" IFS='/:' read -ra args <<< "$1"
version="${args[1]}" version="${args[1]}"
connection="${args[2]}"
connection_setting="${args[3]}"
target="shippable/windows/incidental/" target="shippable/windows/incidental/"
@ -26,11 +28,7 @@ if [ -s /tmp/windows.txt ] || [ "${CHANGED:+$CHANGED}" == "" ]; then
echo "Detected changes requiring integration tests specific to Windows:" echo "Detected changes requiring integration tests specific to Windows:"
cat /tmp/windows.txt cat /tmp/windows.txt
echo "Running Windows integration tests for multiple versions concurrently." echo "Running Windows integration tests for the version ${version}."
platforms=(
--windows "${version}"
)
else else
echo "No changes requiring integration tests specific to Windows were detected." echo "No changes requiring integration tests specific to Windows were detected."
echo "Running Windows integration tests for a single version only: ${single_version}" echo "Running Windows integration tests for a single version only: ${single_version}"
@ -39,14 +37,10 @@ else
echo "Skipping this job since it is for: ${version}" echo "Skipping this job since it is for: ${version}"
exit 0 exit 0
fi fi
platforms=(
--windows "${version}"
)
fi fi
# shellcheck disable=SC2086 # shellcheck disable=SC2086
ansible-test windows-integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \ ansible-test windows-integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \
"${platforms[@]}" \ --controller "docker:default,python=${python_default}" \
--docker default --python "${python_default}" \ --target "remote:windows/${version},connection=${connection}+${connection_setting},provider=${provider}" \
--remote-terminate always --remote-stage "${stage}" --remote-provider "${provider}" --remote-terminate always --remote-stage "${stage}"

@ -6,7 +6,9 @@ declare -a args
IFS='/:' read -ra args <<< "$1" IFS='/:' read -ra args <<< "$1"
version="${args[1]}" version="${args[1]}"
group="${args[2]}" connection="${args[2]}"
connection_setting="${args[3]}"
group="${args[4]}"
target="shippable/windows/group${group}/" target="shippable/windows/group${group}/"
@ -31,11 +33,7 @@ if [ -s /tmp/windows.txt ] || [ "${CHANGED:+$CHANGED}" == "" ]; then
echo "Detected changes requiring integration tests specific to Windows:" echo "Detected changes requiring integration tests specific to Windows:"
cat /tmp/windows.txt cat /tmp/windows.txt
echo "Running Windows integration tests for multiple versions concurrently." echo "Running Windows integration tests for the version ${version}."
platforms=(
--windows "${version}"
)
else else
echo "No changes requiring integration tests specific to Windows were detected." echo "No changes requiring integration tests specific to Windows were detected."
echo "Running Windows integration tests for a single version only: ${single_version}" echo "Running Windows integration tests for a single version only: ${single_version}"
@ -44,17 +42,13 @@ else
echo "Skipping this job since it is for: ${version}" echo "Skipping this job since it is for: ${version}"
exit 0 exit 0
fi fi
platforms=(
--windows "${version}"
)
fi fi
for version in "${python_versions[@]}"; do for py_version in "${python_versions[@]}"; do
changed_all_target="all" changed_all_target="all"
changed_all_mode="default" changed_all_mode="default"
if [ "${version}" == "${python_default}" ]; then if [ "${py_version}" == "${python_default}" ]; then
# smoketest tests # smoketest tests
if [ "${CHANGED}" ]; then if [ "${CHANGED}" ]; then
# with change detection enabled run tests for anything changed # with change detection enabled run tests for anything changed
@ -80,7 +74,7 @@ for version in "${python_versions[@]}"; do
fi fi
# terminate remote instances on the final python version tested # terminate remote instances on the final python version tested
if [ "${version}" = "${python_versions[-1]}" ]; then if [ "${py_version}" = "${python_versions[-1]}" ]; then
terminate="always" terminate="always"
else else
terminate="never" terminate="never"
@ -88,7 +82,8 @@ for version in "${python_versions[@]}"; do
# shellcheck disable=SC2086 # shellcheck disable=SC2086
ansible-test windows-integration --color -v --retry-on-error "${ci}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \ ansible-test windows-integration --color -v --retry-on-error "${ci}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \
"${platforms[@]}" --changed-all-target "${changed_all_target}" --changed-all-mode "${changed_all_mode}" \ --changed-all-target "${changed_all_target}" --changed-all-mode "${changed_all_mode}" \
--docker default --python "${version}" \ --controller "docker:default,python=${py_version}" \
--remote-terminate "${terminate}" --remote-stage "${stage}" --remote-provider "${provider}" --target "remote:windows/${version},connection=${connection}+${connection_setting},provider=${provider}" \
--remote-terminate "${terminate}" --remote-stage "${stage}"
done done

@ -4,9 +4,14 @@ Hi! Nice to see you here!
## QUESTIONS ? ## QUESTIONS ?
Please see the [Community Guide](https://docs.ansible.com/ansible/latest/community/index.html) for information on how to ask questions on the [mailing lists](https://docs.ansible.com/ansible/latest/community/communication.html#mailing-list-information) and IRC. If you have questions about anything related to Ansible, get in touch with us!
See [Communicating with the Ansible community](https://docs.ansible.com/ansible/devel/community/communication.html) to find out how.
The GitHub issue tracker is not the best place for questions for various reasons, but both IRC and the mailing list are very helpful places for those things, as the community page explains best. The [Community Guide](https://docs.ansible.com/ansible/devel/community/index.html) also explains how to contribute
and interact with the project, including how to submit bug reports and code to Ansible.
Please note that the GitHub issue tracker is not the best place to ask questions for several reasons.
You'll get more helpful, and quicker, responses in the forum.
## CONTRIBUTING ? ## CONTRIBUTING ?
@ -14,15 +19,18 @@ By contributing to this project you agree to the [Developer Certificate of Origi
The Ansible project is licensed under the [GPL-3.0](COPYING) or later. Some portions of the code fall under other licenses as noted in individual files. The Ansible project is licensed under the [GPL-3.0](COPYING) or later. Some portions of the code fall under other licenses as noted in individual files.
The Ansible project accepts contributions through GitHub pull requests. Please review the [Community Guide](https://docs.ansible.com/ansible/latest/community/index.html) for more information on contributing to Ansible. The Ansible project accepts contributions through GitHub pull requests.
Please review the [Community Guide](https://docs.ansible.com/ansible/devel/community/index.html) for more information on contributing to Ansible.
## BUG TO REPORT ? ## BUG TO REPORT ?
First and foremost, also check the [Community Guide](https://docs.ansible.com/ansible/latest/community/index.html). First and foremost, also check the [Community Guide](https://docs.ansible.com/ansible/devel/community/index.html).
You can report bugs or make enhancement requests at the [Ansible GitHub issue page](http://github.com/ansible/ansible/issues/new/choose) by filling out the issue template that will be presented. You can report bugs or make enhancement requests at
the [Ansible GitHub issue page](http://github.com/ansible/ansible/issues/new/choose) by filling out the issue template that will be presented.
Also please make sure you are testing on the latest released version of Ansible or the development branch; see the [Installation Guide](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html) for details. Also please make sure you are testing on the latest released version of Ansible or the development branch.
See the [Installation Guide](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html) for details.
Thanks! Thanks!

@ -19,13 +19,14 @@ body:
Also test if the latest release and devel branch are affected too. Also test if the latest release and devel branch are affected too.
**Tip:** If you are seeking community support, please consider **Tip:** If you are seeking community support, please see
[starting a mailing list thread or chatting in IRC][ML||IRC]. [Communicating with the Ansible community][communication] to
get in touch and ask questions.
[ML||IRC]: [communication]:
https://docs.ansible.com/ansible-core/devel/community/communication.html?utm_medium=github&utm_source=issue_form--bug_report.yml#mailing-list-information https://docs.ansible.com/ansible/devel/community/communication.html
[issue search]: ../search?q=is%3Aissue&type=issues [issue search]: ../search?q=is%3Aissue&type=issues
@ -54,7 +55,7 @@ body:
<em>Why?</em> <em>Why?</em>
</summary> </summary>
We would do it by ourselves but unfortunatelly, the curent We would do it by ourselves but unfortunately, the current
edition of GitHub Issue Forms Alpha does not support this yet 🤷 edition of GitHub Issue Forms Alpha does not support this yet 🤷
@ -258,7 +259,7 @@ body:
description: | description: |
Read the [Ansible Code of Conduct][CoC] first. Read the [Ansible Code of Conduct][CoC] first.
[CoC]: https://docs.ansible.com/ansible/latest/community/code_of_conduct.html?utm_medium=github&utm_source=issue_form--bug_report.yml [CoC]: https://docs.ansible.com/ansible/devel/community/code_of_conduct.html?utm_medium=github&utm_source=issue_form--bug_report.yml
options: options:
- label: I agree to follow the Ansible Code of Conduct - label: I agree to follow the Ansible Code of Conduct
required: true required: true

@ -2,7 +2,7 @@
blank_issues_enabled: false # default: true blank_issues_enabled: false # default: true
contact_links: contact_links:
- name: 🔐 Security bug report 🔥 - name: 🔐 Security bug report 🔥
url: https://docs.ansible.com/ansible/latest/community/reporting_bugs_and_features.html?utm_medium=github&utm_source=issue_template_chooser url: https://docs.ansible.com/ansible/devel/community/reporting_bugs_and_features.html?utm_medium=github&utm_source=issue_template_chooser
about: | about: |
Please learn how to report security vulnerabilities here. Please learn how to report security vulnerabilities here.
@ -11,12 +11,12 @@ contact_links:
a prompt response. a prompt response.
For more information, see For more information, see
https://docs.ansible.com/ansible/latest/community/reporting_bugs_and_features.html https://docs.ansible.com/ansible/devel/community/reporting_bugs_and_features.html
- name: 📝 Ansible Code of Conduct - name: 📝 Ansible Code of Conduct
url: https://docs.ansible.com/ansible/latest/community/code_of_conduct.html?utm_medium=github&utm_source=issue_template_chooser url: https://docs.ansible.com/ansible/devel/community/code_of_conduct.html?utm_medium=github&utm_source=issue_template_chooser
about: ❤ Be nice to other members of the community. ☮ Behave. about: ❤ Be nice to other members of the community. ☮ Behave.
- name: 💬 Talks to the community - name: 💬 Talk to the community
url: https://docs.ansible.com/ansible/latest/community/communication.html?utm_medium=github&utm_source=issue_template_chooser#mailing-list-information url: https://docs.ansible.com/ansible/devel/community/communication.html?utm_medium=github&utm_source=issue_template_chooser#mailing-list-information
about: Please ask and answer usage questions here about: Please ask and answer usage questions here
- name: ⚡ Working groups - name: ⚡ Working groups
url: https://github.com/ansible/community/wiki url: https://github.com/ansible/community/wiki

@ -22,12 +22,14 @@ body:
Also test if the latest release and devel branch are affected too. Also test if the latest release and devel branch are affected too.
**Tip:** If you are seeking community support, please consider **Tip:** If you are seeking community support, please see
[starting a mailing list thread or chatting in IRC][ML||IRC]. [Communicating with the Ansible community][communication] to
get in touch and ask questions.
[ML||IRC]:
https://docs.ansible.com/ansible-core/devel/community/communication.html?utm_medium=github&utm_source=issue_form--documentation_report.yml#mailing-list-information [communication]:
https://docs.ansible.com/ansible/devel/community/communication.html
[issue search]: ../search?q=is%3Aissue&type=issues [issue search]: ../search?q=is%3Aissue&type=issues
@ -205,7 +207,7 @@ body:
description: | description: |
Read the [Ansible Code of Conduct][CoC] first. Read the [Ansible Code of Conduct][CoC] first.
[CoC]: https://docs.ansible.com/ansible/latest/community/code_of_conduct.html?utm_medium=github&utm_source=issue_form--documentation_report.yml [CoC]: https://docs.ansible.com/ansible/devel/community/code_of_conduct.html?utm_medium=github&utm_source=issue_form--documentation_report.yml
options: options:
- label: I agree to follow the Ansible Code of Conduct - label: I agree to follow the Ansible Code of Conduct
required: true required: true

@ -21,8 +21,7 @@ body:
If unsure, consider filing a [new proposal] instead outlining your If unsure, consider filing a [new proposal] instead outlining your
use-cases, the research and implementation considerations. Then, use-cases, the research and implementation considerations. Then,
start a discussion on one of the public [IRC meetings] we have just start a discussion in the [Ansible forum][forum].
for this.
<details> <details>
@ -44,21 +43,22 @@ body:
Also test if the devel branch does not already implement this. Also test if the devel branch does not already implement this.
**Tip:** If you are seeking community support, please consider **Tip:** If you are seeking community support, please see
[starting a mailing list thread or chatting in IRC][ML||IRC]. [Communicating with the Ansible community][communication] to
get in touch and ask questions.
[contribute to collections]: [contribute to collections]:
https://docs.ansible.com/ansible-core/devel/community/contributing_maintained_collections.html?utm_medium=github&utm_source=issue_form--feature_request.yml https://docs.ansible.com/ansible-core/devel/community/contributing_maintained_collections.html?utm_medium=github&utm_source=issue_form--feature_request.yml
[IRC meetings]: [communication]:
https://docs.ansible.com/ansible-core/devel/community/communication.html?utm_medium=github&utm_source=issue_form--feature_request.yml#irc-meetings https://docs.ansible.com/ansible/devel/community/communication.html
[issue search]: ../search?q=is%3Aissue&type=issues [issue search]: ../search?q=is%3Aissue&type=issues
[ML||IRC]: [forum help]:
https://docs.ansible.com/ansible-core/devel/community/communication.html?utm_medium=github&utm_source=issue_form--feature_request.yml#mailing-list-information https://forum.ansible.com/c/help/6
[new proposal]: ../../proposals/issues/new [new proposal]: ../../proposals/issues/new
@ -109,7 +109,7 @@ body:
<em>Why?</em> <em>Why?</em>
</summary> </summary>
We would do it by ourselves but unfortunatelly, the curent We would do it by ourselves but unfortunately, the current
edition of GitHub Issue Forms Alpha does not support this yet 🤷 edition of GitHub Issue Forms Alpha does not support this yet 🤷
@ -185,7 +185,7 @@ body:
description: | description: |
Read the [Ansible Code of Conduct][CoC] first. Read the [Ansible Code of Conduct][CoC] first.
[CoC]: https://docs.ansible.com/ansible/latest/community/code_of_conduct.html?utm_medium=github&utm_source=issue_form--feature_request.yml [CoC]: https://docs.ansible.com/ansible/devel/community/code_of_conduct.html?utm_medium=github&utm_source=issue_form--feature_request.yml
options: options:
- label: I agree to follow the Ansible Code of Conduct - label: I agree to follow the Ansible Code of Conduct
required: true required: true

@ -1,25 +0,0 @@
##### SUMMARY
<!--- Describe the change below, including rationale and design decisions -->
<!--- HINT: Include "Fixes #nnn" if you are fixing an existing issue -->
##### ISSUE TYPE
<!--- Pick one below and delete the rest -->
- Bugfix Pull Request
- Docs Pull Request
- Feature Pull Request
- Test Pull Request
##### ADDITIONAL INFORMATION
<!--- Include additional information to help people understand the change here -->
<!--- A step-by-step reproduction of the problem is helpful if there is no related issue -->
<!--- Paste verbatim command output below, e.g. before and after your change -->
```paste below
```

@ -0,0 +1 @@
PULL_REQUEST_TEMPLATE/Unclear purpose or motivation.md

@ -0,0 +1,20 @@
##### SUMMARY
<!--- Describe the change below, including rationale and design decisions -->
<!--- HINT: Include "Fixes #nnn" if you are fixing an existing issue -->
##### ISSUE TYPE
- Bugfix Pull Request
##### ADDITIONAL INFORMATION
<!--- Include additional information to help people understand the change here -->
<!--- A step-by-step reproduction of the problem is helpful if there is no related issue -->
<!--- Paste verbatim command output below, e.g. before and after your change -->
```paste below
```

@ -0,0 +1,19 @@
##### SUMMARY
<!--- Describe the change below, including rationale -->
<!--- HINT: Include "Closes #nnn" if you are fixing an existing issue -->
##### ISSUE TYPE
- Docs Pull Request
##### ADDITIONAL INFORMATION
<!--- Include additional information to help people understand the change here -->
<!--- Paste verbatim command output below, e.g. before and after your change -->
```paste below
```

@ -0,0 +1,19 @@
##### SUMMARY
<!--- Describe the change below, including rationale and design decisions -->
<!--- HINT: Include "Resolves #nnn" if you are fixing an existing issue -->
##### ISSUE TYPE
- Feature Pull Request
##### ADDITIONAL INFORMATION
<!--- Include additional information to help people understand the change here -->
<!--- Paste verbatim command output below, e.g. before and after your change -->
```paste below
```

@ -0,0 +1 @@
Unclear purpose or motivation.md

@ -0,0 +1,20 @@
##### SUMMARY
<!--- Describe the change below, including rationale and design decisions -->
<!--- HINT: Include "Closes #nnn" if you are fixing an existing issue -->
##### ISSUE TYPE
- Test Pull Request
##### ADDITIONAL INFORMATION
<!--- Include additional information to help people understand the change here -->
<!--- A step-by-step reproduction of the problem is helpful if there is no related issue -->
<!--- Paste verbatim command output below, e.g. before and after your change -->
```paste below
```

@ -0,0 +1,25 @@
##### SUMMARY
<!--- Describe the change below, including rationale and design decisions -->
<!--- HINT: Include "Fixes #nnn" if you are fixing an existing issue -->
##### ISSUE TYPE
<!--- Pick one below and delete the rest -->
- Bugfix Pull Request
- Docs Pull Request
- Feature Pull Request
- Test Pull Request
##### ADDITIONAL INFORMATION
<!--- Include additional information to help people understand the change here -->
<!--- A step-by-step reproduction of the problem is helpful if there is no related issue -->
<!--- Paste verbatim command output below, e.g. before and after your change -->
```paste below
```

@ -1,3 +1,5 @@
2.19.0 What Is and What Should Never Be
2.18.0 Fool in the Rain
2.17.0 Gallows Pole 2.17.0 Gallows Pole
2.16.0 All My Love 2.16.0 All My Love
2.15.0 Ten Years Gone 2.15.0 Ten Years Gone

2
.gitignore vendored

@ -92,6 +92,8 @@ Vagrantfile
/lib/ansible_base.egg-info/ /lib/ansible_base.egg-info/
# First used in the `devel` branch during Ansible 2.11 development. # First used in the `devel` branch during Ansible 2.11 development.
/lib/ansible_core.egg-info/ /lib/ansible_core.egg-info/
# First used in the `devel` branch during Ansible 2.18 development.
/ansible_core.egg-info/
# vendored lib dir # vendored lib dir
lib/ansible/_vendor/* lib/ansible/_vendor/*
!lib/ansible/_vendor/__init__.py !lib/ansible/_vendor/__init__.py

@ -1,11 +1,10 @@
include COPYING include COPYING
include bin/*
include changelogs/CHANGELOG*.rst include changelogs/CHANGELOG*.rst
include changelogs/changelog.yaml include changelogs/changelog.yaml
include licenses/*.txt include licenses/*.txt
include requirements.txt include requirements.txt
recursive-include packaging *.py *.j2 recursive-include packaging *.py *.j2
recursive-include test/integration * recursive-include test/integration *
recursive-include test/sanity *.in *.json *.py *.txt recursive-include test/sanity *.in *.json *.py *.txt *.ini
recursive-include test/support *.py *.ps1 *.psm1 *.cs *.md recursive-include test/support *.py *.ps1 *.psm1 *.cs *.md
recursive-include test/units * recursive-include test/units *

@ -1,9 +1,9 @@
[![PyPI version](https://img.shields.io/pypi/v/ansible-core.svg)](https://pypi.org/project/ansible-core) [![PyPI version](https://img.shields.io/pypi/v/ansible-core.svg)](https://pypi.org/project/ansible-core)
[![Docs badge](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://docs.ansible.com/ansible/latest/) [![Docs badge](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://docs.ansible.com/ansible/latest/)
[![Chat badge](https://img.shields.io/badge/chat-IRC-brightgreen.svg)](https://docs.ansible.com/ansible/latest/community/communication.html) [![Chat badge](https://img.shields.io/badge/chat-IRC-brightgreen.svg)](https://docs.ansible.com/ansible/devel/community/communication.html)
[![Build Status](https://dev.azure.com/ansible/ansible/_apis/build/status/CI?branchName=devel)](https://dev.azure.com/ansible/ansible/_build/latest?definitionId=20&branchName=devel) [![Build Status](https://dev.azure.com/ansible/ansible/_apis/build/status/CI?branchName=devel)](https://dev.azure.com/ansible/ansible/_build/latest?definitionId=20&branchName=devel)
[![Ansible Code of Conduct](https://img.shields.io/badge/code%20of%20conduct-Ansible-silver.svg)](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html) [![Ansible Code of Conduct](https://img.shields.io/badge/code%20of%20conduct-Ansible-silver.svg)](https://docs.ansible.com/ansible/devel/community/code_of_conduct.html)
[![Ansible mailing lists](https://img.shields.io/badge/mailing%20lists-Ansible-orange.svg)](https://docs.ansible.com/ansible/latest/community/communication.html#mailing-list-information) [![Ansible mailing lists](https://img.shields.io/badge/mailing%20lists-Ansible-orange.svg)](https://docs.ansible.com/ansible/devel/community/communication.html#mailing-list-information)
[![Repository License](https://img.shields.io/badge/license-GPL%20v3.0-brightgreen.svg)](COPYING) [![Repository License](https://img.shields.io/badge/license-GPL%20v3.0-brightgreen.svg)](COPYING)
[![Ansible CII Best Practices certification](https://bestpractices.coreinfrastructure.org/projects/2372/badge)](https://bestpractices.coreinfrastructure.org/projects/2372) [![Ansible CII Best Practices certification](https://bestpractices.coreinfrastructure.org/projects/2372/badge)](https://bestpractices.coreinfrastructure.org/projects/2372)
@ -40,21 +40,33 @@ features and fixes, directly. Although it is reasonably stable, you are more lik
breaking changes when running the `devel` branch. We recommend getting involved breaking changes when running the `devel` branch. We recommend getting involved
in the Ansible community if you want to run the `devel` branch. in the Ansible community if you want to run the `devel` branch.
## Get Involved ## Communication
* Read [Community Information](https://docs.ansible.com/ansible/latest/community) for all Join the Ansible forum to ask questions, get help, and interact with the
community.
* [Get Help](https://forum.ansible.com/c/help/6): Find help or share your Ansible knowledge to help others.
Use tags to filter and subscribe to posts, such as the following:
* Posts tagged with [ansible](https://forum.ansible.com/tag/ansible)
* Posts tagged with [ansible-core](https://forum.ansible.com/tag/ansible-core)
* Posts tagged with [playbook](https://forum.ansible.com/tag/playbook)
* [Social Spaces](https://forum.ansible.com/c/chat/4): Meet and interact with fellow enthusiasts.
* [News & Announcements](https://forum.ansible.com/c/news/5): Track project-wide announcements including social events.
* [Bullhorn newsletter](https://docs.ansible.com/ansible/devel/community/communication.html#the-bullhorn): Get release announcements and important changes.
For more ways to get in touch, see [Communicating with the Ansible community](https://docs.ansible.com/ansible/devel/community/communication.html).
## Contribute to Ansible
* Check out the [Contributor's Guide](./.github/CONTRIBUTING.md).
* Read [Community Information](https://docs.ansible.com/ansible/devel/community) for all
kinds of ways to contribute to and interact with the project, kinds of ways to contribute to and interact with the project,
including mailing list information and how to submit bug reports and including how to submit bug reports and code to Ansible.
code to Ansible.
* Join a [Working Group](https://github.com/ansible/community/wiki),
an organized community devoted to a specific technology domain or platform.
* Submit a proposed code update through a pull request to the `devel` branch. * Submit a proposed code update through a pull request to the `devel` branch.
* Talk to us before making larger changes * Talk to us before making larger changes
to avoid duplicate efforts. This not only helps everyone to avoid duplicate efforts. This not only helps everyone
know what is going on, but it also helps save time and effort if we decide know what is going on, but it also helps save time and effort if we decide
some changes are needed. some changes are needed.
* For a list of email lists, IRC channels and Working Groups, see the
[Communication page](https://docs.ansible.com/ansible/latest/community/communication.html)
## Coding Guidelines ## Coding Guidelines
@ -67,7 +79,7 @@ We document our Coding Guidelines in the [Developer Guide](https://docs.ansible.
* The `devel` branch corresponds to the release actively under development. * The `devel` branch corresponds to the release actively under development.
* The `stable-2.X` branches correspond to stable releases. * The `stable-2.X` branches correspond to stable releases.
* Create a branch based on `devel` and set up a [dev environment](https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_general.html#common-environment-setup) if you want to open a PR. * Create a branch based on `devel` and set up a [dev environment](https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_general.html#common-environment-setup) if you want to open a PR.
* See the [Ansible release and maintenance](https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html) page for information about active branches. * See the [Ansible release and maintenance](https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html) page for information about active branches.
## Roadmap ## Roadmap

@ -1 +0,0 @@
../lib/ansible/cli/scripts/ansible_connection_cli_stub.py

@ -1,2 +1,2 @@
ancestor: 2.16.0 ancestor: 2.18.0
releases: {} releases: {}

@ -1,3 +0,0 @@
---
bugfixes:
- apt_repository - do not modify repo files if the file is a symlink (https://github.com/ansible/ansible/issues/49809).

@ -1,2 +0,0 @@
bugfixes:
- check if there are attributes to set before attempting to set them (https://github.com/ansible/ansible/issues/76727)

@ -1,3 +0,0 @@
---
bugfixes:
- iptables - set jump to DSCP when set_dscp_mark or set_dscp_mark_class is set (https://github.com/ansible/ansible/issues/77077).

@ -1,2 +0,0 @@
bugfixes:
- "``include_role`` - properly execute ``v2_playbook_on_include`` and ``v2_runner_on_failed`` callbacks as well as increase ``ok`` and ``failed`` stats in the play recap, when appropriate (https://github.com/ansible/ansible/issues/77336)"

@ -1,3 +0,0 @@
---
bugfixes:
- Do not print undefined error message twice (https://github.com/ansible/ansible/issues/78703).

@ -1,5 +0,0 @@
bugfixes:
- Cache host_group_vars after instantiating it once and limit the amount of repetitive work it needs to do every time it runs.
- Call PluginLoader.all() once for vars plugins, and load vars plugins that run automatically or are enabled specifically by name subsequently.
deprecated_features:
- Old style vars plugins which use the entrypoints `get_host_vars` or `get_group_vars` are deprecated. The plugin should be updated to inherit from `BaseVarsPlugin` and define a `get_vars` method as the entrypoint.

@ -1,2 +0,0 @@
bugfixes:
- dnf - properly set gpg check options on enabled repositories according to the ``disable_gpg_check`` option (https://github.com/ansible/ansible/issues/80110)

@ -1,2 +0,0 @@
minor_changes:
- ansible.builtin.user - Remove user not found warning (https://github.com/ansible/ansible/issues/80267)

@ -1,2 +0,0 @@
minor_changes:
- "Add ``dump`` and ``passno`` mount information to facts component (https://github.com/ansible/ansible/issues/80478)"

@ -1,3 +0,0 @@
---
bugfixes:
- Provide additional information about the alternative plugin in the deprecation message (https://github.com/ansible/ansible/issues/80561).

@ -1,2 +0,0 @@
bugfixes:
- dnf - properly skip unavailable packages when ``skip_broken`` is enabled (https://github.com/ansible/ansible/issues/80590)

@ -1,2 +0,0 @@
bugfixes:
- Interpreter discovery - Add ``Amzn`` to ``OS_FAMILY_MAP`` for correct family fallback for interpreter discovery (https://github.com/ansible/ansible/issues/80882).

@ -1,3 +0,0 @@
---
bugfixes:
- Consolidate systemd detection logic into one place (https://github.com/ansible/ansible/issues/80975).

@ -1,2 +0,0 @@
bugfixes:
- include_vars - fix calculating ``depth`` relative to the root and ensure all files are included (https://github.com/ansible/ansible/issues/80987).

@ -1,2 +0,0 @@
bugfixes:
- Properly template tags in parent blocks (https://github.com/ansible/ansible/issues/81053)

@ -1,3 +0,0 @@
---
bugfixes:
- Reword the error message when the module fails to parse parameters in JSON format (https://github.com/ansible/ansible/issues/81188).

@ -1,2 +0,0 @@
bugfixes:
- flush_handlers - properly handle a handler failure in a nested block when ``force_handlers`` is set (http://github.com/ansible/ansible/issues/81532)

@ -1,2 +0,0 @@
bugfixes:
- "``ansible.module_utils.service`` - ensure binary data transmission in ``daemonize()``"

@ -1,16 +0,0 @@
---
bugfixes:
- >-
ansible-galaxy - started allowing the use of pre-releases
for dependencies on any level of the dependency tree that
specifically demand exact pre-release versions of
collections and not version ranges.
(https://github.com/ansible/ansible/pull/81606)
- >-
ansible-galaxy - started allowing the use of pre-releases
for collections that do not have any stable versions
published.
(https://github.com/ansible/ansible/pull/81606)
...

@ -1,3 +0,0 @@
---
bugfixes:
- vars - handle exception while combining VarsWithSources and dict (https://github.com/ansible/ansible/issues/81659).

@ -1,2 +0,0 @@
bugfixes:
- Fix ``run_once`` being incorrectly interpreted on handlers (https://github.com/ansible/ansible/issues/81666)

@ -1,2 +0,0 @@
bugfixes:
- unarchive - add support for 8 character permission strings for zip archives (https://github.com/ansible/ansible/pull/81705).

@ -1,2 +0,0 @@
removed_features:
- Remove deprecated JINJA2_NATIVE_WARNING environment variable (https://github.com/ansible/ansible/issues/81714)

@ -1,3 +0,0 @@
---
removed_features:
- Remove deprecated APIs from ansible-docs (https://github.com/ansible/ansible/issues/81716).

@ -1,2 +0,0 @@
removed_features:
- Remove deprecated crypt support from ansible.utils.encrypt (https://github.com/ansible/ansible/issues/81717)

@ -1,2 +0,0 @@
bugfixes:
- Allow for searching handler subdir for included task via include_role (https://github.com/ansible/ansible/issues/81722)

@ -1,3 +0,0 @@
---
minor_changes:
- ansible-test - Updated the CloudStack test container to version 1.7.0.

@ -1,3 +0,0 @@
---
minor_changes:
- filter plugin - Add the count and mandatory_count parameters in the regex_replace filter

@ -1,2 +0,0 @@
bugfixes:
- ansible-galaxy - Provide a better error message when using a requirements file with an invalid format - https://github.com/ansible/ansible/issues/81901

@ -1,3 +0,0 @@
---
bugfixes:
- Fix setting proper locale for git executable when running on non english systems, ensuring git output can always be parsed.

@ -1,3 +0,0 @@
---
minor_changes:
- apt_repository.py - use api.launchpad.net endpoint instead of launchpad.net/api

@ -1,3 +0,0 @@
---
bugfixes:
- find - do not fail on Permission errors (https://github.com/ansible/ansible/issues/82027).

@ -1,3 +0,0 @@
---
minor_changes:
- removed the unused argument ``create_new_password`` from ``CLI.build_vault_ids`` (https://github.com/ansible/ansible/pull/82066).

@ -1,2 +0,0 @@
bugfixes:
- ansible-galaxy role import - exit with 1 when the import fails (https://github.com/ansible/ansible/issues/82175).

@ -1,6 +0,0 @@
---
bugfixes:
- ansible.builtin.uri - the module was ignoring the ``force`` parameter and always
requesting a cached copy (via the ``If-Modified-Since`` header) when downloading
to an existing local file. Disable caching when ``force`` is ``true``, as
documented (https://github.com/ansible/ansible/issues/82166).

@ -1,2 +0,0 @@
bugfixes:
- Fix issue where an ``include_tasks`` handler in a role was not able to locate a file in ``tasks/`` when ``tasks_from`` was used as a role entry point and ``main.yml`` was not present (https://github.com/ansible/ansible/issues/82241)

@ -1,4 +0,0 @@
---
minor_changes:
- ansible-test - sanity test allows ``EXAMPLES`` to be multi-document YAML (https://github.com/ansible/ansible/issues/82353).
- ansible-test - document block name now included in error message for YAML parsing errors (https://github.com/ansible/ansible/issues/82353).

@ -1,3 +0,0 @@
---
bugfixes:
- assemble - fixed missing parameter 'content' in _get_diff_data API (https://github.com/ansible/ansible/issues/82359).

@ -1,2 +0,0 @@
bugfixes:
- Run all handlers with the same ``listen`` topic, even when notified from another handler (https://github.com/ansible/ansible/issues/82363).

@ -1,2 +0,0 @@
bugfixes:
- "facts - detect VMware ESXi 8.0 virtualization by product name VMware20,1"

@ -1,2 +0,0 @@
minor_changes:
- "ansible-doc - treat double newlines in documentation strings as paragraph breaks. This is useful to create multi-paragraph notes in module/plugin documentation (https://github.com/ansible/ansible/pull/82465)."

@ -1,2 +0,0 @@
bugfixes:
- distribution.py - Recognize ALP-Dolomite as part of the SUSE OS family in Ansible, fixing its previous misidentification (https://github.com/ansible/ansible/pull/82496).

@ -1,2 +0,0 @@
minor_changes:
- "constructed inventory plugin - Adding a note that only group_vars of explicit groups are loaded (https://github.com/ansible/ansible/pull/82580)."

@ -1,2 +0,0 @@
bugfixes:
- templating - ensure syntax errors originating from a template being compiled into Python code object result in a failure (https://github.com/ansible/ansible/issues/82606)

@ -0,0 +1,3 @@
minor_changes:
- copy - parameter ``local_follow`` was incorrectly documented as having default value ``True`` (https://github.com/ansible/ansible/pull/83643).
- copy - fix sanity test failures (https://github.com/ansible/ansible/pull/83643).

@ -0,0 +1,2 @@
bugfixes:
- get_url - fix honoring ``filename`` from the ``content-disposition`` header even when the type is ``inline`` (https://github.com/ansible/ansible/issues/83690)

@ -0,0 +1,2 @@
minor_changes:
- "runtime-metadata sanity test - improve validation of ``action_groups`` (https://github.com/ansible/ansible/pull/83965)."

@ -0,0 +1,3 @@
minor_changes:
- Added a -vvvvv log message indicating when a host fails to produce output within the timeout period.
- SSH Escalation-related -vvv log messages now include the associated host information.

@ -1,2 +0,0 @@
bugfixes:
- ansible-galaxy role install - normalize tarfile paths and symlinks using ``ansible.utils.path.unfrackpath`` and consider them valid as long as the realpath is in the tarfile's role directory (https://github.com/ansible/ansible/issues/81965).

@ -1,3 +0,0 @@
minor_changes:
- ansible-test - Add Fedora 39 remote.
- ansible-test - Add Fedora 39 container.

@ -1,2 +0,0 @@
bugfixes:
- ansible-test - Fix parsing of cgroup entries which contain a ``:`` in the path (https://github.com/ansible/ansible/issues/81977).

@ -1,3 +0,0 @@
minor_changes:
- ansible-test - When invoking ``sleep`` in containers during container setup, the ``env`` command is used to avoid invoking
the shell builtin, if present.

@ -1,6 +0,0 @@
---
bugfixes:
- ansible-test — Python 3.83.12 will use ``coverage`` v7.3.2.
...

@ -1,2 +0,0 @@
minor_changes:
- ansible-test - Special handling for installation of ``cryptography`` has been removed, as it is no longer necessary.

@ -1,3 +0,0 @@
minor_changes:
- ansible-test - Update the base and default containers to use Ubuntu 22.04 for the base image.
This also updates PowerShell to version 7.4.0 with .NET 8.0.0 and ShellCheck to version 0.8.0.

@ -1,3 +0,0 @@
minor_changes:
- ansible-test - Updated the distro test containers to version 6.3.0 to include coverage 7.3.2 for Python 3.8+.
The alpine3 container is now based on 3.18 instead of 3.17 and includes Python 3.11 instead of Python 3.10.

@ -1,5 +0,0 @@
bugfixes:
- ansible-test - Properly detect docker host when using ``ssh://`` protocol for connecting to the docker daemon.
- ansible-test - Explicitly supply ``ControlPath=none`` when setting up port forwarding over SSH to address
the scenario where the local ssh configuration uses ``ControlPath`` for all hosts, and would prevent
ports to be forwarded after the initial connection to the host.

@ -1,2 +1,2 @@
minor_changes: minor_changes:
- ansible-test - Bump the ``nios-test-container`` from version 2.0.0 to version 3.0.0. - ansible-test - Update ``nios-test-container`` to version 6.0.0.

@ -1,3 +0,0 @@
minor_changes:
- ansible-test - When ansible-test installs requirements, it now instructs pip to allow installs on externally managed environments as defined by PEP 668.
This only occurs in ephemeral environments managed by ansible-test, such as containers, or when the `--requirements` option is used.

@ -1,3 +0,0 @@
bugfixes:
- ansible-test - Update ``pylint`` to version 3.0.1.
- ansible-test - Include missing ``pylint`` requirements for Python 3.10.

@ -1,2 +0,0 @@
bugfixes:
- ansible-test - Add a ``pylint`` plugin to work around a known issue on Python 3.12.

@ -1,2 +0,0 @@
minor_changes:
- ansible-test - Make Python 3.12 the default version used in the ``base`` and ``default`` containers.

@ -1,2 +0,0 @@
minor_changes:
- "ansible-test - Remove rhel/9.2 test remote"

@ -1,2 +0,0 @@
minor_changes:
- ansible-test - Add support for RHEL 9.3 remotes.

@ -1,3 +0,0 @@
minor_changes:
- ansible-test - Remove Fedora 38 remote support.
- ansible-test - Remove Fedora 38 test container.

@ -1,3 +0,0 @@
minor_changes:
- ansible-test - Removed the ``no-basestring`` sanity test.
The test is no longer necessary now that Python 3 is required.

@ -1,3 +0,0 @@
minor_changes:
- ansible-test - Removed the ``no-dict-iteritems``, ``no-dict-iterkeys`` and ``no-dict-itervalues`` sanity tests.
The tests are no longer necessary since Python 3 is required.

@ -1,3 +0,0 @@
minor_changes:
- ansible-test - Removed the ``no-main-display`` sanity test.
The unwanted pattern is unlikely to occur, since the test has existed since Ansible 2.8.

@ -1,3 +0,0 @@
minor_changes:
- ansible-test - Removed the ``no-unicode-literals`` sanity test.
The test is unnecessary now that Python 3 is required and the ``unicode_literals`` feature has no effect.

@ -1,3 +0,0 @@
minor_changes:
- ansible-test - The ``shellcheck`` sanity test no longer disables the ``SC2164`` check.
In most cases, seeing this error means the script is missing ``set -e``.

@ -1,3 +0,0 @@
minor_changes:
- ansible-test - The ``unidiomatic-typecheck`` rule has been removed from the ``validate-modules`` sanity test.
- ansible-test - The ``unidiomatic-typecheck`` rule has been enabled in the ``pylint`` sanity test.

@ -0,0 +1,5 @@
minor_changes:
- ansible-test - Update ``pylint`` sanity test to use version 3.3.1.
- ansible-test - Default to Python 3.13 in the ``base`` and ``default`` containers.
- ansible-test - Disable the ``deprecated-`` prefixed ``pylint`` rules as their results vary by Python version.
- ansible-test - Update the ``base`` and ``default`` containers.

@ -1,2 +0,0 @@
minor_changes:
- ansible-test - Removed fallback to ``virtualenv`` when ``-m venv`` is non-functional.

@ -1,6 +0,0 @@
bugfixes:
- Fix for when ``any_errors_fatal`` was ignored if error occurred in a block with always (https://github.com/ansible/ansible/issues/31543)
- Fix ``force_handlers`` not working with ``any_errors_fatal`` (https://github.com/ansible/ansible/issues/36308)
- Fix tasks in always section not being executed for nested blocks with ``any_errors_fatal`` (https://github.com/ansible/ansible/issues/73246)
- "``any_errors_fatal`` should fail all hosts and rescue all of them when a ``rescue`` section is specified (https://github.com/ansible/ansible/issues/80981)"
- Fix issues when tasks withing nested blocks wouldn't run when ``force_handlers`` is set (https://github.com/ansible/ansible/issues/81533)

@ -1,4 +0,0 @@
minor_changes:
- module argument spec - Allow module authors to include arbitrary additional context in the argument spec, by making use of a new top level key
called ``context``. This key should be a dict type. This allows for users to customize what they place in the argument spec, without having to
ignore sanity tests that validate the schema.

@ -1,2 +0,0 @@
bugfixes:
- set_option method for plugins to update config now properly passes through type casting and validation.

@ -1,2 +0,0 @@
minor_changes:
- validate-modules tests now correctly handles ``choices`` in dictionary format.

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save