Skip to content

Commit b896c8e

Browse files
authored
Merge pull request ansible#828 from ansible/release/1.4.0
🔖 Release v1.4.0
2 parents 5a6fbf7 + 951f27d commit b896c8e

47 files changed

Lines changed: 294 additions & 142 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.rst

Lines changed: 294 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,300 @@ Changelog
1414

1515
.. towncrier release notes start
1616
17+
v1.4.0
18+
======
19+
20+
*(2026-03-15)*
21+
22+
23+
Bug fixes
24+
---------
25+
26+
- Fixed the log level mapping to cover the entire ``libssh`` range
27+
-- by :user:`Jakuje` and :user:`webknjaz`.
28+
29+
Previously it was not possible to set the most verbose ``libssh`` log level
30+
``SSH_LOG_TRACE`` to get the most verbose log messages useful for debugging
31+
connection issues.
32+
33+
*Related issues and pull requests on GitHub:*
34+
:issue:`597`.
35+
36+
37+
Features
38+
--------
39+
40+
- Made ``libssh`` use the Python :external+python:mod:`logging` system
41+
-- by :user:`Jakuje` and :user:`webknjaz`.
42+
43+
Previously the underlying ``libssh`` library was writing its logs directly
44+
from the C-level into ``stderr``, which caused inconsistent behavior.
45+
46+
The default log level is now set to :data:`ANSIBLE_PYLIBSSH_TRACE`
47+
and the downstream loggers are able to trim the verbosity down.
48+
If you need performance, it is possible to disable logging on the ``libssh``
49+
side at the source by setting a lower logging value, for example:
50+
51+
.. code-block:: python
52+
53+
ssh_session.set_log_level(ANSIBLE_PYLIBSSH_NOLOG)
54+
55+
Additionally, the log level can be now be set also through the session initializer:
56+
57+
.. code-block:: python
58+
59+
ssh = Session(log_verbosity=ANSIBLE_PYLIBSSH_TRACE)
60+
61+
62+
or the ``connect()`` method arguments:
63+
64+
.. code-block:: python
65+
66+
ssh.connect(log_verbosity=ANSIBLE_PYLIBSSH_TRACE)
67+
68+
Setting any levels imported from :external+python:mod:`!logging` is also supported.
69+
70+
*Related issues and pull requests on GitHub:*
71+
:issue:`597`.
72+
73+
74+
Packaging updates and notes for downstreams
75+
-------------------------------------------
76+
77+
- Started shipping binary ``armv7l`` wheels -- by :user:`webknjaz`.
78+
79+
*Related issues and pull requests on GitHub:*
80+
:issue:`648`.
81+
82+
- Upgrading :pypi:`cibuildwheel` to v2.22.0 also picked up Python 3.13
83+
and enabled respective wheels to be built -- by :user:`webknjaz`.
84+
85+
*Related issues and pull requests on GitHub:*
86+
:issue:`648`.
87+
88+
- The CI/CD/packaging infrastructure has been updated to produce
89+
:external+packaging:term:`source distribution <Source Distribution (or "sdist")>`
90+
file names consistent with the requirement of uploading artifacts
91+
compliant with the core packaging metadata 2.2 or newer to PyPI and
92+
TestPyPI -- by :user:`webknjaz`.
93+
94+
Along with that, the infrastructure has been adjusted to expect
95+
:pep:`625`-conforming names in its guard rails checks
96+
-- with some :user:`cidrblock`\ s help.
97+
98+
*Related issues and pull requests on GitHub:*
99+
:issue:`808`, :issue:`809`.
100+
101+
- Upgrading :pypi:`cibuildwheel` to v3.1.0 also picked up Python 3.14
102+
and enabled respective wheels to be built -- by :user:`webknjaz`.
103+
104+
Building the free-threaded wheels remains disabled, though.
105+
106+
*Related issues and pull requests on GitHub:*
107+
:issue:`809`, :issue:`823`.
108+
109+
- While upgrading :pypi:`cibuildwheel` to v3.1.4, its defaults changed to
110+
attempt building wheels for the RISC-V architecture. This target is now
111+
disabled explicitly due to the lack of infrastructure
112+
-- by :user:`webknjaz`.
113+
114+
We may enable it at a later time as a separate dedicated effort.
115+
116+
*Related issues and pull requests on GitHub:*
117+
:issue:`809`, :issue:`824`.
118+
119+
- Due to :pypi:`cibuildwheel` to v3 bundling :pypi:`delocate` 0.13.0 that
120+
enforces deployment-target consistency with the brew-installed copy of
121+
the ``libssh`` in the build jobs, the macOS wheels we build now require
122+
macOS version 15.0 or newer.
123+
124+
-- by :user:`cidrblock` and :user:`webknjaz`
125+
126+
*Related issues and pull requests on GitHub:*
127+
:issue:`809`, :issue:`824`.
128+
129+
- The core packaging metadata now reflects that we test the project under
130+
Python 3.13 and 3.14 (with GIL enabled)
131+
-- by :user:`cidrblock` and :user:`webknjaz`.
132+
133+
*Related issues and pull requests on GitHub:*
134+
:issue:`809`, :issue:`825`.
135+
136+
- The pre-cached ``armv7l`` images we build for the packaging
137+
infrastructure are now correctly tagged with the ``linux/arm/v7``
138+
OCI platform tag -- by :user:`webknjaz`.
139+
140+
*Related issues and pull requests on GitHub:*
141+
:issue:`810`.
142+
143+
- The build backend configuration no longer sets the deprecated
144+
``bdist_wheel.universal`` setting -- by :user:`webknjaz`.
145+
146+
This does not influence the packaging artifacts in any way.
147+
148+
*Related issues and pull requests on GitHub:*
149+
:issue:`811`.
150+
151+
- The build backend has been configured to exclude
152+
:file:`.git_archival.txt` from source distributions built from Git
153+
-- by :user:`webknjaz`.
154+
155+
This reduces the number of false positive warning the backend outputs.
156+
157+
*Related issues and pull requests on GitHub:*
158+
:issue:`811`.
159+
160+
161+
Contributor-facing changes
162+
--------------------------
163+
164+
- The repository is now set up to auto-format Python files with Ruff.
165+
Cython keeps being formatted by ``cython-lint``.
166+
167+
-- by :user:`webknjaz`
168+
169+
*Related commits on GitHub:*
170+
:commit:`234a2d34`, :commit:`a63b6028`, :commit:`0e385696`.
171+
172+
- The linting configuration now uses Ruff to run additional checks on
173+
pure Python modules -- by :user:`webknjaz`.
174+
175+
*Related commits on GitHub:*
176+
:commit:`817095443f6afa4b3822780110712db148693075`.
177+
178+
- ``cibuildwheel`` started making use of the ``armv7l`` container image
179+
following its upgrade to v2.22.0 -- by :user:`webknjaz`.
180+
181+
*Related issues and pull requests on GitHub:*
182+
:issue:`648`.
183+
184+
- Increased the amount of retries in test to avoid possible timeouts
185+
on slower systems -- by :user:`Jakuje`.
186+
187+
*Related issues and pull requests on GitHub:*
188+
:issue:`777`.
189+
190+
- The SSHD start probe client command is now shielded from external
191+
environmnent and will no longer attempt using an SSH agent on the
192+
machine where the tests are involved, nor will it use alternative
193+
authentication methods -- by :user:`webknjaz`.
194+
195+
*Related issues and pull requests on GitHub:*
196+
:issue:`782`.
197+
198+
- Now that the ``macos-13`` runner VM image has been decommissioned, the CI and CD jobs have been migrated to use ``macos-15-intel`` -- by :user:`komaldesai13`.
199+
200+
This includes giving the macOS build job more time to complete as the new version is a little slower.
201+
202+
*Related issues and pull requests on GitHub:*
203+
:issue:`791`.
204+
205+
- Updated the version of ``libssh`` to the latest release v0.12.0
206+
in the cached ``manylinux`` build environment container images
207+
-- by :user:`Jakuje`.
208+
209+
*Related issues and pull requests on GitHub:*
210+
:issue:`797`.
211+
212+
- Updated the bundled version of libssh to 0.12.0 in platform-specific
213+
wheels published on PyPI -- by :user:`Jakuje`.
214+
215+
*Related issues and pull requests on GitHub:*
216+
:issue:`798`.
217+
218+
- Added Fedora and ubi9 images to CI/CD pipeline that are relevant in 2026
219+
and removed EOL Fedora versions -- by :user:`Jakuje`.
220+
221+
*Related issues and pull requests on GitHub:*
222+
:issue:`801`.
223+
224+
- The ``pre-commit`` framework configuration has been updated to be in
225+
sync with ``awx-plugins`` and other projects. It now has a few
226+
additional linters and a workaround for the outdated ones.
227+
228+
-- by :user:`webknjaz`
229+
230+
*Related issues and pull requests on GitHub:*
231+
:issue:`803`.
232+
233+
- The standalone mentions of ``pylibssh`` have been replaced with
234+
``ansible-pylibssh`` in file license headers -- by :user:`Jakuje`.
235+
236+
*Related issues and pull requests on GitHub:*
237+
:issue:`804`.
238+
239+
- The CI/CD/packaging infrastructure has been updated to produce
240+
:external+packaging:term:`source distribution <Source Distribution (or "sdist")>`
241+
file names consistent with the requirement of uploading artifacts
242+
compliant with the core packaging metadata 2.2 or newer to PyPI and
243+
TestPyPI -- by :user:`webknjaz`.
244+
245+
Along with that, the infrastructure has been adjusted to expect
246+
:pep:`625`-conforming names in its guard rails checks
247+
-- with some :user:`cidrblock`\ s help.
248+
249+
*Related issues and pull requests on GitHub:*
250+
:issue:`808`, :issue:`809`.
251+
252+
- :pypi:`cibuildwheel` has been upgraded to v3.1.4 -- by :user:`webknjaz`.
253+
254+
*Related issues and pull requests on GitHub:*
255+
:issue:`809`, :issue:`820`, :issue:`821`, :issue:`823`, :issue:`824`.
256+
257+
- The coverage measurement infrastructure now uses the ``ctrace``
258+
:external+coveragepy:std:ref:`measurement core <config_run_core>`
259+
across all the Python versions consistently -- by :user:`webknjaz`.
260+
261+
*Related issues and pull requests on GitHub:*
262+
:issue:`809`, :issue:`825`.
263+
264+
- The CI now tests wheels built for Python 3.13 and 3.14
265+
-- by :user:`cidrblock` and :user:`webknjaz`.
266+
267+
*Related issues and pull requests on GitHub:*
268+
:issue:`809`, :issue:`825`.
269+
270+
- The pre-cached ``armv7l`` images we build for the packaging
271+
infrastructure are now correctly tagged with the ``linux/arm/v7``
272+
OCI platform tag -- by :user:`webknjaz`.
273+
274+
*Related issues and pull requests on GitHub:*
275+
:issue:`810`.
276+
277+
- The build backend configuration no longer sets the deprecated
278+
``bdist_wheel.universal`` setting -- by :user:`webknjaz`.
279+
280+
This does not influence the packaging artifacts in any way.
281+
282+
*Related issues and pull requests on GitHub:*
283+
:issue:`811`.
284+
285+
- The CI/CD infrastructure has been set up to avoid parts of the template
286+
injection problem in GitHub Actions workflow definitions. The shell
287+
entry point has been set to bash for any scripts with extra strictness
288+
enabled.
289+
290+
-- by :user:`webknjaz`
291+
292+
*Related issues and pull requests on GitHub:*
293+
:issue:`816`.
294+
295+
- The CI/CD and packaging infrastructure now sources the PyPI project name
296+
from :file:`setup.cfg` rather than hardcoding it -- by :user:`webknjaz`.
297+
298+
*Related issues and pull requests on GitHub:*
299+
:issue:`817`.
300+
301+
- The documentation building infrastructure now integrates GitHub-related
302+
RST roles using the :pypi:`sphinx-issues` extension -- by :user:`webknjaz`.
303+
304+
*Related issues and pull requests on GitHub:*
305+
:issue:`818`.
306+
307+
308+
----
309+
310+
17311
v1.3.0
18312
======
19313

docs/changelog-fragments/0e385696.contrib.rst

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/changelog-fragments/234a2d34.contrib.rst

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/changelog-fragments/597.bugfix.rst

Lines changed: 0 additions & 6 deletions
This file was deleted.

docs/changelog-fragments/597.feature.rst

Lines changed: 0 additions & 29 deletions
This file was deleted.

docs/changelog-fragments/648.contrib.rst

Lines changed: 0 additions & 2 deletions
This file was deleted.

docs/changelog-fragments/648.packaging.1.rst

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/changelog-fragments/648.packaging.2.rst

Lines changed: 0 additions & 2 deletions
This file was deleted.

docs/changelog-fragments/777.contrib.rst

Lines changed: 0 additions & 2 deletions
This file was deleted.

docs/changelog-fragments/782.contrib.rst

Lines changed: 0 additions & 4 deletions
This file was deleted.

0 commit comments

Comments
 (0)