mirror of
https://github.com/ansible/ansible.git
synced 2026-02-14 08:23:13 -05:00
Compare commits
57 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
55ee8acd65 | ||
|
|
c0a6166fd1 | ||
|
|
754d8eb868 | ||
|
|
fe6654bc8c | ||
|
|
19428e37af | ||
|
|
f704b0c7ef | ||
|
|
4e2136cdbd | ||
|
|
79a243940f | ||
|
|
8de1d8ea3f | ||
|
|
cc7b984418 | ||
|
|
0feb43a333 | ||
|
|
9d38ce7007 | ||
|
|
f5fc17ad39 | ||
|
|
9db2cae072 | ||
|
|
bc15b10d18 | ||
|
|
85a7a5ae15 | ||
|
|
ba5ba3ccfc | ||
|
|
560b1af96d | ||
|
|
8a85ee8363 | ||
|
|
032d91897b | ||
|
|
2721b0d50a | ||
|
|
2ca84eea86 | ||
|
|
549a6acac8 | ||
|
|
453a706c85 | ||
|
|
3e33dc5cbf | ||
|
|
f83bccc457 | ||
|
|
fb61d54216 | ||
|
|
061c504e98 | ||
|
|
48789c4efc | ||
|
|
f14923276c | ||
|
|
5431f258b8 | ||
|
|
163a6ec526 | ||
|
|
110993bbfd | ||
|
|
bdba82ff07 | ||
|
|
405e2bf2bf | ||
|
|
ed60501603 | ||
|
|
d0552b56ef | ||
|
|
ab4d37a803 | ||
|
|
1b6bcc53b1 | ||
|
|
3f7cfd961c | ||
|
|
bef8eece4b | ||
|
|
cc6a93f23e | ||
|
|
59dc766d7d | ||
|
|
a4776f850c | ||
|
|
4f1fe10921 | ||
|
|
ff29cd4ff0 | ||
|
|
06f272129c | ||
|
|
0f079fd23f | ||
|
|
cbeb1da98b | ||
|
|
7db5959813 | ||
|
|
40b11f86fb | ||
|
|
580eb781dc | ||
|
|
f23224d7b4 | ||
|
|
418746dcfc | ||
|
|
48ef23fe4f | ||
|
|
00ee6040b6 | ||
|
|
21de43ab65 |
548 changed files with 2401 additions and 5576 deletions
|
|
@ -90,16 +90,16 @@ stages:
|
|||
targets:
|
||||
- name: macOS 15.3
|
||||
test: macos/15.3
|
||||
- name: RHEL 9.7 py39
|
||||
test: rhel/9.7@3.9
|
||||
- name: RHEL 9.7 py312
|
||||
test: rhel/9.7@3.12
|
||||
- name: RHEL 10.1
|
||||
test: rhel/10.1
|
||||
- name: RHEL 9.6 py39
|
||||
test: rhel/9.6@3.9
|
||||
- name: RHEL 9.6 py312
|
||||
test: rhel/9.6@3.12
|
||||
- name: RHEL 10.0
|
||||
test: rhel/10.0
|
||||
- name: FreeBSD 13.5
|
||||
test: freebsd/13.5
|
||||
- name: FreeBSD 14.3
|
||||
test: freebsd/14.3
|
||||
- name: FreeBSD 15.0
|
||||
test: freebsd/15.0
|
||||
groups:
|
||||
- 1
|
||||
- 2
|
||||
|
|
@ -108,12 +108,10 @@ stages:
|
|||
targets:
|
||||
- name: macOS 15.3
|
||||
test: macos/15.3
|
||||
- name: RHEL 9.7
|
||||
test: rhel/9.7
|
||||
- name: RHEL 10.1
|
||||
test: rhel/10.1
|
||||
- name: FreeBSD 15.0
|
||||
test: freebsd/15.0
|
||||
- name: RHEL 9.6
|
||||
test: rhel/9.6
|
||||
- name: RHEL 10.0
|
||||
test: rhel/10.0
|
||||
groups:
|
||||
- 3
|
||||
- 4
|
||||
|
|
@ -121,14 +119,14 @@ stages:
|
|||
- template: templates/matrix.yml # context/controller (ansible-test container management)
|
||||
parameters:
|
||||
targets:
|
||||
- name: Alpine 3.23
|
||||
test: alpine/3.23
|
||||
- name: Fedora 43
|
||||
test: fedora/43
|
||||
- name: RHEL 9.7
|
||||
test: rhel/9.7
|
||||
- name: RHEL 10.1
|
||||
test: rhel/10.1
|
||||
- name: Alpine 3.22
|
||||
test: alpine/3.22
|
||||
- name: Fedora 42
|
||||
test: fedora/42
|
||||
- name: RHEL 9.6
|
||||
test: rhel/9.6
|
||||
- name: RHEL 10.0
|
||||
test: rhel/10.0
|
||||
- name: Ubuntu 24.04
|
||||
test: ubuntu/24.04
|
||||
groups:
|
||||
|
|
@ -140,10 +138,10 @@ stages:
|
|||
parameters:
|
||||
testFormat: linux/{0}
|
||||
targets:
|
||||
- name: Alpine 3.23
|
||||
test: alpine323
|
||||
- name: Fedora 43
|
||||
test: fedora43
|
||||
- name: Alpine 3.22
|
||||
test: alpine322
|
||||
- name: Fedora 42
|
||||
test: fedora42
|
||||
- name: Ubuntu 22.04
|
||||
test: ubuntu2204
|
||||
- name: Ubuntu 24.04
|
||||
|
|
@ -155,10 +153,10 @@ stages:
|
|||
parameters:
|
||||
testFormat: linux/{0}
|
||||
targets:
|
||||
- name: Alpine 3.23
|
||||
test: alpine323
|
||||
- name: Fedora 43
|
||||
test: fedora43
|
||||
- name: Alpine 3.22
|
||||
test: alpine322
|
||||
- name: Fedora 42
|
||||
test: fedora42
|
||||
- name: Ubuntu 24.04
|
||||
test: ubuntu2404
|
||||
groups:
|
||||
|
|
@ -169,8 +167,8 @@ stages:
|
|||
parameters:
|
||||
testFormat: linux/{0}
|
||||
targets:
|
||||
- name: Fedora 43
|
||||
test: fedora43
|
||||
- name: Fedora 42
|
||||
test: fedora42
|
||||
groups:
|
||||
- 7
|
||||
- stage: Galaxy
|
||||
|
|
|
|||
|
|
@ -47,25 +47,13 @@ def parse_args() -> Args:
|
|||
return Args(**kwargs)
|
||||
|
||||
|
||||
def run(
|
||||
*args: str | pathlib.Path,
|
||||
dry_run: bool = False,
|
||||
) -> None:
|
||||
"""
|
||||
Log and run given command.
|
||||
|
||||
The command is not actually executed if ``dry_run`` is truthy.
|
||||
"""
|
||||
def run(*args: str | pathlib.Path) -> None:
|
||||
cmd = [str(arg) for arg in args]
|
||||
|
||||
dry_prefix = '[would run] ' if dry_run else ''
|
||||
print(f'==> {dry_prefix}{shlex.join(cmd)}', flush=True)
|
||||
|
||||
if not dry_run:
|
||||
subprocess.run(cmd, check=True)
|
||||
print(f'==> {shlex.join(cmd)}', flush=True)
|
||||
subprocess.run(cmd, check=True)
|
||||
|
||||
|
||||
def install_codecov(dest: pathlib.Path, dry_run: bool = False) -> pathlib.Path:
|
||||
def install_codecov(dest: pathlib.Path) -> pathlib.Path:
|
||||
"""Populate a transitively pinned venv with ``codecov-cli``."""
|
||||
requirement_file = DEPS_DIR / 'codecov.in'
|
||||
constraint_file = requirement_file.with_suffix('.txt')
|
||||
|
|
@ -84,7 +72,6 @@ def install_codecov(dest: pathlib.Path, dry_run: bool = False) -> pathlib.Path:
|
|||
f'--constraint={constraint_file!s}',
|
||||
f'--requirement={requirement_file!s}',
|
||||
'--disable-pip-version-check',
|
||||
dry_run=dry_run,
|
||||
)
|
||||
|
||||
return codecov_bin
|
||||
|
|
@ -131,40 +118,16 @@ def upload_files(codecov_bin: pathlib.Path, config_file: pathlib.Path, files: t.
|
|||
run(*cmd)
|
||||
|
||||
|
||||
def report_upload_completion(
|
||||
codecov_bin: pathlib.Path,
|
||||
config_file: pathlib.Path,
|
||||
dry_run: bool = False,
|
||||
) -> None:
|
||||
"""Notify Codecov backend that all reports we wanted are in."""
|
||||
cmd = [
|
||||
codecov_bin,
|
||||
'--disable-telem',
|
||||
f'--codecov-yml-path={config_file}',
|
||||
'send-notifications',
|
||||
]
|
||||
|
||||
run(*cmd, dry_run=dry_run)
|
||||
|
||||
|
||||
def main() -> None:
|
||||
args = parse_args()
|
||||
|
||||
with tempfile.TemporaryDirectory(prefix='codecov-') as tmpdir:
|
||||
config_file = pathlib.Path(tmpdir) / 'config.yml'
|
||||
# Refs:
|
||||
# * https://docs.codecov.com/docs/codecovyml-reference#codecovnotifymanual_trigger
|
||||
# * https://docs.codecov.com/docs/notifications#preventing-notifications-until-youre-ready-to-send-notifications
|
||||
config_file.write_text('codecov:\n notify:\n manual_trigger: true')
|
||||
config_file.write_text('')
|
||||
|
||||
codecov_bin = install_codecov(
|
||||
pathlib.Path(tmpdir),
|
||||
dry_run=args.dry_run,
|
||||
)
|
||||
codecov_bin = install_codecov(pathlib.Path(tmpdir))
|
||||
files = process_files(args.path)
|
||||
upload_files(codecov_bin, config_file, files, args.dry_run)
|
||||
# Ref: https://docs.codecov.com/docs/cli-options#send-notifications
|
||||
report_upload_completion(codecov_bin, config_file, args.dry_run)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
|
|||
|
|
@ -1,55 +0,0 @@
|
|||
---
|
||||
description: Review an Ansible PR following the project's standardized process from CLAUDE.md
|
||||
argument-hint: <pr_number>
|
||||
allowed-tools: [TodoWrite, Bash(gh pr view:*), Bash(gh pr diff:*), Bash(gh pr checkout:*), Bash(gh pr checks:*), Read, Grep, Glob, Search]
|
||||
---
|
||||
|
||||
PR Review Command
|
||||
=================
|
||||
|
||||
Review an Ansible PR following the project's standardized process from `CLAUDE.md`.
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
```bash
|
||||
/review <pr_number>
|
||||
```
|
||||
|
||||
Arguments
|
||||
---------
|
||||
|
||||
- `pr_number` (required): The GitHub PR number to review
|
||||
|
||||
Implementation
|
||||
--------------
|
||||
|
||||
This command implements the PR Review Guidelines documented in the `PR Review Guidelines` section of CLAUDE.md.
|
||||
|
||||
Review Process Steps
|
||||
--------------------
|
||||
|
||||
The command follows these numbered steps from CLAUDE.md:
|
||||
|
||||
1. **Create TodoWrite list** for systematic review tracking
|
||||
2. **Get PR details**: `gh pr view <number>` to understand scope, motivation and the desired outcome
|
||||
3. **Get PR diff**: `gh pr diff <number>` to see all changes
|
||||
4. **Check required components FIRST**:
|
||||
- Verify changelog fragment exists in `changelogs/fragments/`
|
||||
- Verify changelog uses correct section (check `changelogs/config.yaml`)
|
||||
- Verify tests exist and specifically cover the changed code paths
|
||||
- Unit tests should be pytest style, and functional rather than tightly coupled to mocking
|
||||
- Integration tests required for almost all plugin changes
|
||||
5. **Checkout PR branch**: `gh pr checkout <number>` to examine code holistically
|
||||
6. **Review existing feedback**: `gh pr view <number> --comments` for all comments and previous reviews
|
||||
7. **Verify all issues addressed**: Ensure bot failures, reviewer requests, and discussion points are resolved
|
||||
8. **Call out unresolved feedback**: Explicitly mention any discussions/requests that remain unaddressed
|
||||
|
||||
Critical Review Elements
|
||||
------------------------
|
||||
|
||||
- **Licensing**: Verify GPLv3/BSD-2-Clause compatibility for any new dependencies
|
||||
- **Test scope**: Tests must exercise actual changed code, not just add random coverage
|
||||
- **Changelog validation**: Fragment structure follows sections defined in `changelogs/config.yaml`
|
||||
|
||||
Each step is tracked in TodoWrite for visibility and systematic completion. A review round should not exceed 20 feedback items.
|
||||
3
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
3
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
|
|
@ -105,8 +105,7 @@ body:
|
|||
label: Configuration
|
||||
description: >-
|
||||
Paste verbatim output from `ansible-config dump --only-changed -t all` below, under the prompt line.
|
||||
Remember to redact secret values. You can easily filter Galaxy server secrets using grep,
|
||||
for example `ansible-config dump --only-changed -t all | grep -Ev 'token|password|client_secret'`.
|
||||
(if using a version older than ansible-core 2.12 you should omit the '-t all')
|
||||
Please don't wrap it with triple backticks — your
|
||||
whole input will be turned into a code snippet automatically.
|
||||
render: console
|
||||
|
|
|
|||
|
|
@ -130,8 +130,6 @@ body:
|
|||
label: Configuration
|
||||
description: >-
|
||||
Paste verbatim output from `ansible-config dump --only-changed -t all` below, under the prompt line.
|
||||
Remember to redact secret values. You can easily filter Galaxy server secrets using grep,
|
||||
for example `ansible-config dump --only-changed -t all | grep -Ev 'token|password|client_secret'`.
|
||||
(if using a version older than ansible-core 2.12 you should omit the '-t all')
|
||||
Please don't wrap it with triple backticks — your
|
||||
whole input will be turned into a code snippet automatically.
|
||||
|
|
|
|||
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -127,5 +127,3 @@ test/units/.coverage.*
|
|||
/SYMLINK_CACHE.json
|
||||
changelogs/.plugin-cache.yaml
|
||||
.ansible-test-timeout.json
|
||||
# Agents
|
||||
CLAUDE.local.md
|
||||
|
|
|
|||
321
AGENTS.md
321
AGENTS.md
|
|
@ -1,321 +0,0 @@
|
|||
# AGENTS.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) and other compatible agentic tools when working with code in this repository.
|
||||
|
||||
**Note:** This file is for AI assistant use only. For human developers, see the [Ansible Developer Guide](https://docs.ansible.com/ansible-core/devel/dev_guide/index.html).
|
||||
|
||||
## ⚠️ IMPORTANT: Always Start Here
|
||||
|
||||
**BEFORE starting any PR review or development task:**
|
||||
|
||||
1. **Read this file first** - Don't work from memory or assumptions
|
||||
2. **Use TodoWrite** to create a task list and track progress systematically
|
||||
3. **Follow the numbered steps** in the relevant process sections
|
||||
4. **Reference Quick Reference** for correct commands and patterns
|
||||
|
||||
## ⚠️ CRITICAL: Licensing Requirements
|
||||
|
||||
**NEVER suggest, recommend, or approve code that violates these requirements:**
|
||||
|
||||
- **ansible-core**: All code must be **GPLv3 compatible**
|
||||
- **lib/ansible/module_utils/**: Defaults to **BSD-2-Clause** (more permissive)
|
||||
- **External dependencies**: Only recommend libraries compatible with these licenses
|
||||
- **PR reviews**: Always verify any new dependencies or suggested libraries are license-compatible
|
||||
- **When in doubt**: Ask about licensing compatibility rather than assuming
|
||||
|
||||
**This is non-negotiable** - licensing violations can create serious legal issues for the project.
|
||||
|
||||
## Quick Reference
|
||||
|
||||
Most commonly used commands and patterns:
|
||||
|
||||
```bash
|
||||
# Testing
|
||||
ansible-test sanity -v --docker default # Run all sanity tests
|
||||
ansible-test sanity -v --docker default --test <test> # Run specific sanity test
|
||||
ansible-test units -v --docker default # Run unit tests
|
||||
ansible-test integration -v --docker ubuntu2404 # Run integration tests
|
||||
|
||||
# PR Review and CI
|
||||
gh pr view <number> # Get PR details
|
||||
gh pr view <number> --comments # Check for ansibot CI failures
|
||||
gh pr checks <number> # Get Azure Pipelines URLs
|
||||
gh pr checkout <number> # Switch to PR branch
|
||||
gh pr diff <number> # See all changes
|
||||
```
|
||||
|
||||
**Container Selection:**
|
||||
|
||||
- Sanity/Unit tests: `--docker default`
|
||||
- Integration tests: `--docker ubuntu2204`, `--docker ubuntu2404`, etc. (NOT default/base)
|
||||
|
||||
**Critical Reminders:**
|
||||
|
||||
- **Licensing**: See [Licensing Requirements](#️-critical-licensing-requirements) - GPLv3/BSD-2-Clause only
|
||||
|
||||
## Development Environment Setup
|
||||
|
||||
Ansible development typically uses an editable install after forking and cloning:
|
||||
|
||||
```bash
|
||||
# After forking and cloning the repository
|
||||
pip install -e .
|
||||
```
|
||||
|
||||
**Note:** ansible-core and all CLIs (including ansible-test) require a POSIX OS. On Windows, use WSL (Windows Subsystem for Linux).
|
||||
|
||||
## Testing and CI
|
||||
|
||||
### Basic Testing Commands
|
||||
|
||||
```bash
|
||||
# Run sanity tests - these are linting/static analysis (pylint, mypy, pep8, etc.)
|
||||
ansible-test sanity -v --docker default
|
||||
|
||||
# List available sanity tests
|
||||
ansible-test sanity --list-tests
|
||||
|
||||
# Run specific sanity tests
|
||||
ansible-test sanity -v --docker default --test pep8 --test pylint
|
||||
|
||||
# Run sanity on specific files (paths relative to repo root)
|
||||
ansible-test sanity -v --docker default lib/ansible/modules/command.py
|
||||
|
||||
# Run unit tests (recommended with Docker)
|
||||
ansible-test units -v --docker default
|
||||
|
||||
# Run specific unit test (paths relative to repo root, targets in test/units/)
|
||||
ansible-test units -v --docker default test/units/modules/test_command.py
|
||||
|
||||
# Run integration tests (choose appropriate container - NOT base/default)
|
||||
ansible-test integration -v --docker ubuntu2404
|
||||
|
||||
# Run specific integration target (directory name in test/integration/targets/)
|
||||
ansible-test integration -v --docker ubuntu2404 setup_remote_tmp_dir
|
||||
|
||||
# Run with coverage
|
||||
ansible-test units -v --docker default --coverage
|
||||
|
||||
# Alternative: use --venv if Docker/Podman unavailable (less reliable for units/integration)
|
||||
ansible-test sanity -v --venv
|
||||
```
|
||||
|
||||
Available Docker containers for testing can be found in `./test/lib/ansible_test/_data/completion/docker.txt`.
|
||||
The `base` and `default` containers are for sanity/unit tests only. For integration tests, use distro-specific
|
||||
containers, depending on the modules being tested.
|
||||
|
||||
**Test isolation options:**
|
||||
|
||||
- `--docker` (supports Docker or Podman) - preferred for reliable, isolated testing
|
||||
- `--venv` - fallback when containers unavailable, but unit tests may be unreliable due to host environment differences
|
||||
|
||||
### Helping Developers with CI Failures
|
||||
|
||||
When developers submit PRs and encounter CI failures, use these approaches to help diagnose and resolve issues:
|
||||
|
||||
**1. Check for ansibot comments:**
|
||||
|
||||
```bash
|
||||
# Get all PR comments to find ansibot CI failure reports
|
||||
gh pr view <number> --comments
|
||||
```
|
||||
|
||||
Look for comments from `ansibot` that contain:
|
||||
- Test failure details with specific error messages
|
||||
- File paths and line numbers for failures
|
||||
- Links to sanity test documentation (e.g., `[explain](https://docs.ansible.com/...`)
|
||||
|
||||
**2. Get CI check status and URLs:**
|
||||
|
||||
```bash
|
||||
# See all CI check results with Azure Pipelines URLs
|
||||
gh pr checks <number>
|
||||
```
|
||||
|
||||
This shows:
|
||||
- Overall CI status (pass/fail) with timing
|
||||
- Direct links to Azure DevOps build results
|
||||
- Individual job results (Sanity Test 1/2, Docker tests, Units, etc.)
|
||||
|
||||
**3. Common CI failure patterns:**
|
||||
|
||||
- **Sanity failures**: Usually have specific fixes (trailing whitespace, import errors, etc.)
|
||||
- **Integration test failures**: May require platform-specific containers or test adjustments
|
||||
- **Unit test failures**: Often indicate actual code issues that need debugging
|
||||
|
||||
**4. CI failure analysis workflow:**
|
||||
|
||||
1. Check ansibot comments first for immediate error details
|
||||
2. Use `gh pr checks <number>` to get Azure Pipelines URLs for detailed logs
|
||||
3. Focus on failed jobs (marked as `fail`) and examine their specific error output
|
||||
4. For sanity test failures, the error messages usually indicate exactly what needs to be fixed
|
||||
5. For test failures, run the same tests locally using `ansible-test` to reproduce and debug
|
||||
|
||||
## PR Review Guidelines
|
||||
|
||||
### PR Review Checklist
|
||||
|
||||
Use this checklist for EVERY PR review:
|
||||
|
||||
```text
|
||||
□ Created TodoWrite list for review steps
|
||||
□ Step 1: Get PR details with gh pr view <number>
|
||||
□ Step 2: Get PR diff with gh pr diff <number>
|
||||
□ Step 3: Check required components (changelog, tests)
|
||||
□ Step 4: Checkout PR branch with gh pr checkout <number>
|
||||
□ Step 5: Review existing feedback with gh pr view <number> --comments
|
||||
□ Step 6: Verify all issues addressed
|
||||
□ Step 7: Call out any unresolved feedback
|
||||
□ Mark each TodoWrite item as completed when done
|
||||
```
|
||||
|
||||
When assisting with PR reviews, verify:
|
||||
|
||||
### Required Components
|
||||
|
||||
- Changelog fragment exists in `changelogs/fragments/`
|
||||
- Appropriate tests are included and cover the changed code
|
||||
- Unit tests should be pytest style, and functional rather than tightly coupled to mocking
|
||||
- Integration tests required for almost all plugin changes (tests the public API)
|
||||
- Tests should exercise the actual changed code, not just add random coverage
|
||||
|
||||
### Review Process
|
||||
|
||||
Follow these steps in order for thorough PR reviews:
|
||||
|
||||
1. **Get PR details**: Use `gh pr view <number>` to understand the PR scope and description
|
||||
2. **Get PR diff**: Use `gh pr diff <number>` to see all changes
|
||||
3. **Check required components FIRST**:
|
||||
- Verify changelog fragment exists and uses correct section (check `changelogs/config.yaml` for valid sections)
|
||||
- Verify tests exist and specifically cover the changed code paths
|
||||
4. **Checkout PR branch**: Use `gh pr checkout <number>` to examine code holistically with changes applied
|
||||
5. **Review existing feedback**: Use `gh pr view <number> --comments` to see all comments and previous review feedback
|
||||
6. **Verify all issues addressed**: Ensure all bot failures, reviewer requests, and discussion points are resolved
|
||||
7. **Call out any unresolved review feedback**: Explicitly mention any discussions or requests that remain unaddressed
|
||||
|
||||
### Common Review Issues to Check
|
||||
|
||||
- **Changelog section errors**: Verify changelog uses valid section from `changelogs/config.yaml`. Fragment structure follows sections defined there.
|
||||
- **Test scope**: Ensure tests exercise the actual changed code, not just add random coverage.
|
||||
Integration tests required for almost all plugin changes (tests the public API).
|
||||
Tests should be functional rather than tightly coupled to mocking.
|
||||
|
||||
### Review Task Management
|
||||
|
||||
- Use TodoWrite tool to track review steps for complex PRs
|
||||
- Mark tasks as in_progress when actively working on them
|
||||
- Complete tasks immediately after finishing each step
|
||||
- This provides visibility to users about review progress
|
||||
|
||||
### Review Tools
|
||||
|
||||
- `gh pr view <number>` - Get PR details and description
|
||||
- `gh pr view <number> --comments` - See all comments and review feedback
|
||||
- `gh pr diff <number>` - Get complete diff of changes
|
||||
- `gh pr checkout <number>` - Switch to PR branch for holistic examination
|
||||
- `Read` tool - Examine specific changed files in detail
|
||||
- `Grep` tool - Search for related code patterns or test coverage (uses ripgrep/rg)
|
||||
|
||||
## Development Guidelines
|
||||
|
||||
### Code Style Notes
|
||||
|
||||
- Line limit is 160 characters (not 80)
|
||||
- E402 (module level import not at top) is ignored
|
||||
- In `lib/ansible/modules/`, imports must come after DOCUMENTATION, EXAMPLES, and RETURN definitions
|
||||
- Don't add obvious comments about code
|
||||
- Use native type hints with `from __future__ import annotations` (converts to strings at runtime)
|
||||
- Don't document module parameters in docstrings - migrate to type hints instead
|
||||
- **No trailing whitespace**: Always clean up trailing spaces on lines, especially when editing existing files
|
||||
|
||||
### Python Version Support
|
||||
|
||||
- Controller code: support range defined in `pyproject.toml`
|
||||
- Modules/module_utils: minimum version in `lib/ansible/module_utils/basic.py` (`_PY_MIN`) up to max from `pyproject.toml`
|
||||
- Modules support a wider Python version range than controller code
|
||||
|
||||
### Dependencies and Imports
|
||||
|
||||
- Prefer Python stdlib over external dependencies
|
||||
- Use existing code from within the Ansible project
|
||||
- `lib/ansible/modules/` can only import from `lib/ansible/module_utils/` (modules are packaged for remote execution)
|
||||
- `lib/ansible/module_utils/` cannot import from outside itself
|
||||
|
||||
## Documentation Standards
|
||||
|
||||
### Module and Plugin Documentation
|
||||
|
||||
- Modules and plugins require DOCUMENTATION, EXAMPLES, and RETURN blocks as static YAML string variables
|
||||
- These blocks cannot be dynamically generated - they are parsed via AST/token parsing
|
||||
- Alternative: "sidecar" documentation as `.yml` files with same stem name adjacent to plugin files
|
||||
- All modules should have a `main()` function and `if __name__ == '__main__':` block
|
||||
- Use `version_added` fields in documentation following existing version format patterns
|
||||
|
||||
### Changelog Requirements
|
||||
|
||||
- Changes require entries in `changelogs/fragments/` as YAML files
|
||||
- Create a new fragment file per PR (never reuse existing fragments to avoid merge conflicts)
|
||||
- Fragment structure follows sections defined in `changelogs/config.yaml` under the `sections` key
|
||||
- Naming: `{issue_number}-{short-description}.yml` or `{component}-{description}.yml` if no issue
|
||||
- Format: `- {component} - {description} ({optional URL to GH issue})`
|
||||
- Content supports Sphinx markup (use double backticks for code references)
|
||||
|
||||
## Repository Management
|
||||
|
||||
### Plugin Development
|
||||
|
||||
- New plugins should go into collections, not ansible-core
|
||||
- ansible-core rarely accepts new plugins; core team makes these decisions
|
||||
|
||||
### Branch and Release Management
|
||||
|
||||
- All PRs target the `devel` branch
|
||||
- Use GitHub templates when creating issues/PRs (`.github/ISSUE_TEMPLATE/` and `.github/PULL_REQUEST_TEMPLATE/`)
|
||||
- For issues: fill out the `component` field with project root relative file path
|
||||
- For PRs: adjust the issue type in the template as listed in `.github/PULL_REQUEST_TEMPLATE/PULL_REQUEST_TEMPLATE.md`
|
||||
- Validate issues are fixed in `devel` before reporting against stable releases
|
||||
- Bug fixes: backported to latest stable only
|
||||
- Critical bug fixes: backported to latest and previous stable
|
||||
- Security issues: contact security@ansible.com privately, not via GitHub
|
||||
|
||||
### Backwards Compatibility
|
||||
|
||||
- Backwards compatibility is prioritized over most other concerns
|
||||
- Deprecation cycle: 4 releases (deprecation + 2 releases + removal)
|
||||
- Use `Display.deprecated` or `AnsibleModule.deprecate` with version from `lib/ansible/release.py` plus 3
|
||||
- Example: deprecating in 2.19 means removal in 2.22
|
||||
|
||||
## Code Structure Reference
|
||||
|
||||
### Core Structure
|
||||
|
||||
- `lib/ansible/` - Main Ansible library code
|
||||
- `cli/` - Command-line interface implementations (ansible, ansible-playbook, etc.)
|
||||
- `executor/` - Task execution engine and strategies (includes PowerShell support in `powershell/`)
|
||||
- `inventory/` - Inventory management and parsing
|
||||
- `modules/` - Core modules (built-in automation modules)
|
||||
- `module_utils/` - Shared utilities for modules (includes C# in `csharp/` and PowerShell in `powershell/`)
|
||||
- `plugins/` - Plugin framework (filters, tests, lookups, etc.)
|
||||
- `vars/` - Variable management
|
||||
- `config/` - Configuration handling
|
||||
- `collections/` - Ansible Collections framework
|
||||
|
||||
### Key Components
|
||||
|
||||
- **CLI Layer**: Entry points in `lib/ansible/cli/` handle command parsing and dispatch
|
||||
- **Executor**: `lib/ansible/executor/` contains the core execution engine that runs tasks and plays
|
||||
- **Module System**: Modules in `lib/ansible/modules/` are the units of work; they're executed remotely
|
||||
- **Plugin Architecture**: `lib/ansible/plugins/` provides extensibility through filters, tests, lookups, etc.
|
||||
- **Inventory**: `lib/ansible/inventory/` manages host and group definitions
|
||||
- **Collections**: Modern packaging format for distributing Ansible content
|
||||
|
||||
### Testing Infrastructure
|
||||
|
||||
- `test/units/` - Unit tests mirroring the lib structure
|
||||
- `test/integration/` - Integration tests organized by target (named after plugin/functionality being tested)
|
||||
- Some targets have `context/controller` or `context/target` in their `aliases` file when not easily inferable
|
||||
- Only modules run on target hosts; all other plugins execute locally in the ansible process
|
||||
- `test/lib/` - Test utilities and frameworks
|
||||
- `ansible-test` - Unified testing tool for all test types
|
||||
|
||||
For CI failure debugging, see [Helping Developers with CI Failures](#helping-developers-with-ci-failures).
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
- @AGENTS.md
|
||||
- @~/.claude/ansible.md
|
||||
- @CLAUDE.local.md
|
||||
|
|
@ -5,6 +5,6 @@ include licenses/*.txt
|
|||
include requirements.txt
|
||||
recursive-include packaging *.py *.j2
|
||||
recursive-include test/integration *
|
||||
recursive-include test/sanity *.in *.json *.py *.pyi *.txt *.ini
|
||||
recursive-include test/sanity *.in *.json *.py *.txt *.ini
|
||||
recursive-include test/support *.py *.ps1 *.psm1 *.cs *.md
|
||||
recursive-include test/units *
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
[](https://dev.azure.com/ansible/ansible/_build/latest?definitionId=20&branchName=devel)
|
||||
[](https://docs.ansible.com/ansible/devel/community/code_of_conduct.html)
|
||||
[](https://docs.ansible.com/ansible/devel/community/communication.html#mailing-list-information)
|
||||
[][copying]
|
||||
[](COPYING)
|
||||
[](https://bestpractices.coreinfrastructure.org/projects/2372)
|
||||
|
||||
# Ansible
|
||||
|
|
@ -58,7 +58,7 @@ For more ways to get in touch, see [Communicating with the Ansible community](ht
|
|||
|
||||
## Contribute to Ansible
|
||||
|
||||
* Check out the [Contributor's Guide](https://github.com/ansible/ansible/blob/devel/.github/CONTRIBUTING.md).
|
||||
* 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,
|
||||
including how to submit bug reports and code to Ansible.
|
||||
|
|
@ -98,6 +98,4 @@ and has contributions from over 5000 users (and growing). Thanks everyone!
|
|||
|
||||
GNU General Public License v3.0 or later
|
||||
|
||||
See [COPYING] to see the full text.
|
||||
|
||||
[copying]: https://github.com/ansible/ansible/blob/devel/COPYING
|
||||
See [COPYING](COPYING) to see the full text.
|
||||
|
|
|
|||
182
changelogs/CHANGELOG-v2.20.rst
Normal file
182
changelogs/CHANGELOG-v2.20.rst
Normal file
|
|
@ -0,0 +1,182 @@
|
|||
======================================================
|
||||
ansible-core 2.20 "Good Times Bad Times" Release Notes
|
||||
======================================================
|
||||
|
||||
.. contents:: Topics
|
||||
|
||||
v2.20.1
|
||||
=======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2025-12-09
|
||||
| `Porting Guide <https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Fix ``AnsibleModule.human_to_bytes()``, which was never adjusted after the standalone ``human_to_bytes()`` got a new parameter ``default_unit`` (https://github.com/ansible/ansible/pull/85259).
|
||||
- Variable loading now uses file source instead of variables when invalidly formmated vars file is loaded.
|
||||
- ansible-test - The runtime-metadata sanity test now ignores pre-release and build identifiers in collection versions. This prevents errors if a tombstone version is ``X.0.0``, while the collection's version is ``X.0.0-prerelease`` (https://github.com/ansible/ansible/issues/85193)."
|
||||
- display - Fix ``getuser`` fallback error handling on Python 3.13 and later. (https://github.com/ansible/ansible/issues/86142)
|
||||
- first_found - Correct the "Include tasks only if one of the files exists, otherwise skip" example.
|
||||
- get_url - fix regex for GNU Digest line which is used in comparing checksums (https://github.com/ansible/ansible/issues/86132).
|
||||
- local connection - Fix ``getuser`` fallback error handling on Python 3.13 and later.
|
||||
|
||||
v2.20.0
|
||||
=======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2025-11-04
|
||||
| `Porting Guide <https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
|
||||
|
||||
Major Changes
|
||||
-------------
|
||||
|
||||
- ansible - Add support for Python 3.14.
|
||||
- ansible - Drop support for Python 3.11 on the controller.
|
||||
- ansible - Drop support for Python 3.8 on targets.
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- Add tech preview play argument spec validation, which can be enabled by setting the play keyword ``validate_argspec`` to ``True`` or the name of an argument spec. When ``validate_argspec`` is set to ``True``, a play ``name`` is required and used as the argument spec name. When enabled, the argument spec is loaded from a file matching the pattern <playbook_name>.meta.yml. At minimum, this file should contain ``{"argument_specs": {"name": {"options": {}}}}``, where "name" is the name of the play or configured argument spec.
|
||||
- Added Univention Corporate Server as a part of Debian OS distribution family (https://github.com/ansible/ansible/issues/85490).
|
||||
- AnsibleModule - Add temporary internal monkeypatch-able hook to alter module result serialization by splitting serialization from ``_return_formatted`` into ``_record_module_result``.
|
||||
- DataLoader - Update ``DataLoader.get_basedir`` to be an abspath
|
||||
- Python type hints applied to ``to_text`` and ``to_bytes`` functions for better type hint interactions with code utilizing these functions.
|
||||
- ansible now warns if you use reserved tags that were only meant for selection and not for use in play.
|
||||
- ansible-doc - Return a more verbose error message when the ``description`` field is missing.
|
||||
- ansible-doc - show ``notes``, ``seealso``, and top-level ``version_added`` for role entrypoints (https://github.com/ansible/ansible/pull/81796).
|
||||
- ansible-doc adds support for RETURN documentation to support doc fragment plugins
|
||||
- ansible-test - Default to Python 3.14 in the ``base`` and ``default`` test containers.
|
||||
- ansible-test - Filter out pylint messages for invalid filenames and display a notice when doing so.
|
||||
- ansible-test - Implement new authentication methods for accessing the Ansible Core CI service.
|
||||
- ansible-test - Improve formatting of generated coverage config file.
|
||||
- ansible-test - Removed support for automatic provisioning of obsolete instances for network-integration tests.
|
||||
- ansible-test - Replace FreeBSD 14.2 with 14.3.
|
||||
- ansible-test - Replace RHEL 9.5 with 9.6.
|
||||
- ansible-test - Update Ubuntu containers.
|
||||
- ansible-test - Update astroid imports in custom pylint checkers.
|
||||
- ansible-test - Update base/default containers to include Python 3.14.0.
|
||||
- ansible-test - Update default containers.
|
||||
- ansible-test - Update pinned ``pip`` version to 25.2.
|
||||
- ansible-test - Update pinned sanity test requirements, including upgrading to pylint 4.0.0.
|
||||
- ansible-test - Update pinned sanity test requirements.
|
||||
- ansible-test - Update test containers.
|
||||
- ansible-test - Update the pylint sanity test to pylint 4.0.2.
|
||||
- ansible-test - Upgrade Alpine 3.21 to 3.22.
|
||||
- ansible-test - Upgrade Fedora 41 to Fedora 42.
|
||||
- ansible-test - Upgrade to ``coverage`` version 7.10.7 for Python 3.9 and later.
|
||||
- ansible-test - Use OS packages to satisfy controller requirements on FreeBSD 13.5 during managed instance bootstrapping.
|
||||
- apt_repository - use correct debug method to print debug message.
|
||||
- blockinfile - add new module option ``encoding`` to support files in encodings other than UTF-8 (https://github.com/ansible/ansible/pull/85291).
|
||||
- deb822_repository - Add automatic installation of the ``python3-debian`` package if it is missing by adding the parameter ``install_python_debian``
|
||||
- default callback plugin - add option to configure indentation for JSON and YAML output (https://github.com/ansible/ansible/pull/85497).
|
||||
- encrypt - check datatype of salt_size in password_hash filter.
|
||||
- fetch_file - add ca_path and cookies parameter arguments (https://github.com/ansible/ansible/issues/85172).
|
||||
- include_vars - Raise an error if 'extensions' is not specified as a list.
|
||||
- include_vars - Raise an error if 'ignore_files' is not specified as a list.
|
||||
- known_hosts - return rc and stderr when ssh-keygen command fails for further debugging (https://github.com/ansible/ansible/issues/85850).
|
||||
- lineinfile - add new module option ``encoding`` to support files in encodings other than UTF-8 (https://github.com/ansible/ansible/pull/84999).
|
||||
- regex - Document the match_type fullmatch.
|
||||
- regex - Ensure that match_type is one of match, fullmatch, or search (https://github.com/ansible/ansible/pull/85629).
|
||||
- replace - read/write files in text-mode as unicode chars instead of as bytes and switch regex matching to unicode chars instead of bytes. (https://github.com/ansible/ansible/pull/85785).
|
||||
- service_facts - handle keyerror exceptions with warning.
|
||||
- service_facts - warn user about missing service details instead of ignoring.
|
||||
- setup - added new subkey ``lvs`` within each entry of ``ansible_facts['vgs']`` to provide complete logical volume data scoped by volume group. The top level ``lvs`` fact by comparison, deduplicates logical volume names across volume groups and may be incomplete. (https://github.com/ansible/ansible/issues/85632)
|
||||
- six - bump six version from 1.16.0 to 1.17.0 (https://github.com/ansible/ansible/issues/85408).
|
||||
- stat module - add SELinux context as a return value, and add a new option to trigger this return, which is False by default. (https://github.com/ansible/ansible/issues/85217).
|
||||
- tags now warn when using reserved keywords.
|
||||
- wrapt - bump version from 1.15.0 to 1.17.2 (https://github.com/ansible/ansible/issues/85407).
|
||||
|
||||
Breaking Changes / Porting Guide
|
||||
--------------------------------
|
||||
|
||||
- powershell - Removed code that tried to remote quotes from paths when performing Windows operations like copying and fetching file. This should not affect normal playbooks unless a value is quoted too many times.
|
||||
|
||||
Deprecated Features
|
||||
-------------------
|
||||
|
||||
- Deprecated the shell plugin's ``wrap_for_exec`` function. This API is not used in Ansible or any known collection and is being removed to simplify the plugin API. Plugin authors should wrap their command to execute within an explicit shell or other known executable.
|
||||
- INJECT_FACTS_AS_VARS configuration currently defaults to ``True``, this is now deprecated and it will switch to ``False`` by Ansible 2.24. You will only get notified if you are accessing 'injected' facts (for example, ansible_os_distribution vs ansible_facts['os_distribution']).
|
||||
- hash_params function in roles/__init__ is being deprecated as it is not in use.
|
||||
- include_vars - Specifying 'ignore_files' as a string is deprecated.
|
||||
- vars, the internal variable cache will be removed in 2.24. This cache, once used internally exposes variables in inconsistent states, the 'vars' and 'varnames' lookups should be used instead.
|
||||
|
||||
Removed Features (previously deprecated)
|
||||
----------------------------------------
|
||||
|
||||
- Removed the option to set the ``DEFAULT_TRANSPORT`` configuration to ``smart`` that selects the default transport as either ``ssh`` or ``paramiko`` based on the underlying platform configuraton.
|
||||
- ``vault``/``unvault`` filters - remove the deprecated ``vaultid`` parameter.
|
||||
- ansible-doc - role entrypoint attributes are no longer shown
|
||||
- ansible-galaxy - remove support for resolvelib >= 0.5.3, < 0.8.0.
|
||||
- ansible-galaxy - removed the v2 Galaxy server API. Galaxy servers hosting collections must support v3.
|
||||
- dnf/dnf5 - remove deprecated ``install_repoquery`` option.
|
||||
- encrypt - remove deprecated passlib_or_crypt API.
|
||||
- paramiko - Removed the ``PARAMIKO_HOST_KEY_AUTO_ADD`` and ``PARAMIKO_LOOK_FOR_KEYS`` configuration keys, which were previously deprecated.
|
||||
- py3compat - remove deprecated ``py3compat.environ`` call.
|
||||
- vars plugins - removed the deprecated ``get_host_vars`` or ``get_group_vars`` fallback for vars plugins that do not inherit from ``BaseVarsPlugin`` and define a ``get_vars`` method.
|
||||
- yum_repository - remove deprecated ``keepcache`` option.
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Do not re-add ``tags`` on blocks from within ``import_tasks``.
|
||||
- Fix issue where play tags prevented executing notified handlers (https://github.com/ansible/ansible/issues/85475)
|
||||
- Fix issues with keywords being incorrectly validated on ``import_tasks`` (https://github.com/ansible/ansible/issues/85855, https://github.com/ansible/ansible/issues/85856)
|
||||
- Fix traceback when trying to import non-existing file via nested ``import_tasks`` (https://github.com/ansible/ansible/issues/69882)
|
||||
- SIGINT/SIGTERM Handling - Make SIGINT/SIGTERM handling more robust by splitting concerns between forks and the parent.
|
||||
- The ``ansible_failed_task`` variable is now correctly exposed in a rescue section, even when a failing handler is triggered by the ``flush_handlers`` task in the corresponding ``block`` (https://github.com/ansible/ansible/issues/85682)
|
||||
- Windows - ignore temporary file cleanup warning when using AnsibleModule to compile C# utils. This should reduce the number of warnings that can safely be ignored when running PowerShell modules - https://github.com/ansible/ansible/issues/85976
|
||||
- Windows async - Handle running PowerShell modules with trailing data after the module result
|
||||
- ``ansible-galaxy collection list`` - fail when none of the configured collection paths exist.
|
||||
- ``ternary`` filter - evaluate values lazily (https://github.com/ansible/ansible/issues/85743)
|
||||
- ansible-doc - prevent crash when scanning collections in paths that have more than one ``ansible_collections`` in it (https://github.com/ansible/ansible/issues/84909, https://github.com/ansible/ansible/pull/85361).
|
||||
- ansible-doc --list/--list_files/--metadata-dump - fixed relative imports in nested filter/test plugin files (https://github.com/ansible/ansible/issues/85753).
|
||||
- ansible-galaxy - Use the provided import task url, instead of parsing to get the task id and reconstructing the URL
|
||||
- ansible-galaxy no longer shows the internal protomatter collection when listing.
|
||||
- ansible-test - Always exclude the ``tests/output/`` directory from a collection's code coverage. (https://github.com/ansible/ansible/issues/84244)
|
||||
- ansible-test - Fix a traceback that can occur when using delegation before the ansible-test temp directory is created.
|
||||
- ansible-test - Limit package install retries during managed remote instance bootstrapping.
|
||||
- ansible-test - Use a consistent coverage config for all collection testing.
|
||||
- apt - mark dependencies installed as part of deb file installation as auto (https://github.com/ansible/ansible/issues/78123).
|
||||
- argspec validation - The ``str`` argspec type treats ``None`` values as empty string for better consistency with pre-2.19 templating conversions.
|
||||
- cache plugins - close temp cache file before moving it to fix error on WSL. (https://github.com/ansible/ansible/pull/85816)
|
||||
- callback plugins - fix displaying the rendered ``ansible_host`` variable with ``delegate_to`` (https://github.com/ansible/ansible/issues/84922).
|
||||
- callback plugins - improve consistency accessing the Task object's resolved_action attribute.
|
||||
- conditionals - When displaying a broken conditional error or deprecation warning, the origin of the non-boolean result is included (if available), and the raw result is omitted.
|
||||
- config lookup now properly factors in variables and show_origin when checking entries from the global configuration.
|
||||
- display - Fixed reference to undefined `_DeferredWarningContext` when issuing early warnings during startup. (https://github.com/ansible/ansible/issues/85886)
|
||||
- dnf - Check if installroot is directory or not (https://github.com/ansible/ansible/issues/85680).
|
||||
- failed_when - When using ``failed_when`` to suppress an error, the ``exception`` key in the result is renamed to ``failed_when_suppressed_exception``. This prevents the error from being displayed by callbacks after being suppressed. (https://github.com/ansible/ansible/issues/85505)
|
||||
- fetch - also return ``file`` in the result when changed is ``True`` (https://github.com/ansible/ansible/pull/85729).
|
||||
- import_tasks - fix templating parent include arguments.
|
||||
- include_role - allow host specific values in all ``*_from`` arguments (https://github.com/ansible/ansible/issues/66497)
|
||||
- option argument deprecations now have a proper alternative help text.
|
||||
- package_facts - typecast bytes to string while returning facts (https://github.com/ansible/ansible/issues/85937).
|
||||
- pip - Fix pip module output so that it returns changed when the only operation is initializing a venv.
|
||||
- plugins config, get_option_and_origin now correctly displays the value and origin of the option.
|
||||
- psrp - ReadTimeout exceptions now mark host as unreachable instead of fatal (https://github.com/ansible/ansible/issues/85966)
|
||||
- run_command - Fixed premature selector unregistration on empty read from stdout/stderr that caused truncated output or hangs in rare situations.
|
||||
- script inventory plugin will now show correct 'incorrect' type when doing implicit conversions on groups.
|
||||
- ssh connection - fix documented variables for the ``host`` option. Connection options can be configured with delegated variables in general.
|
||||
- template lookup - Skip finalization on the internal templating operation to allow markers to be returned and handled by, e.g. the ``default`` filter. Previously, finalization tripped markers, causing an exception to end processing of the current template pipeline. (https://github.com/ansible/ansible/issues/85674)
|
||||
- templating - Avoid tripping markers within Jinja generated code. (https://github.com/ansible/ansible/issues/85674)
|
||||
- templating - Ensure filter plugin result processing occurs under the correct call context. (https://github.com/ansible/ansible/issues/85585)
|
||||
- templating - Fix slicing of tuples in templating (https://github.com/ansible/ansible/issues/85606).
|
||||
- templating - Multi-node template results coerce embedded ``None`` nodes to empty string (instead of rendering literal ``None`` to the output).
|
||||
- templating - Undefined marker values sourced from the Jinja ``getattr->getitem`` fallback are now accessed correctly, raising AnsibleUndefinedVariable for user plugins that do not understand markers. Previously, these values were erroneously returned to user plugin code that had not opted in to marker acceptance.
|
||||
- tqm - use display.error_as_warning instead of display.warning_as_error.
|
||||
- tqm - use display.error_as_warning instead of self.warning.
|
||||
- uri - fix form-multipart file not being found when task is retried (https://github.com/ansible/ansible/issues/85009)
|
||||
- validate-modules sanity test - fix handling of missing doc fragments (https://github.com/ansible/ansible/pull/85638).
|
||||
|
||||
Known Issues
|
||||
------------
|
||||
|
||||
- templating - Exceptions raised in a Jinja ``set`` or ``with`` block which are not accessed by the template are ignored in the same manner as undefined values.
|
||||
- templating - Passing a container created in a Jinja ``set`` or ``with`` block to a method results in a copy of that container. Mutations to that container which are not returned by the method will be discarded.
|
||||
|
|
@ -1,2 +1,440 @@
|
|||
ancestor: 2.20.0
|
||||
releases: {}
|
||||
ancestor: 2.18.0
|
||||
releases:
|
||||
2.20.0:
|
||||
changes:
|
||||
release_summary: '| Release Date: 2025-11-04
|
||||
|
||||
| `Porting Guide <https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
|
||||
|
||||
'
|
||||
codename: Good Times Bad Times
|
||||
fragments:
|
||||
- 2.20.0_summary.yaml
|
||||
release_date: '2025-11-04'
|
||||
2.20.0b1:
|
||||
changes:
|
||||
breaking_changes:
|
||||
- powershell - Removed code that tried to remote quotes from paths when performing
|
||||
Windows operations like copying and fetching file. This should not affect
|
||||
normal playbooks unless a value is quoted too many times.
|
||||
bugfixes:
|
||||
- Do not re-add ``tags`` on blocks from within ``import_tasks``.
|
||||
- The ``ansible_failed_task`` variable is now correctly exposed in a rescue
|
||||
section, even when a failing handler is triggered by the ``flush_handlers``
|
||||
task in the corresponding ``block`` (https://github.com/ansible/ansible/issues/85682)
|
||||
- Windows async - Handle running PowerShell modules with trailing data after
|
||||
the module result
|
||||
- '``ansible-galaxy collection list`` - fail when none of the configured collection
|
||||
paths exist.'
|
||||
- '``ternary`` filter - evaluate values lazily (https://github.com/ansible/ansible/issues/85743)'
|
||||
- ansible-doc --list/--list_files/--metadata-dump - fixed relative imports in
|
||||
nested filter/test plugin files (https://github.com/ansible/ansible/issues/85753).
|
||||
- ansible-galaxy - Use the provided import task url, instead of parsing to get
|
||||
the task id and reconstructing the URL
|
||||
- ansible-galaxy no longer shows the internal protomatter collection when listing.
|
||||
- ansible-test - Always exclude the ``tests/output/`` directory from a collection's
|
||||
code coverage. (https://github.com/ansible/ansible/issues/84244)
|
||||
- ansible-test - Fix a traceback that can occur when using delegation before
|
||||
the ansible-test temp directory is created.
|
||||
- ansible-test - Limit package install retries during managed remote instance
|
||||
bootstrapping.
|
||||
- ansible-test - Use a consistent coverage config for all collection testing.
|
||||
- apt - mark dependencies installed as part of deb file installation as auto
|
||||
(https://github.com/ansible/ansible/issues/78123).
|
||||
- argspec validation - The ``str`` argspec type treats ``None`` values as empty
|
||||
string for better consistency with pre-2.19 templating conversions.
|
||||
- cache plugins - close temp cache file before moving it to fix error on WSL.
|
||||
(https://github.com/ansible/ansible/pull/85816)
|
||||
- callback plugins - fix displaying the rendered ``ansible_host`` variable with
|
||||
``delegate_to`` (https://github.com/ansible/ansible/issues/84922).
|
||||
- callback plugins - improve consistency accessing the Task object's resolved_action
|
||||
attribute.
|
||||
- conditionals - When displaying a broken conditional error or deprecation warning,
|
||||
the origin of the non-boolean result is included (if available), and the raw
|
||||
result is omitted.
|
||||
- display - Fixed reference to undefined `_DeferredWarningContext` when issuing
|
||||
early warnings during startup. (https://github.com/ansible/ansible/issues/85886)
|
||||
- dnf - Check if installroot is directory or not (https://github.com/ansible/ansible/issues/85680).
|
||||
- failed_when - When using ``failed_when`` to suppress an error, the ``exception``
|
||||
key in the result is renamed to ``failed_when_suppressed_exception``. This
|
||||
prevents the error from being displayed by callbacks after being suppressed.
|
||||
(https://github.com/ansible/ansible/issues/85505)
|
||||
- import_tasks - fix templating parent include arguments.
|
||||
- include_role - allow host specific values in all ``*_from`` arguments (https://github.com/ansible/ansible/issues/66497)
|
||||
- pip - Fix pip module output so that it returns changed when the only operation
|
||||
is initializing a venv.
|
||||
- plugins config, get_option_and_origin now correctly displays the value and
|
||||
origin of the option.
|
||||
- run_command - Fixed premature selector unregistration on empty read from stdout/stderr
|
||||
that caused truncated output or hangs in rare situations.
|
||||
- script inventory plugin will now show correct 'incorrect' type when doing
|
||||
implicit conversions on groups.
|
||||
- ssh connection - fix documented variables for the ``host`` option. Connection
|
||||
options can be configured with delegated variables in general.
|
||||
- template lookup - Skip finalization on the internal templating operation to
|
||||
allow markers to be returned and handled by, e.g. the ``default`` filter.
|
||||
Previously, finalization tripped markers, causing an exception to end processing
|
||||
of the current template pipeline. (https://github.com/ansible/ansible/issues/85674)
|
||||
- templating - Avoid tripping markers within Jinja generated code. (https://github.com/ansible/ansible/issues/85674)
|
||||
- templating - Ensure filter plugin result processing occurs under the correct
|
||||
call context. (https://github.com/ansible/ansible/issues/85585)
|
||||
- templating - Fix slicing of tuples in templating (https://github.com/ansible/ansible/issues/85606).
|
||||
- templating - Multi-node template results coerce embedded ``None`` nodes to
|
||||
empty string (instead of rendering literal ``None`` to the output).
|
||||
- templating - Undefined marker values sourced from the Jinja ``getattr->getitem``
|
||||
fallback are now accessed correctly, raising AnsibleUndefinedVariable for
|
||||
user plugins that do not understand markers. Previously, these values were
|
||||
erroneously returned to user plugin code that had not opted in to marker acceptance.
|
||||
- tqm - use display.error_as_warning instead of display.warning_as_error.
|
||||
- tqm - use display.error_as_warning instead of self.warning.
|
||||
- uri - fix form-multipart file not being found when task is retried (https://github.com/ansible/ansible/issues/85009)
|
||||
- validate-modules sanity test - fix handling of missing doc fragments (https://github.com/ansible/ansible/pull/85638).
|
||||
deprecated_features:
|
||||
- Deprecated the shell plugin's ``wrap_for_exec`` function. This API is not
|
||||
used in Ansible or any known collection and is being removed to simplify the
|
||||
plugin API. Plugin authors should wrap their command to execute within an
|
||||
explicit shell or other known executable.
|
||||
- INJECT_FACTS_AS_VARS configuration currently defaults to ``True``, this is
|
||||
now deprecated and it will switch to ``False`` by Ansible 2.24. You will only
|
||||
get notified if you are accessing 'injected' facts (for example, ansible_os_distribution
|
||||
vs ansible_facts['os_distribution']).
|
||||
- hash_params function in roles/__init__ is being deprecated as it is not in
|
||||
use.
|
||||
- include_vars - Specifying 'ignore_files' as a string is deprecated.
|
||||
- vars, the internal variable cache will be removed in 2.24. This cache, once
|
||||
used internally exposes variables in inconsistent states, the 'vars' and 'varnames'
|
||||
lookups should be used instead.
|
||||
known_issues:
|
||||
- templating - Exceptions raised in a Jinja ``set`` or ``with`` block which
|
||||
are not accessed by the template are ignored in the same manner as undefined
|
||||
values.
|
||||
- templating - Passing a container created in a Jinja ``set`` or ``with`` block
|
||||
to a method results in a copy of that container. Mutations to that container
|
||||
which are not returned by the method will be discarded.
|
||||
major_changes:
|
||||
- ansible - Add support for Python 3.14.
|
||||
- ansible - Drop support for Python 3.11 on the controller.
|
||||
- ansible - Drop support for Python 3.8 on targets.
|
||||
minor_changes:
|
||||
- 'Add tech preview play argument spec validation, which can be enabled by setting
|
||||
the play keyword ``validate_argspec`` to ``True`` or the name of an argument
|
||||
spec. When ``validate_argspec`` is set to ``True``, a play ``name`` is required
|
||||
and used as the argument spec name. When enabled, the argument spec is loaded
|
||||
from a file matching the pattern <playbook_name>.meta.yml. At minimum, this
|
||||
file should contain ``{"argument_specs": {"name": {"options": {}}}}``, where
|
||||
"name" is the name of the play or configured argument spec.'
|
||||
- Added Univention Corporate Server as a part of Debian OS distribution family
|
||||
(https://github.com/ansible/ansible/issues/85490).
|
||||
- AnsibleModule - Add temporary internal monkeypatch-able hook to alter module
|
||||
result serialization by splitting serialization from ``_return_formatted``
|
||||
into ``_record_module_result``.
|
||||
- Python type hints applied to ``to_text`` and ``to_bytes`` functions for better
|
||||
type hint interactions with code utilizing these functions.
|
||||
- ansible now warns if you use reserved tags that were only meant for selection
|
||||
and not for use in play.
|
||||
- ansible-doc - Return a more verbose error message when the ``description``
|
||||
field is missing.
|
||||
- ansible-doc - show ``notes``, ``seealso``, and top-level ``version_added``
|
||||
for role entrypoints (https://github.com/ansible/ansible/pull/81796).
|
||||
- ansible-doc adds support for RETURN documentation to support doc fragment
|
||||
plugins
|
||||
- ansible-test - Implement new authentication methods for accessing the Ansible
|
||||
Core CI service.
|
||||
- ansible-test - Improve formatting of generated coverage config file.
|
||||
- ansible-test - Removed support for automatic provisioning of obsolete instances
|
||||
for network-integration tests.
|
||||
- ansible-test - Replace FreeBSD 14.2 with 14.3.
|
||||
- ansible-test - Replace RHEL 9.5 with 9.6.
|
||||
- ansible-test - Update Ubuntu containers.
|
||||
- ansible-test - Update base/default containers to include Python 3.14.0.
|
||||
- ansible-test - Update pinned sanity test requirements.
|
||||
- ansible-test - Update test containers.
|
||||
- ansible-test - Upgrade Alpine 3.21 to 3.22.
|
||||
- ansible-test - Upgrade Fedora 41 to Fedora 42.
|
||||
- ansible-test - Upgrade to ``coverage`` version 7.10.7 for Python 3.9 and later.
|
||||
- ansible-test - Use OS packages to satisfy controller requirements on FreeBSD
|
||||
13.5 during managed instance bootstrapping.
|
||||
- apt_repository - use correct debug method to print debug message.
|
||||
- blockinfile - add new module option ``encoding`` to support files in encodings
|
||||
other than UTF-8 (https://github.com/ansible/ansible/pull/85291).
|
||||
- deb822_repository - Add automatic installation of the ``python3-debian`` package
|
||||
if it is missing by adding the parameter ``install_python_debian``
|
||||
- default callback plugin - add option to configure indentation for JSON and
|
||||
YAML output (https://github.com/ansible/ansible/pull/85497).
|
||||
- encrypt - check datatype of salt_size in password_hash filter.
|
||||
- fetch_file - add ca_path and cookies parameter arguments (https://github.com/ansible/ansible/issues/85172).
|
||||
- include_vars - Raise an error if 'extensions' is not specified as a list.
|
||||
- include_vars - Raise an error if 'ignore_files' is not specified as a list.
|
||||
- lineinfile - add new module option ``encoding`` to support files in encodings
|
||||
other than UTF-8 (https://github.com/ansible/ansible/pull/84999).
|
||||
- regex - Document the match_type fullmatch.
|
||||
- regex - Ensure that match_type is one of match, fullmatch, or search (https://github.com/ansible/ansible/pull/85629).
|
||||
- replace - read/write files in text-mode as unicode chars instead of as bytes
|
||||
and switch regex matching to unicode chars instead of bytes. (https://github.com/ansible/ansible/pull/85785).
|
||||
- service_facts - handle keyerror exceptions with warning.
|
||||
- service_facts - warn user about missing service details instead of ignoring.
|
||||
- setup - added new subkey ``lvs`` within each entry of ``ansible_facts['vgs']``
|
||||
to provide complete logical volume data scoped by volume group. The top level
|
||||
``lvs`` fact by comparison, deduplicates logical volume names across volume
|
||||
groups and may be incomplete. (https://github.com/ansible/ansible/issues/85632)
|
||||
- six - bump six version from 1.16.0 to 1.17.0 (https://github.com/ansible/ansible/issues/85408).
|
||||
- stat module - add SELinux context as a return value, and add a new option
|
||||
to trigger this return, which is False by default. (https://github.com/ansible/ansible/issues/85217).
|
||||
- tags now warn when using reserved keywords.
|
||||
- wrapt - bump version from 1.15.0 to 1.17.2 (https://github.com/ansible/ansible/issues/85407).
|
||||
release_summary: '| Release Date: 2025-09-23
|
||||
|
||||
| `Porting Guide <https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
|
||||
|
||||
'
|
||||
removed_features:
|
||||
- Removed the option to set the ``DEFAULT_TRANSPORT`` configuration to ``smart``
|
||||
that selects the default transport as either ``ssh`` or ``paramiko`` based
|
||||
on the underlying platform configuraton.
|
||||
- '``vault``/``unvault`` filters - remove the deprecated ``vaultid`` parameter.'
|
||||
- ansible-doc - role entrypoint attributes are no longer shown
|
||||
- ansible-galaxy - removed the v2 Galaxy server API. Galaxy servers hosting
|
||||
collections must support v3.
|
||||
- dnf/dnf5 - remove deprecated ``install_repoquery`` option.
|
||||
- encrypt - remove deprecated passlib_or_crypt API.
|
||||
- paramiko - Removed the ``PARAMIKO_HOST_KEY_AUTO_ADD`` and ``PARAMIKO_LOOK_FOR_KEYS``
|
||||
configuration keys, which were previously deprecated.
|
||||
- py3compat - remove deprecated ``py3compat.environ`` call.
|
||||
- vars plugins - removed the deprecated ``get_host_vars`` or ``get_group_vars``
|
||||
fallback for vars plugins that do not inherit from ``BaseVarsPlugin`` and
|
||||
define a ``get_vars`` method.
|
||||
- yum_repository - remove deprecated ``keepcache`` option.
|
||||
codename: Good Times Bad Times
|
||||
fragments:
|
||||
- 2.20.0b1_summary.yaml
|
||||
- 66497-include_role-_from-dedup.yml
|
||||
- 81796-ansible-doc-roles.yml
|
||||
- 85010-uri-multipart-file-on-retry.yml
|
||||
- 85217-stat-add-selinux-context.yml
|
||||
- 85487-add-dependency-installation-to-deb822_repository.yml
|
||||
- 85497-default-callback-indent.yml
|
||||
- 85524-resolve-task-resolved_action-early.yml
|
||||
- 85556-fix-pip-changed.yml
|
||||
- 85596-hide-proto.yml
|
||||
- 85599-fix-templating-import_tasks-parent-include.yml
|
||||
- 85632-setup-logical-volume-name-uniqueness.yml
|
||||
- 85638-ansible-test-validate-modules-doc-fragments.yml
|
||||
- 85682-rescue-flush_handlers.yml
|
||||
- 85743-lazy-ternary.yml
|
||||
- 85816-wsl-cache-files.yml
|
||||
- ansible-doc-description-verbosity.yml
|
||||
- ansible-test-auth-update.yml
|
||||
- ansible-test-bootstrap-retry.yml
|
||||
- ansible-test-containers.yml
|
||||
- ansible-test-coverage-config.yml
|
||||
- ansible-test-coverage-upgrade.yml
|
||||
- ansible-test-freebsd-14.3.yml
|
||||
- ansible-test-freebsd-bootstrap.yml
|
||||
- ansible-test-ios.yml
|
||||
- ansible-test-missing-dir-fix.yml
|
||||
- ansible-test-remotes.yml
|
||||
- ansible-test-rhel-9.6.yml
|
||||
- ansible-test-sanity-requirements.yml
|
||||
- apt_deb_install.yml
|
||||
- apt_repo_debug.yml
|
||||
- blockinfile-new-module-option-encoding.yml
|
||||
- concat_coerce_none_to_empty.yml
|
||||
- deprecate_inject.yml
|
||||
- display_internals.yml
|
||||
- dnf-remove-install_repoquery.yml
|
||||
- dnf_installroot_dir.yml
|
||||
- elide_broken_conditional_result.yml
|
||||
- encrypt.yml
|
||||
- failed-when-exception.yml
|
||||
- fetch_file.yml
|
||||
- fix-displaying-delegate_to-ansible_host.yml
|
||||
- fix-listing-nested-filter-and-test-plugins.yml
|
||||
- fix_script_error.yml
|
||||
- galaxy-use-import-task-url.yml
|
||||
- getattr_marker_access.yml
|
||||
- hide_proto.yml
|
||||
- import_tasks-dont-readd-tags.yml
|
||||
- include_vars.yml
|
||||
- known_issues_jinja_error.yml
|
||||
- lineinfile-new-module-option-encoding.yml
|
||||
- module_direct_exec.yml
|
||||
- openrc.yml
|
||||
- paramiko-global-config-removal.yml
|
||||
- password_hash_encrypt.yml
|
||||
- play-argument-spec-validation.yml
|
||||
- plugins_fix_origin.yml
|
||||
- powershell-quoting.yml
|
||||
- python-support.yml
|
||||
- regex_test.yml
|
||||
- remove-role-entrypoint-attrs.yml
|
||||
- remove-v2-galaxy-api.yml
|
||||
- remove_hash_params.yml
|
||||
- remove_py3compat.yml
|
||||
- replace-update-string-comparison-method-to-unicode.yml
|
||||
- return_fragments.yml
|
||||
- run_command_output_selector.yml
|
||||
- shell-wrap_for_exec_deprecation.yml
|
||||
- six_1.7.0.yml
|
||||
- smart-transport-removal.yml
|
||||
- tag_u_it.yml
|
||||
- template-tuple-fix.yml
|
||||
- template_lookup_skip_finalize.yml
|
||||
- templating-filter-generators.yml
|
||||
- to-text-to-bytes.yml
|
||||
- tqm.yml
|
||||
- ucs.yml
|
||||
- vars-remove-get_hostgroup_vars.yml
|
||||
- vars_begone.yml
|
||||
- vault-vaultid-removal.yml
|
||||
- warn_reserved_tags.yml
|
||||
- win_async-junk-output.yml
|
||||
- wrapt_1.17.2.yml
|
||||
- yum_repository-remove-keepcache.yml
|
||||
release_date: '2025-09-23'
|
||||
2.20.0b2:
|
||||
changes:
|
||||
bugfixes:
|
||||
- Fix issue where play tags prevented executing notified handlers (https://github.com/ansible/ansible/issues/85475)
|
||||
- Fix issues with keywords being incorrectly validated on ``import_tasks`` (https://github.com/ansible/ansible/issues/85855,
|
||||
https://github.com/ansible/ansible/issues/85856)
|
||||
- Fix traceback when trying to import non-existing file via nested ``import_tasks``
|
||||
(https://github.com/ansible/ansible/issues/69882)
|
||||
- ansible-doc - prevent crash when scanning collections in paths that have more
|
||||
than one ``ansible_collections`` in it (https://github.com/ansible/ansible/issues/84909,
|
||||
https://github.com/ansible/ansible/pull/85361).
|
||||
- fetch - also return ``file`` in the result when changed is ``True`` (https://github.com/ansible/ansible/pull/85729).
|
||||
minor_changes:
|
||||
- DataLoader - Update ``DataLoader.get_basedir`` to be an abspath
|
||||
- known_hosts - return rc and stderr when ssh-keygen command fails for further
|
||||
debugging (https://github.com/ansible/ansible/issues/85850).
|
||||
release_summary: '| Release Date: 2025-10-06
|
||||
|
||||
| `Porting Guide <https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
|
||||
|
||||
'
|
||||
removed_features:
|
||||
- ansible-galaxy - remove support for resolvelib >= 0.5.3, < 0.8.0.
|
||||
codename: Good Times Bad Times
|
||||
fragments:
|
||||
- 2.20.0b2_summary.yaml
|
||||
- 85361-collection-name-from-path-none.yml
|
||||
- 85475-fix-flush_handlers-play-tags.yml
|
||||
- data-loader-basedir-abspath.yml
|
||||
- drop-resolvelib-lt-0_8_0.yml
|
||||
- fix-fetch-return-file.yml
|
||||
- import_tasks-fixes.yml
|
||||
- known_hosts.yml
|
||||
release_date: '2025-10-06'
|
||||
2.20.0rc1:
|
||||
changes:
|
||||
bugfixes:
|
||||
- SIGINT/SIGTERM Handling - Make SIGINT/SIGTERM handling more robust by splitting
|
||||
concerns between forks and the parent.
|
||||
minor_changes:
|
||||
- ansible-test - Default to Python 3.14 in the ``base`` and ``default`` test
|
||||
containers.
|
||||
- ansible-test - Filter out pylint messages for invalid filenames and display
|
||||
a notice when doing so.
|
||||
- ansible-test - Update astroid imports in custom pylint checkers.
|
||||
- ansible-test - Update pinned ``pip`` version to 25.2.
|
||||
- ansible-test - Update pinned sanity test requirements, including upgrading
|
||||
to pylint 4.0.0.
|
||||
release_summary: '| Release Date: 2025-10-14
|
||||
|
||||
| `Porting Guide <https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
|
||||
|
||||
'
|
||||
codename: Good Times Bad Times
|
||||
fragments:
|
||||
- 2.20.0rc1_summary.yaml
|
||||
- ansible-test-sanity-requirements-again.yml
|
||||
- fix-signal-propagation.yml
|
||||
release_date: '2025-10-14'
|
||||
2.20.0rc2:
|
||||
changes:
|
||||
bugfixes:
|
||||
- psrp - ReadTimeout exceptions now mark host as unreachable instead of fatal
|
||||
(https://github.com/ansible/ansible/issues/85966)
|
||||
release_summary: '| Release Date: 2025-10-20
|
||||
|
||||
| `Porting Guide <https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
|
||||
|
||||
'
|
||||
codename: Good Times Bad Times
|
||||
fragments:
|
||||
- 2.20.0rc2_summary.yaml
|
||||
- 85966-psrp-readtimeout.yml
|
||||
release_date: '2025-10-20'
|
||||
2.20.0rc3:
|
||||
changes:
|
||||
bugfixes:
|
||||
- Windows - ignore temporary file cleanup warning when using AnsibleModule to
|
||||
compile C# utils. This should reduce the number of warnings that can safely
|
||||
be ignored when running PowerShell modules - https://github.com/ansible/ansible/issues/85976
|
||||
- config lookup now properly factors in variables and show_origin when checking
|
||||
entries from the global configuration.
|
||||
- option argument deprecations now have a proper alternative help text.
|
||||
- package_facts - typecast bytes to string while returning facts (https://github.com/ansible/ansible/issues/85937).
|
||||
minor_changes:
|
||||
- ansible-test - Update default containers.
|
||||
- ansible-test - Update the pylint sanity test to pylint 4.0.2.
|
||||
release_summary: '| Release Date: 2025-10-29
|
||||
|
||||
| `Porting Guide <https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
|
||||
|
||||
'
|
||||
codename: Good Times Bad Times
|
||||
fragments:
|
||||
- 2.20.0rc3_summary.yaml
|
||||
- add-type-warning.yml
|
||||
- ansible-test-containers-update.yml
|
||||
- ansible-test-pylint-update.yml
|
||||
- config_lookup_fix.yml
|
||||
- option_deprecation_help.yml
|
||||
- package_facts.yml
|
||||
release_date: '2025-10-29'
|
||||
2.20.1:
|
||||
changes:
|
||||
release_summary: '| Release Date: 2025-12-09
|
||||
|
||||
| `Porting Guide <https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
|
||||
|
||||
'
|
||||
codename: Good Times Bad Times
|
||||
fragments:
|
||||
- 2.20.1_summary.yaml
|
||||
release_date: '2025-12-09'
|
||||
2.20.1rc1:
|
||||
changes:
|
||||
bugfixes:
|
||||
- Fix ``AnsibleModule.human_to_bytes()``, which was never adjusted after the
|
||||
standalone ``human_to_bytes()`` got a new parameter ``default_unit`` (https://github.com/ansible/ansible/pull/85259).
|
||||
- Variable loading now uses file source instead of variables when invalidly
|
||||
formmated vars file is loaded.
|
||||
- ansible-test - The runtime-metadata sanity test now ignores pre-release and
|
||||
build identifiers in collection versions. This prevents errors if a tombstone
|
||||
version is ``X.0.0``, while the collection's version is ``X.0.0-prerelease``
|
||||
(https://github.com/ansible/ansible/issues/85193)."
|
||||
- display - Fix ``getuser`` fallback error handling on Python 3.13 and later.
|
||||
(https://github.com/ansible/ansible/issues/86142)
|
||||
- first_found - Correct the "Include tasks only if one of the files exists,
|
||||
otherwise skip" example.
|
||||
- get_url - fix regex for GNU Digest line which is used in comparing checksums
|
||||
(https://github.com/ansible/ansible/issues/86132).
|
||||
- local connection - Fix ``getuser`` fallback error handling on Python 3.13
|
||||
and later.
|
||||
release_summary: '| Release Date: 2025-12-02
|
||||
|
||||
| `Porting Guide <https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
|
||||
|
||||
'
|
||||
codename: Good Times Bad Times
|
||||
fragments:
|
||||
- 2.20.1rc1_summary.yaml
|
||||
- 85193-runtime-metadata.yml
|
||||
- 85259-fix-human_to_bytes.yml
|
||||
- first-found-example.yml
|
||||
- get_url_regex.yml
|
||||
- getuser-exception-handling.yml
|
||||
- varloaderror.yml
|
||||
release_date: '2025-12-02'
|
||||
|
|
|
|||
3
changelogs/fragments/2.20.0_summary.yaml
Normal file
3
changelogs/fragments/2.20.0_summary.yaml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
release_summary: |
|
||||
| Release Date: 2025-11-04
|
||||
| `Porting Guide <https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
|
||||
3
changelogs/fragments/2.20.0b1_summary.yaml
Normal file
3
changelogs/fragments/2.20.0b1_summary.yaml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
release_summary: |
|
||||
| Release Date: 2025-09-23
|
||||
| `Porting Guide <https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
|
||||
3
changelogs/fragments/2.20.0b2_summary.yaml
Normal file
3
changelogs/fragments/2.20.0b2_summary.yaml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
release_summary: |
|
||||
| Release Date: 2025-10-06
|
||||
| `Porting Guide <https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
|
||||
3
changelogs/fragments/2.20.0rc1_summary.yaml
Normal file
3
changelogs/fragments/2.20.0rc1_summary.yaml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
release_summary: |
|
||||
| Release Date: 2025-10-14
|
||||
| `Porting Guide <https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
|
||||
3
changelogs/fragments/2.20.0rc2_summary.yaml
Normal file
3
changelogs/fragments/2.20.0rc2_summary.yaml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
release_summary: |
|
||||
| Release Date: 2025-10-20
|
||||
| `Porting Guide <https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
|
||||
3
changelogs/fragments/2.20.0rc3_summary.yaml
Normal file
3
changelogs/fragments/2.20.0rc3_summary.yaml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
release_summary: |
|
||||
| Release Date: 2025-10-29
|
||||
| `Porting Guide <https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
|
||||
3
changelogs/fragments/2.20.1_summary.yaml
Normal file
3
changelogs/fragments/2.20.1_summary.yaml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
release_summary: |
|
||||
| Release Date: 2025-12-09
|
||||
| `Porting Guide <https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
|
||||
3
changelogs/fragments/2.20.1rc1_summary.yaml
Normal file
3
changelogs/fragments/2.20.1rc1_summary.yaml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
release_summary: |
|
||||
| Release Date: 2025-12-02
|
||||
| `Porting Guide <https://docs.ansible.com/ansible-core/2.20/porting_guides/porting_guide_core_2.20.html>`__
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
bugfixes:
|
||||
- git - Correct the output of git checkmode to a failure when the ``version`` supplied is an invalid ref (https://github.com/ansible/ansible/issues/51580)
|
||||
2
changelogs/fragments/66497-include_role-_from-dedup.yml
Normal file
2
changelogs/fragments/66497-include_role-_from-dedup.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- include_role - allow host specific values in all ``*_from`` arguments (https://github.com/ansible/ansible/issues/66497)
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
bugfixes:
|
||||
- user - fix modifying users on BusyBox (https://github.com/ansible/ansible/issues/66679)
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
bugfixes:
|
||||
- user - create accounts in an unlocked state by default on BusyBox (https://github.com/ansible/ansible/issues/68676)
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
bugfixes:
|
||||
- dnf - When installing a dnf module, install and enable when missing, upgrade when present (https://github.com/ansible/ansible/issues/73457)
|
||||
2
changelogs/fragments/81796-ansible-doc-roles.yml
Normal file
2
changelogs/fragments/81796-ansible-doc-roles.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
minor_changes:
|
||||
- "ansible-doc - show ``notes``, ``seealso``, and top-level ``version_added`` for role entrypoints (https://github.com/ansible/ansible/pull/81796)."
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- uri - fix form-multipart file not being found when task is retried (https://github.com/ansible/ansible/issues/85009)
|
||||
2
changelogs/fragments/85217-stat-add-selinux-context.yml
Normal file
2
changelogs/fragments/85217-stat-add-selinux-context.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
minor_changes:
|
||||
- stat module - add SELinux context as a return value, and add a new option to trigger this return, which is False by default. (https://github.com/ansible/ansible/issues/85217).
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
bugfixes:
|
||||
- apt - Stop the >= operator from being ignored for packages that are not already installed (https://github.com/ansible/ansible/pull/85254)
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
bugfixes:
|
||||
- "ansible-doc - prevent crash when scanning collections in paths that have more than one ``ansible_collections`` in it
|
||||
(https://github.com/ansible/ansible/issues/84909, https://github.com/ansible/ansible/pull/85361)."
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- Fix issue where play tags prevented executing notified handlers (https://github.com/ansible/ansible/issues/85475)
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
minor_changes:
|
||||
- deb822_repository - Add automatic installation of the ``python3-debian`` package if it is missing by adding the parameter ``install_python_debian``
|
||||
2
changelogs/fragments/85497-default-callback-indent.yml
Normal file
2
changelogs/fragments/85497-default-callback-indent.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
minor_changes:
|
||||
- "default callback plugin - add option to configure indentation for JSON and YAML output (https://github.com/ansible/ansible/pull/85497)."
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
minor_changes:
|
||||
- "default callback plugin - add option to configure line width for YAML output. This allows to disable line wrapping
|
||||
(https://github.com/ansible/ansible/issues/84657, https://github.com/ansible/ansible/pull/85498)."
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- callback plugins - improve consistency accessing the Task object's resolved_action attribute.
|
||||
2
changelogs/fragments/85556-fix-pip-changed.yml
Normal file
2
changelogs/fragments/85556-fix-pip-changed.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- pip - Fix pip module output so that it returns changed when the only operation is initializing a venv.
|
||||
3
changelogs/fragments/85596-hide-proto.yml
Normal file
3
changelogs/fragments/85596-hide-proto.yml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
bugfixes:
|
||||
- >-
|
||||
``ansible-galaxy collection list`` - fail when none of the configured collection paths exist.
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- import_tasks - fix templating parent include arguments.
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
bugfixes:
|
||||
- >-
|
||||
``ansible.builtin.pip`` - Running the built-in pip module with ``check_mode`` and packages coming from VCS URLs, archives, or local filepaths now correctly outputs the ``changed`` status of the task.
|
||||
Previously, it was always reported as changed due to improper package name resolution.
|
||||
(https://github.com/ansible/ansible/pull/85623)
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
minor_changes:
|
||||
- >-
|
||||
setup - added new subkey ``lvs`` within each entry of ``ansible_facts['vgs']``
|
||||
to provide complete logical volume data scoped by volume group.
|
||||
The top level ``lvs`` fact by comparison, deduplicates logical volume names
|
||||
across volume groups and may be incomplete. (https://github.com/ansible/ansible/issues/85632)
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- "validate-modules sanity test - fix handling of missing doc fragments (https://github.com/ansible/ansible/pull/85638)."
|
||||
2
changelogs/fragments/85682-rescue-flush_handlers.yml
Normal file
2
changelogs/fragments/85682-rescue-flush_handlers.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- The ``ansible_failed_task`` variable is now correctly exposed in a rescue section, even when a failing handler is triggered by the ``flush_handlers`` task in the corresponding ``block`` (https://github.com/ansible/ansible/issues/85682)
|
||||
2
changelogs/fragments/85743-lazy-ternary.yml
Normal file
2
changelogs/fragments/85743-lazy-ternary.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- "``ternary`` filter - evaluate values lazily (https://github.com/ansible/ansible/issues/85743)"
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
bugfixes:
|
||||
- ansible_virtualization_role and ansible_virtualization_type facts - fix the detection of vms running inside FreeBSD Bhyve hypervisor and detection of jails (https://github.com/ansible/ansible/pull/85767)
|
||||
2
changelogs/fragments/85816-wsl-cache-files.yml
Normal file
2
changelogs/fragments/85816-wsl-cache-files.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- cache plugins - close temp cache file before moving it to fix error on WSL. (https://github.com/ansible/ansible/pull/85816)
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
bugfixes:
|
||||
- "copy - when a single-file local directory was specified as the source, ``changed`` used to be ``false`` even when the source was actually copied. It now makes sure ``changed`` is ``true`` in this case. (https://github.com/ansible/ansible/issues/85833)"
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
bugfixes:
|
||||
- galaxy - previously, some corrupted cache files could cause Ansible Galaxy to fail
|
||||
with a traceback. This has been corrected to display a clear error message explaining
|
||||
how to resolve the problem.
|
||||
(https://github.com/ansible/ansible/issues/85918)
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
removed_features:
|
||||
- Removed deprecated ability to import ``datetime``, ``signal``, ``types``, ``chain``, ``repeat``, ``map`` and ``shlex_quote`` from ``ansible.module_utils.basic``.
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
removed_features:
|
||||
- Removed deprecated ``handle_stats_and_callbacks`` parameter of the ``StrategyBase._load_included_file`` method. (https://github.com/ansible/ansible/issues/86003)
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
minor_changes:
|
||||
- "ansible-test validate-modules sanity test - now reports bad return value keys that cannot be used with the dot notation in Jinja expressions (https://github.com/ansible/ansible/issues/86079)."
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
---
|
||||
minor_changes:
|
||||
- script - remove the currently unsupported ``decrypt`` argument from the module documentation (https://github.com/ansible/ansible/issues/86067).
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
bugfixes:
|
||||
- >-
|
||||
iptables - The module can now detect when a extensions added with the module ``match`` argument have
|
||||
been automatically imported by other module arguments such as ``uid_owner`` and prevents duplicate
|
||||
extension imports which previously caused an error (https://github.com/ansible/ansible/issues/84387).
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
minor_changes:
|
||||
- deb822_repository - add include and exclude parameter arguments (https://github.com/ansible/ansible/issues/86155)
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
bugfixes:
|
||||
- "dnf - fix package installation when specifying architecture without version (e.g., ``libgcc.i686``) where a different architecture of the same package is already installed (https://github.com/ansible/ansible/issues/86156)."
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
bugfixes:
|
||||
- >-
|
||||
``ansible-galaxy install``/``ansible-galaxy collection download`` - collections from git repositories
|
||||
with a tag or sha version no longer emit detached head warning messages
|
||||
(https://github.com/ansible/ansible/issues/86169).
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
bugfixes:
|
||||
- deb822_repository no longer over-normalizes repository names when generating
|
||||
sources list filenames, preventing collisions for names that differ by case,
|
||||
underscores, or dots (https://github.com/ansible/ansible/issues/86243)
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
bugfixes:
|
||||
- "Fix source metadata validation (https://github.com/ansible/ansible/pull/86320)."
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
bugfixes:
|
||||
- ansible-galaxy - warn instead of raising an error when no valid role or collections paths exist (https://github.com/ansible/ansible/pull/86341)
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
bugfixes:
|
||||
- user - fix ``FreeBsdUser`` to not create ``/nonexistent`` directory when modifying user to add them to a group on FreeBSD (https://github.com/ansible/ansible/issues/86368)
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
bugfixes:
|
||||
- >-
|
||||
``ansible-galaxy collection list`` - issue a warning when a collection's namespace and name do not match its
|
||||
filepath. (https://github.com/ansible/ansible/issues/69813)
|
||||
- >-
|
||||
``ansible-galaxy collection list|install`` - list collections based on reference (the fqcn used to refer to them in a
|
||||
playbook), not based on their documented name. (https://github.com/ansible/ansible/issues/69813)
|
||||
- >-
|
||||
``ansible-galaxy collection verify`` - fail collection verification when a collection's namespace and name
|
||||
do not match its filepath. (https://github.com/ansible/ansible/issues/69813)
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
bugfixes:
|
||||
- deb822_repository - Remove ``Install-Python-Debian`` from files outputted by the ``deb822_repository`` module (https://github.com/ansible/ansible/issues/86395)
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
bugfixes:
|
||||
- local connection - Pass correct type to become plugins when checking password (https://github.com/ansible/ansible/issues/86458)
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
bugfixes:
|
||||
- Fix interpreter discovery on delegated ``async`` tasks (https://github.com/ansible/ansible/issues/86491)
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
minor_changes:
|
||||
- >-
|
||||
PowerShell AddType Util - Will only include the debug information when ``DISPLAY_TRACEBACK`` contains ``error`` or
|
||||
``always``. In the past the debug information would have been included if ``-vvv`` or higher was used but this new
|
||||
behavior aligns the logic with the new option added in Ansible 2.19.
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
bugfixes:
|
||||
- modules - fix AnsiballZ wrapper code escaping of sitecustomize
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
minor_changes:
|
||||
- ansible-doc - Return a more verbose error message when the ``description`` field is missing.
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
---
|
||||
minor_changes:
|
||||
- executor - remove unused RETURN_VARS
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
minor_changes:
|
||||
- The minimum required ``setuptools`` version is now ``77.0.3``, as it is needed for the new PEP 639 license format
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
minor_changes:
|
||||
- ansible-test - Replace Alpine 3.22 container and remote with 3.23.
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
minor_changes:
|
||||
- ansible-test - Use the new API endpoint for the Ansible Core CI service.
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
minor_changes:
|
||||
- ansible-test - Remove support for an obsolete remote authentication method.
|
||||
2
changelogs/fragments/ansible-test-auth-update.yml
Normal file
2
changelogs/fragments/ansible-test-auth-update.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
minor_changes:
|
||||
- ansible-test - Implement new authentication methods for accessing the Ansible Core CI service.
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
minor_changes:
|
||||
- ansible-test - Support automatic loading of test collections in core integration tests.
|
||||
2
changelogs/fragments/ansible-test-bootstrap-retry.yml
Normal file
2
changelogs/fragments/ansible-test-bootstrap-retry.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- ansible-test - Limit package install retries during managed remote instance bootstrapping.
|
||||
2
changelogs/fragments/ansible-test-containers-update.yml
Normal file
2
changelogs/fragments/ansible-test-containers-update.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
minor_changes:
|
||||
- ansible-test - Update default containers.
|
||||
|
|
@ -1,2 +1,3 @@
|
|||
minor_changes:
|
||||
- ansible-test - Update base and default containers.
|
||||
- ansible-test - Update test containers.
|
||||
- ansible-test - Update base/default containers to include Python 3.14.0.
|
||||
|
|
|
|||
7
changelogs/fragments/ansible-test-coverage-config.yml
Normal file
7
changelogs/fragments/ansible-test-coverage-config.yml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
bugfixes:
|
||||
- ansible-test - Use a consistent coverage config for all collection testing.
|
||||
- ansible-test - Always exclude the ``tests/output/`` directory from a collection's code coverage.
|
||||
(https://github.com/ansible/ansible/issues/84244)
|
||||
|
||||
minor_changes:
|
||||
- ansible-test - Improve formatting of generated coverage config file.
|
||||
2
changelogs/fragments/ansible-test-coverage-upgrade.yml
Normal file
2
changelogs/fragments/ansible-test-coverage-upgrade.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
minor_changes:
|
||||
- ansible-test - Upgrade to ``coverage`` version 7.10.7 for Python 3.9 and later.
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
bugfixes:
|
||||
- ansible-test - Fix docker hostname parsing
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
bugfixes:
|
||||
- ansible-test - Upgrade ``expat`` during provisioning of Fedora 42 remote instances.
|
||||
2
changelogs/fragments/ansible-test-freebsd-14.3.yml
Normal file
2
changelogs/fragments/ansible-test-freebsd-14.3.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
minor_changes:
|
||||
- ansible-test - Replace FreeBSD 14.2 with 14.3.
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
minor_changes:
|
||||
- ansible-test - Replace FreeBSD 13.5 remote with 15.0.
|
||||
2
changelogs/fragments/ansible-test-freebsd-bootstrap.yml
Normal file
2
changelogs/fragments/ansible-test-freebsd-bootstrap.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
minor_changes:
|
||||
- ansible-test - Use OS packages to satisfy controller requirements on FreeBSD 13.5 during managed instance bootstrapping.
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
bugfixes:
|
||||
- ansible-test - Restore code coverage reporting for Python code residing in integration tests.
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
minor_changes:
|
||||
- >-
|
||||
ansible-test - add ``.winrm`` and ``.networking`` as valid JSON/YAML inventory file extensions. This should not
|
||||
affect any public facing code as it is used internally for inventories generated by ``ansible-test``.
|
||||
2
changelogs/fragments/ansible-test-ios.yml
Normal file
2
changelogs/fragments/ansible-test-ios.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
minor_changes:
|
||||
- ansible-test - Removed support for automatic provisioning of obsolete instances for network-integration tests.
|
||||
2
changelogs/fragments/ansible-test-missing-dir-fix.yml
Normal file
2
changelogs/fragments/ansible-test-missing-dir-fix.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- ansible-test - Fix a traceback that can occur when using delegation before the ansible-test temp directory is created.
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
minor_changes:
|
||||
- ansible-test - Replace Fedora 42 with 43.
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
minor_changes:
|
||||
- ansible-test - Remove pylint check for ``urllib2`` usage.
|
||||
4
changelogs/fragments/ansible-test-remotes.yml
Normal file
4
changelogs/fragments/ansible-test-remotes.yml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
minor_changes:
|
||||
- ansible-test - Upgrade Fedora 41 to Fedora 42.
|
||||
- ansible-test - Upgrade Alpine 3.21 to 3.22.
|
||||
- ansible-test - Update Ubuntu containers.
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
minor_changes:
|
||||
- ansible-test - Replace RHEL 9.6 remote with 9.7.
|
||||
- ansible-test - Replace RHEL 10.0 remote with 10.1.
|
||||
2
changelogs/fragments/ansible-test-rhel-9.6.yml
Normal file
2
changelogs/fragments/ansible-test-rhel-9.6.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
minor_changes:
|
||||
- ansible-test - Replace RHEL 9.5 with 9.6.
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
minor_changes:
|
||||
- ansible-test - Optimize DNF configuration for managed remote RHEL instances.
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
minor_changes:
|
||||
- ansible-test - Update pinned sanity test requirements, including upgrading to pylint 4.0.0.
|
||||
- ansible-test - Filter out pylint messages for invalid filenames and display a notice when doing so.
|
||||
- ansible-test - Update astroid imports in custom pylint checkers.
|
||||
- ansible-test - Default to Python 3.14 in the ``base`` and ``default`` test containers.
|
||||
- ansible-test - Update pinned ``pip`` version to 25.2.
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
minor_changes:
|
||||
- ansible-test - Update pinned sanity test requirements.
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
minor_changes:
|
||||
- ansible-test - Expand functions covered by the ``unwanted`` rule for the ``pylint`` sanity test.
|
||||
It now includes various ``os.*`` and ``subprocess.*`` subprocess functions in Ansible modules and module_utils.
|
||||
- ansible-test - Remove ``use-run-command-not-popen`` and ``use-run-command-not-os-call`` error codes from the
|
||||
``validate-modules`` sanity test. These scenarios are now covered by the ``pylint`` sanity test.
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
minor_changes:
|
||||
- ansible-test - Update URL used to download FreeBSD wheels for managed remotes.
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
bugfixes:
|
||||
- ansible_local will no longer trigger variable injection default value deprecation.
|
||||
3
changelogs/fragments/apt_deb_install.yml
Normal file
3
changelogs/fragments/apt_deb_install.yml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
bugfixes:
|
||||
- apt - mark dependencies installed as part of deb file installation as auto (https://github.com/ansible/ansible/issues/78123).
|
||||
3
changelogs/fragments/apt_repo_debug.yml
Normal file
3
changelogs/fragments/apt_repo_debug.yml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
minor_changes:
|
||||
- apt_repository - use correct debug method to print debug message.
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue