Releases: ansible/pylibssh
v1.4.0
📝 Release notes
📦 PyPI page: https://pypi.org/project/ansible-pylibssh/1.4.0
🌱 v1.4.0 is marked as a stable release.
🔗 This release has been produced by the following workflow run: https://github.com/ansible/pylibssh/actions/runs/23120213721
v1.4.0
(2026-03-15)
Bug fixes
-
Fixed the log level mapping to cover the entire
libsshrange -- by
@Jakuje and @webknjaz.Previously it was not possible to set the most verbose
libsshlog
levelSSH_LOG_TRACEto get the most verbose log messages useful for
debugging connection issues.Related issues and pull requests on GitHub: #597.
Features
-
Made
libsshuse the Pythonloggingsystem -- by @Jakuje and
@webknjaz.Previously the underlying
libsshlibrary was writing its logs
directly from the C-level intostderr, which caused inconsistent
behavior.The default log level is now set to
ANSIBLE_PYLIBSSH_TRACEand the
downstream loggers are able to trim the verbosity down. If you need
performance, it is possible to disable logging on thelibsshside at
the source by setting a lower logging value, for example:ssh_session.set_log_level(ANSIBLE_PYLIBSSH_NOLOG)
Additionally, the log level can be now be set also through the session
initializer:ssh = Session(log_verbosity=ANSIBLE_PYLIBSSH_TRACE)
or the
connect()method arguments:ssh.connect(log_verbosity=ANSIBLE_PYLIBSSH_TRACE)
Setting any levels imported from
!loggingis also supported.Related issues and pull requests on GitHub: #597.
Packaging updates and notes for downstreams
-
Started shipping binary
armv7lwheels -- by @webknjaz.Related issues and pull requests on GitHub: #648.
-
Upgrading
cibuildwheelto v2.22.0 also picked up Python 3.13 and
enabled respective wheels to be built -- by @webknjaz.Related issues and pull requests on GitHub: #648.
-
The CI/CD/packaging infrastructure has been updated to produce
source distribution <Source Distribution (or "sdist")>file names
consistent with the requirement of uploading artifacts compliant with
the core packaging metadata 2.2 or newer to PyPI and TestPyPI -- by
@webknjaz.Along with that, the infrastructure has been adjusted to expect
625-conforming names in its guard rails checks -- with some
@cidrblocks help. -
Upgrading
cibuildwheelto v3.1.0 also picked up Python 3.14 and
enabled respective wheels to be built -- by @webknjaz.Building the free-threaded wheels remains disabled, though.
-
While upgrading
cibuildwheelto v3.1.4, its defaults changed to
attempt building wheels for the RISC-V architecture. This target is
now disabled explicitly due to the lack of infrastructure -- by
@webknjaz.We may enable it at a later time as a separate dedicated effort.
-
Due to
cibuildwheelto v3 bundlingdelocate0.13.0 that enforces
deployment-target consistency with the brew-installed copy of the
libsshin the build jobs, the macOS wheels we build now require
macOS version 15.0 or newer.-- by @cidrblock and @webknjaz
-
The core packaging metadata now reflects that we test the project
under Python 3.13 and 3.14 (with GIL enabled) -- by @cidrblock and
@webknjaz. -
The pre-cached
armv7limages we build for the packaging
infrastructure are now correctly tagged with thelinux/arm/v7OCI
platform tag -- by @webknjaz.Related issues and pull requests on GitHub: #810.
-
The build backend configuration no longer sets the deprecated
bdist_wheel.universalsetting -- by @webknjaz.This does not influence the packaging artifacts in any way.
Related issues and pull requests on GitHub: #811.
-
The build backend has been configured to exclude
.git_archival.txt
from source distributions built from Git -- by @webknjaz.This reduces the number of false positive warning the backend outputs.
Related issues and pull requests on GitHub: #811.
Contributor-facing changes
-
The repository is now set up to auto-format Python files with Ruff.
Cython keeps being formatted bycython-lint.-- by @webknjaz
-
The linting configuration now uses Ruff to run additional checks on
pure Python modules -- by @webknjaz.Related commits on GitHub:
8170954. -
cibuildwheelstarted making use of thearmv7lcontainer image
following its upgrade to v2.22.0 -- by @webknjaz.Related issues and pull requests on GitHub: #648.
-
Increased the amount of retries in test to avoid possible timeouts on
slower systems -- by @Jakuje.Related issues and pull requests on GitHub: #777.
-
The SSHD start probe client command is now shielded from external
environmnent and will no longer attempt using an SSH agent on the
machine where the tests are involved, nor will it use alternative
authentication methods -- by @webknjaz.Related issues and pull requests on GitHub: #782.
-
Now that the
macos-13runner VM image has been decommissioned, the
CI and CD jobs have been migrated to usemacos-15-intel-- by
@komaldesai13.This includes giving the macOS build job more time to complete as the
new version is a little slower.Related issues and pull requests on GitHub: #791.
-
Updated the version of
libsshto the latest release v0.12.0 in the
cachedmanylinuxbuild environment container images -- by @Jakuje.Related issues and pull requests on GitHub: #797.
-
Updated the bundled version of libssh to 0.12.0 in platform-specific
wheels published on PyPI -- by @Jakuje.Related issues and pull requests on GitHub: #798.
-
Added Fedora and ubi9 images to CI/CD pipeline that are relevant in
2026 and removed EOL Fedora versions -- by @Jakuje.Related issues and pull requests on GitHub: #801.
-
The
pre-commitframework configuration has been updated to be in
sync withawx-pluginsand other projects. It now has a few
additional linters and a workaround for the outdated ones.-- by @webknjaz
Related issues and pull requests on GitHub: #803.
-
The standalone mentions of
pylibsshhave been replaced with
ansible-pylibsshin file license headers -- by @Jakuje.Related issues and pull requests on GitHub: #804.
-
The CI/CD/packaging infrastructure has been updated to produce
source distribution <Source Distribution (or "sdist")>file names
consistent with the requirement of uploading artifacts compliant with
the core packaging metadata 2.2 or newer to PyPI and TestPyPI -- by
@webknjaz.Along with that, the infrastructure has been adjusted to expect
625-conforming names in its guard rails checks -- with some
@cidrblocks help. -
cibuildwheelhas been upgraded to v3.1.4 -- by @webknjaz.Related issues and pull requests on GitHub: #809, #820, #821,
#823, #824. -
The coverage measurement infrastructure now uses the
ctrace
measurement core <config_run_core>across all the Python versions
consistently -- by @webknjaz. -
The CI now tests wheels built for Python 3.13 and 3.14 -- by
@cidrblock and @webknjaz. -
The pre-cached
armv7limages we build for the packaging
infrastructure are now correctly tagged with thelinux/arm/v7OCI
platform tag -- by @webknjaz.Related issues and pull requests on GitHub: #810.
-
The build backend configuration no longer sets the deprecated
bdist_wheel.universalsetting -- by @webknjaz.This does not influence the packaging artifacts in any way.
Related issues and pull requests on GitHub: #811.
-
The CI/CD infrastructure has been set up to avoid parts of the
template injection problem in GitHub Actions workflow definitions. The
shell entry point has been set to bash for any scripts with extra
strictness enabled.-- by @webknjaz
Related issues and pull requests on GitHub: #816.
-
The CI/CD and packaging infrastructure now sources the PyPI project
name fromsetup.cfgrather than hardcoding it -- by @webknjaz.Related issues and pull requests on GitHub: #817.
-
The documentation building infrastructure now integrates
GitHub-related RST roles using thesphinx-issuesextension -- by
@webknjaz.Related issues and pull requests on GitHub: #818.
v1.3.0
📝 Release notes
📦 PyPI page: https://pypi.org/project/ansible-pylibssh/1.3.0
🌱 v1.3.0 is marked as a stable release.
🔗 This release has been produced by the following workflow run: https://github.com/ansible/pylibssh/actions/runs/18436549816
v1.3.0a1
📝 Release notes
📦 PyPI page: https://pypi.org/project/ansible-pylibssh/1.3.0a1
🚧 v1.3.0a1 is marked as a pre-release.
🔗 This release has been produced by the following workflow run: https://github.com/ansible/pylibssh/actions/runs/18431666269
v1.2.2
📝 Release notes
📦 PyPI page: https://pypi.org/project/ansible-pylibssh/1.2.2
🌱 v1.2.2 is marked as a stable release.
🔗 This release has been produced by the following workflow run: https://github.com/ansible/pylibssh/actions/runs/9700697462
v1.2.2
(2024-06-27)
Bug fixes
-
Downloading files larger than 64kB over SCP no longer fails -- by
@Jakuje.Related issues and pull requests on GitHub: #621.
v1.2.1
📝 Release notes
📦 PyPI page: https://pypi.org/project/ansible-pylibssh/1.2.1
🌱 v1.2.1 is marked as a stable release.
🔗 This release has been produced by the following workflow run: https://github.com/ansible/pylibssh/actions/runs/9699128891
v1.2.1
(2024-06-27)
Bug fixes
-
Downloading non-existent remote files via SCP no longer crashes the
program -- by @Jakuje.Related issues and pull requests on GitHub: #208, #325, #620.
Packaging updates and notes for downstreams
-
The RPM specification now opts out of demanding that the compiled
C-extensions have a Build ID present under EL -- by @webknjaz. -
The RPM specification has been updated to pre-build the vendored
copy ofsetuptools-scmwith the isolation disabled, addressing the
build problem in EL 9 -- by @webknjaz.Related commits on GitHub:
dd85dde. -
The RPM definition now runs import self-checks when it is built for
Fedora Linux -- by @webknjaz.Related issues and pull requests on GitHub: #615.
Contributor-facing changes
-
RPM builds are now also tested against UBI 9.4 in CI -- by
@webknjaz.Related commits on GitHub:
e9ad0a7.
v1.2.0.post4
📝 Release notes
📦 PyPI page: https://pypi.org/project/ansible-pylibssh/1.2.0.post4
🌱 v1.2.0.post4 is marked as a stable release.
🔗 This release has been produced by the following workflow run: https://github.com/ansible/pylibssh/actions/runs/9433633704
v1.2.0.post4
(2024-06-09)
Packaging updates and notes for downstreams
-
Substituting the
ghrole in source distribution long description
has been simplify to stop attempting to make URLs to arbitrary
GitHub addresses -- by @webknjaz.Related commits on GitHub:
f4ad1b76. -
The in-tree
517build backend's regular expression has been
hotfixed to replace the "project" substitution correctly -- by
@webknjaz.Previously, it was generating a lot of noise instead of a nice
description. But not anymore.Related issues and pull requests on GitHub: 9275221.
v1.2.0.post2
📝 Release notes
📦 PyPI page: https://pypi.org/project/ansible-pylibssh/1.2.0.post2
🌱 v1.2.0.post2 is marked as a stable release.
🔗 This release has been produced by the following workflow run: https://github.com/ansible/pylibssh/actions/runs/9432056614
v1.2.0.post2
(2024-06-08)
Packaging updates and notes for downstreams
-
The automation now replaces the "project" RST substitution in the
long description and GitHub Discussions/Releases -- by @webknjaz.Related commits on GitHub:
13374a71. -
The CI/CD automation has been fixed to include changelog updates
into source distribution tarballs -- by @webknjaz.Related commits on GitHub:
627f718d.
v1.2.0
📝 Release notes
📦 PyPI page: https://pypi.org/project/ansible-pylibssh/1.2.0
🌱 v1.2.0 is marked as a stable release.
🔗 This release has been produced by the following workflow run: https://github.com/ansible/pylibssh/actions/runs/9423162320
v1.2.0
(2024-06-07)
Bug fixes
-
no longer crashes when received EOF or when channel is not
explicitly closed -- by @pbrezina.Previously, crashed if
channel.recvwas called andlibssh
returnedSSH_EOFerror. It also crashed on some special occasions
where channel was not explicitly closed and the session object was
garbage-collected first.Related issues and pull requests on GitHub: #576.
Features
-
Started exposing the
SSH_OPTIONS_PUBLICKEY_ACCEPTED_TYPESand
SSH_OPTIONS_HOSTKEYSoptions publicly -- by @Qalthos.Related issues and pull requests on GitHub: #527.
-
The
request_exec()method was added to theChannelclass. It
exposes an interface for calling the respective low-level C-API of
the underlyinglibsshlibrary -- by @pbrezina.Additionally, the following calls to
libsshare now available in
the same class:request_exec(),send_eof(),
request_send_signal()andis_eofwhich is exposed as a
:pyproperty.Related issues and pull requests on GitHub: #576.
Improved documentation
-
Fixed spelling of "Connect" in the
Session.connect()docstring --
by @donnerhacke.Related issues and pull requests on GitHub: #474.
-
Added a tip to the
installation guide <Installing |project|>on
how to set compiler flags when installing from source -- @webknjaz.Related issues and pull requests on GitHub: #499.
-
Fixed the example of invoking remote commands by using
Channel.exec_command()in snippets -- by @pbrezina.Its previously showcased version wasn't functional.
Related issues and pull requests on GitHub: #576.
Packaging updates and notes for downstreams
-
A flaw in the logic for copying the project directory into a
temporary folder that led to infinite recursion whenTMPDIRwas
set to a project subdirectory path. This was happening in Fedora and
its downstream due to the use of
pyproject-rpm-macros.
It was only reproducible withpip wheeland was not affecting the
pyproject-buildusers.Related commits on GitHub:
89c9b3a. -
From now on, the published distribution package artifacts for the
new releases are signed via Sigstore -- by
@webknjaz.This is happening as a part of the GitHub Actions CI/CD workflow
automation and the signatures are uploaded to the corresponding
GitHub Release pages.Related commits on GitHub:
986988a. -
The platform-specific macOS wheels are now built using the Python
interpreter from https://python.org. They are tagged with
macosx_10_9-- by @webknjaz.Related issues and pull requests on GitHub: #333.
-
The
tomlbuild time dependency has been replaced withtomli--
by @webknjaz.The
tomlidistribution is only pulled in under Python versions
below 3.11. On 3.11 and higher, the standard library module
:pytomllibis now used instead.Related issues and pull requests on GitHub: #501.
-
Started using the built-in
setuptools-scmGit archive support
under Python 3.7 and higher -- @webknjaz.Related issues and pull requests on GitHub: #502.
-
Added support for Python 3.12 -- by @Qalthos.
It is now both tested in the CI and is advertised through the Trove
classifiers.Related issues and pull requests on GitHub: #532.
-
The
Cythonbuild time dependency now has the minimum version of
3.0 under Python 3.12 and higher -- by @webknjaz.The previous versions of
Cythonare still able to build the
project under older Python versions.Related issues and pull requests on GitHub: #540.
-
660is now enabled -- @webknjaz.Previously, due to restrictive
517hook reimports, our in-tree
build backend was losingnon-PEP 517 <517>hooks implemented in
newer versions ofsetuptoolsbut not the earlier ones. This is now
addressed by reexporting everything thatsetuptoolsexposes with a
wildcard.Related issues and pull requests on GitHub: #541.
-
The
setuptools-scmbuild dependency CI pin was updated to 8.1.0 —
this version fixes a date parsing incompatibility introduced by Git
2.45.0 (pypa/setuptools_scm#1039 <pypa/setuptools_scm/issues/1038>,pypa/setuptools_scm#1038 <pypa/setuptools_scm/pull/1039>) -- by @webknjaz.Related issues and pull requests on GitHub: #601.
Contributor-facing changes
-
The
changelogpage for the tagged release builds on Read The Docs
does not attempt showing the draft section anymore -- by @webknjaz.Related commits on GitHub:
852d259. -
Adjusted the publishing workflow automation to pre-configure Git
before attempting to create a tag when building a source
distribution -- by @webknjaz.Related commits on GitHub:
f07296f. -
The CI configuration for building the macOS platform-specific wheels
switched to usingcibuildwheel-- by @webknjaz.Related issues and pull requests on GitHub: #333.
-
The OS-level tox package was upgraded to v3.28.0 in the UBI9 CI
runtime -- by @Qalthos. -
Fixed spelling of "Connect" in the
Session.connect()docstring --
by @donnerhacke.Related issues and pull requests on GitHub: #474.
-
The Packit CI access to the internet has been restored -- by
@Qalthos.Related issues and pull requests on GitHub: #507.
-
Started building
manylinux_2_28base images for testing and
packaging in the CI/CD infrastructure -- by @Qalthos.Related issues and pull requests on GitHub: #533.
-
Switched back to using Cython's native plugin for measuring code
coverage -- by @webknjaz.Related issues and pull requests on GitHub: #538.
-
Added separate changelog fragment types for contributor-and
downstream-facing patches -- by @webknjaz.Their corresponding identifiers are
contribandpackaging
respectively. They are meant to be used for more accurate
classification, where one would resort to usingmiscotherwise.Related issues and pull requests on GitHub: #539.
-
660is now enabled -- @webknjaz.This effectively means that the ecosystem-native editable install
mode started working properly.Related issues and pull requests on GitHub: #541.
-
The duplicated jobs matrices for building manylinux wheels now
reside in a single GitHub Actions CI/CD reusable workflow
definition.-- @webknjaz
Related issues and pull requests on GitHub: #559.
-
The duplicated jobs matrices of the text jobs now reside in a single
GitHub Actions CI/CD reusable workflow definition.-- @webknjaz
Related issues and pull requests on GitHub: #560.
-
Fixed the location of release workflow in the
Release Guide
document -- by @Qalthos.Related issues and pull requests on GitHub: #565.
-
The
setuptools-scmbuild dependency CI pin was updated to 8.1.0 —
this version fixes a date parsing incompatibility introduced by Git
2.45.0 (pypa/setuptools_scm#1039 <pypa/setuptools_scm/issues/1038>,pypa/setuptools_scm#1038 <pypa/setuptools_scm/pull/1039>) -- by @webknjaz.Related issues and pull requests on GitHub: #601.
-
The CI/CD configuration was fixed to allow publishing to PyPI and
other targets disregarding the test stage outcome. This used to be a
bug in the workflow definition that has now been fixed.Related issues and pull requests on GitHub: #602.
v1.2.0rc4
📝 Release notes
📦 PyPI page: https://pypi.org/project/ansible-pylibssh/1.2.0rc4
🚧 v1.2.0rc4 is marked as a pre-release.
🔗 This release has been produced by the following workflow run: https://github.com/ansible/pylibssh/actions/runs/9421619343
v1.2.0rc4
(2024-06-07)
Bug fixes
-
no longer crashes when received EOF or when channel is not
explicitly closed -- by @pbrezina.Previously, crashed if
channel.recvwas called andlibssh
returnedSSH_EOFerror. It also crashed on some special occasions
where channel was not explicitly closed and the session object was
garbage-collected first.Related issues and pull requests on GitHub: #576.
Features
-
Started exposing the
SSH_OPTIONS_PUBLICKEY_ACCEPTED_TYPESand
SSH_OPTIONS_HOSTKEYSoptions publicly -- by @Qalthos.Related issues and pull requests on GitHub: #527.
-
The
request_exec()method was added to theChannelclass. It
exposes an interface for calling the respective low-level C-API of
the underlyinglibsshlibrary -- by @pbrezina.Additionally, the following calls to
libsshare now available in
the same class:request_exec(),send_eof(),
request_send_signal()andis_eofwhich is exposed as a
:pyproperty.Related issues and pull requests on GitHub: #576.
Improved documentation
-
Fixed spelling of "Connect" in the
Session.connect()docstring --
by @donnerhacke.Related issues and pull requests on GitHub: #474.
-
Added a tip to the
installation guide <Installing |project|>on
how to set compiler flags when installing from source -- @webknjaz.Related issues and pull requests on GitHub: #499.
-
Fixed the example of invoking remote commands by using
Channel.exec_command()in snippets -- by @pbrezina.Its previously showcased version wasn't functional.
Related issues and pull requests on GitHub: #576.
Packaging updates and notes for downstreams
-
A flaw in the logic for copying the project directory into a
temporary folder that led to infinite recursion whenTMPDIRwas
set to a project subdirectory path. This was happening in Fedora and
its downstream due to the use of
pyproject-rpm-macros.
It was only reproducible withpip wheeland was not affecting the
pyproject-buildusers.Related commits on GitHub:
89c9b3a. -
From now on, the published distribution package artifacts for the
new releases are signed via Sigstore -- by
@webknjaz.This is happening as a part of the GitHub Actions CI/CD workflow
automation and the signatures are uploaded to the corresponding
GitHub Release pages.Related commits on GitHub:
986988a. -
The platform-specific macOS wheels are now built using the Python
interpreter from https://python.org. They are tagged with
macosx_10_9-- by @webknjaz.Related issues and pull requests on GitHub: #333.
-
The
tomlbuild time dependency has been replaced withtomli--
by @webknjaz.The
tomlidistribution is only pulled in under Python versions
below 3.11. On 3.11 and higher, the standard library module
:pytomllibis now used instead.Related issues and pull requests on GitHub: #501.
-
Started using the built-in
setuptools-scmGit archive support
under Python 3.7 and higher -- @webknjaz.Related issues and pull requests on GitHub: #502.
-
Added support for Python 3.12 -- by @Qalthos.
It is now both tested in the CI and is advertised through the Trove
classifiers.Related issues and pull requests on GitHub: #532.
-
The
Cythonbuild time dependency now has the minimum version of
3.0 under Python 3.12 and higher -- by @webknjaz.The previous versions of
Cythonare still able to build the
project under older Python versions.Related issues and pull requests on GitHub: #540.
-
660is now enabled -- @webknjaz.Previously, due to restrictive
517hook reimports, our in-tree
build backend was losingnon-PEP 517 <517>hooks implemented in
newer versions ofsetuptoolsbut not the earlier ones. This is now
addressed by reexporting everything thatsetuptoolsexposes with a
wildcard.Related issues and pull requests on GitHub: #541.
-
The
setuptools-scmbuild dependency CI pin was updated to 8.1.0 —
this version fixes a date parsing incompatibility introduced by Git
2.45.0 (pypa/setuptools_scm#1039 <pypa/setuptools_scm/issues/1038>,pypa/setuptools_scm#1038 <pypa/setuptools_scm/pull/1039>) -- by @webknjaz.Related issues and pull requests on GitHub: #601.
Contributor-facing changes
-
The
changelogpage for the tagged release builds on Read The Docs
does not attempt showing the draft section anymore -- by @webknjaz.Related commits on GitHub:
852d259. -
Adjusted the publishing workflow automation to pre-configure Git
before attempting to create a tag when building a source
distribution -- by @webknjaz.Related commits on GitHub:
f07296f. -
The CI configuration for building the macOS platform-specific wheels
switched to usingcibuildwheel-- by @webknjaz.Related issues and pull requests on GitHub: #333.
-
The OS-level tox package was upgraded to v3.28.0 in the UBI9 CI
runtime -- by @Qalthos. -
Fixed spelling of "Connect" in the
Session.connect()docstring --
by @donnerhacke.Related issues and pull requests on GitHub: #474.
-
The Packit CI access to the internet has been restored -- by
@Qalthos.Related issues and pull requests on GitHub: #507.
-
Started building
manylinux_2_28base images for testing and
packaging in the CI/CD infrastructure -- by @Qalthos.Related issues and pull requests on GitHub: #533.
-
Switched back to using Cython's native plugin for measuring code
coverage -- by @webknjaz.Related issues and pull requests on GitHub: #538.
-
Added separate changelog fragment types for contributor-and
downstream-facing patches -- by @webknjaz.Their corresponding identifiers are
contribandpackaging
respectively. They are meant to be used for more accurate
classification, where one would resort to usingmiscotherwise.Related issues and pull requests on GitHub: #539.
-
660is now enabled -- @webknjaz.This effectively means that the ecosystem-native editable install
mode started working properly.Related issues and pull requests on GitHub: #541.
-
The duplicated jobs matrices for building manylinux wheels now
reside in a single GitHub Actions CI/CD reusable workflow
definition.-- @webknjaz
Related issues and pull requests on GitHub: #559.
-
The duplicated jobs matrices of the text jobs now reside in a single
GitHub Actions CI/CD reusable workflow definition.-- @webknjaz
Related issues and pull requests on GitHub: #560.
-
Fixed the location of release workflow in the
Release Guide
document -- by @Qalthos.Related issues and pull requests on GitHub: #565.
-
The
setuptools-scmbuild dependency CI pin was updated to 8.1.0 —
this version fixes a date parsing incompatibility introduced by Git
2.45.0 (pypa/setuptools_scm#1039 <pypa/setuptools_scm/issues/1038>,pypa/setuptools_scm#1038 <pypa/setuptools_scm/pull/1039>) -- by @webknjaz.Related issues and pull requests on GitHub: #601.
-
The CI/CD configuration was fixed to allow publishing to PyPI and
other targets disregarding the test stage outcome. This used to be a
bug in the workflow definition that has now been fixed.Related issues and pull requests on GitHub: #602.
v1.2.0rc3
📝 Release notes
📦 PyPI page: https://pypi.org/project/ansible-pylibssh/1.2.0rc3
🚧 v1.2.0rc3 is marked as a pre-release.
🔗 This release has been produced by the following workflow run: https://github.com/ansible/pylibssh/actions/runs/9420767746
v1.2.0rc3 (2024-06-07)
Bug fixes
-
no longer crashes when received EOF or when channel is not
explicitly closed -- by @pbrezina.Previously, crashed if
channel.recvwas called andlibssh
returnedSSH_EOFerror. It also crashed on some special occasions
where channel was not explicitly closed and the session object was
garbage-collected first.Related issues and pull requests on GitHub: #576.
Features
-
Started exposing the
SSH_OPTIONS_PUBLICKEY_ACCEPTED_TYPESand
SSH_OPTIONS_HOSTKEYSoptions publicly -- by @Qalthos.Related issues and pull requests on GitHub: #527.
-
The
request_exec()method was added to theChannelclass. It
exposes an interface for calling the respective low-level C-API of
the underlyinglibsshlibrary -- by @pbrezina.Additionally, the following calls to
libsshare now available in
the same class:request_exec(),send_eof(),
request_send_signal()andis_eofwhich is exposed as a
:pyproperty.Related issues and pull requests on GitHub: #576.
Improved documentation
-
Fixed spelling of "Connect" in the
Session.connect()docstring --
by @donnerhacke.Related issues and pull requests on GitHub: #474.
-
Added a tip to the
installation guide <Installing |project|>on
how to set compiler flags when installing from source -- @webknjaz.Related issues and pull requests on GitHub: #499.
-
Fixed the example of invoking remote commands by using
Channel.exec_command()in snippets -- by @pbrezina.Its previously showcased version wasn't functional.
Related issues and pull requests on GitHub: #576.
Packaging updates and notes for downstreams
-
A flaw in the logic for copying the project directory into a
temporary folder that led to infinite recursion whenTMPDIRwas
set to a project subdirectory path. This was happening in Fedora and
its downstream due to the use of
pyproject-rpm-macros.
It was only reproducible withpip wheeland was not affecting the
pyproject-buildusers.Related commits on GitHub:
89c9b3a. -
From now on, the published distribution package artifacts for the
new releases are signed via Sigstore -- by
@webknjaz.This is happening as a part of the GitHub Actions CI/CD workflow
automation and the signatures are uploaded to the corresponding
GitHub Release pages.Related commits on GitHub:
986988a. -
The platform-specific macOS wheels are now built using the Python
interpreter from https://python.org. They are tagged with
macosx_10_9-- by @webknjaz.Related issues and pull requests on GitHub: #333.
-
The
tomlbuild time dependency has been replaced withtomli--
by @webknjaz.The
tomlidistribution is only pulled in under Python versions
below 3.11. On 3.11 and higher, the standard library module
:pytomllibis now used instead.Related issues and pull requests on GitHub: #501.
-
Started using the built-in
setuptools-scmGit archive support
under Python 3.7 and higher -- @webknjaz.Related issues and pull requests on GitHub: #502.
-
Added support for Python 3.12 -- by @Qalthos.
It is now both tested in the CI and is advertised through the Trove
classifiers.Related issues and pull requests on GitHub: #532.
-
The
Cythonbuild time dependency now has the minimum version of
3.0 under Python 3.12 and higher -- by @webknjaz.The previous versions of
Cythonare still able to build the
project under older Python versions.Related issues and pull requests on GitHub: #540.
-
660is now enabled -- @webknjaz.Previously, due to restrictive
517hook reimports, our in-tree
build backend was losingnon-PEP 517 <517>hooks implemented in
newer versions ofsetuptoolsbut not the earlier ones. This is now
addressed by reexporting everything thatsetuptoolsexposes with a
wildcard.Related issues and pull requests on GitHub: #541.
-
The
setuptools-scmbuild dependency CI pin was updated to 8.1.0 —
this version fixes a date parsing incompatibility introduced by Git
2.45.0 (pypa/setuptools_scm#1039 <pypa/setuptools_scm/issues/1038>,pypa/setuptools_scm#1038 <pypa/setuptools_scm/pull/1039>) -- by @webknjaz.Related issues and pull requests on GitHub: #601.
Contributor-facing changes
-
The
changelogpage for the tagged release builds on Read The Docs
does not attempt showing the draft section anymore -- by @webknjaz.Related commits on GitHub:
852d259. -
Adjusted the publishing workflow automation to pre-configure Git
before attempting to create a tag when building a source
distribution -- by @webknjaz.Related commits on GitHub:
f07296f. -
The CI configuration for building the macOS platform-specific wheels
switched to usingcibuildwheel-- by @webknjaz.Related issues and pull requests on GitHub: #333.
-
The OS-level tox package was upgraded to v3.28.0 in the UBI9 CI
runtime -- by @Qalthos. -
Fixed spelling of "Connect" in the
Session.connect()docstring --
by @donnerhacke.Related issues and pull requests on GitHub: #474.
-
The Packit CI access to the internet has been restored -- by
@Qalthos.Related issues and pull requests on GitHub: #507.
-
Started building
manylinux_2_28base images for testing and
packaging in the CI/CD infrastructure -- by @Qalthos.Related issues and pull requests on GitHub: #533.
-
Switched back to using Cython's native plugin for measuring code
coverage -- by @webknjaz.Related issues and pull requests on GitHub: #538.
-
Added separate changelog fragment types for contributor-and
downstream-facing patches -- by @webknjaz.Their corresponding identifiers are
contribandpackaging
respectively. They are meant to be used for more accurate
classification, where one would resort to usingmiscotherwise.Related issues and pull requests on GitHub: #539.
-
660is now enabled -- @webknjaz.This effectively means that the ecosystem-native editable install
mode started working properly.Related issues and pull requests on GitHub: #541.
-
The duplicated jobs matrices for building manylinux wheels now
reside in a single GitHub Actions CI/CD reusable workflow
definition.-- @webknjaz
Related issues and pull requests on GitHub: #559.
-
The duplicated jobs matrices of the text jobs now reside in a single
GitHub Actions CI/CD reusable workflow definition.-- @webknjaz
Related issues and pull requests on GitHub: #560.
-
Fixed the location of release workflow in the
Release Guide
document -- by @Qalthos.Related issues and pull requests on GitHub: #565.
-
The
setuptools-scmbuild dependency CI pin was updated to 8.1.0 —
this version fixes a date parsing incompatibility introduced by Git
2.45.0 (pypa/setuptools_scm#1039 <pypa/setuptools_scm/issues/1038>,pypa/setuptools_scm#1038 <pypa/setuptools_scm/pull/1039>) -- by @webknjaz.Related issues and pull requests on GitHub: #601.
-
The CI/CD configuration was fixed to allow publishing to PyPI and
other targets disregarding the test stage outcome. This used to be a
bug in the workflow definition that has now been fixed.Related issues and pull requests on GitHub: #602.