Ansible 14.3.1
Remember when Ansible was one pip install and a flat /etc/ansible? Those days are a decade gone. What began in 2012 as a single Python codebase is now a sprawling ecosystem: a core engine (ansible-core, still on 2.x) wrapped by a community distribution that tracks its own major line — and that distribution just hit 14.3.1 on August 14, 2026.
From One Repo to a Fleet of Collections
The split happened years ago: ansible-core kept the engine (2.21.3, unchanged here), while the ansible package you actually pip install bundles ~130 collections — amazon.aws 11.4.0, community.general 13.3.0, kubernetes.core 6.5.0, and friends. Ansible 14.3.1 rides that same wave, requiring Python 3.12+.
The Symlink Loop That Ate a Release
Here's the historian's favorite part: the previous release, 14.3.0, shipped with a bug hiding inside infinidat.infinibox 1.8.4 — a recursive symlink loop that setuptools dutifully expanded 41 levels deep without complaining. The result: dozens of duplicate copies of the collection bloating the 14.3.0 package. This release swaps in 1.8.5, which is byte-for-byte 1.8.4 minus the loop. A packaging ghost story with a happy ending.
What's Actually In 14.3.1
- One collection changed — infinidat.infinibox 1.8.4 → 1.8.5 (symlink loop removed)
- ansible-core 2.21.3 — same core as 14.3.0, no engine churn
- Everything else pinned — all ~130 other collections untouched
- Python ≥ 3.12 — the floor keeps rising, as it has since 13.x
The Trajectory
Watch the arc: what began as a config-management side project is now the connective tissue of multi-cloud automation — and a release like this shows the ecosystem has matured enough that a "quiet" patch is news precisely because it's so disciplined. No feature fireworks, just a cleaner artifact.
Upgrading is a one-liner: pip install --upgrade ansible. If you pulled 14.3.0, do it soon — the symlink bloat affects install size and file-watching tooling alike.