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.recv
was called andlibssh
returnedSSH_EOF
error. 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_TYPES
and
SSH_OPTIONS_HOSTKEYS
options publicly -- by @Qalthos.Related issues and pull requests on GitHub: #527.
-
The
request_exec()
method was added to theChannel
class. It
exposes an interface for calling the respective low-level C-API of
the underlyinglibssh
library -- by @pbrezina.Additionally, the following calls to
libssh
are now available in
the same class:request_exec()
,send_eof()
,
request_send_signal()
andis_eof
which 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 whenTMPDIR
was
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 wheel
and was not affecting the
pyproject-build
users.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
toml
build time dependency has been replaced withtomli
--
by @webknjaz.The
tomli
distribution is only pulled in under Python versions
below 3.11. On 3.11 and higher, the standard library module
:pytomllib
is now used instead.Related issues and pull requests on GitHub: #501.
-
Started using the built-in
setuptools-scm
Git 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
Cython
build time dependency now has the minimum version of
3.0 under Python 3.12 and higher -- by @webknjaz.The previous versions of
Cython
are still able to build the
project under older Python versions.Related issues and pull requests on GitHub: #540.
-
660
is now enabled -- @webknjaz.Previously, due to restrictive
517
hook reimports, our in-tree
build backend was losingnon-PEP 517 <517>
hooks implemented in
newer versions ofsetuptools
but not the earlier ones. This is now
addressed by reexporting everything thatsetuptools
exposes with a
wildcard.Related issues and pull requests on GitHub: #541.
-
The
setuptools-scm
build 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
changelog
page 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_28
base 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
contrib
andpackaging
respectively. They are meant to be used for more accurate
classification, where one would resort to usingmisc
otherwise.Related issues and pull requests on GitHub: #539.
-
660
is 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-scm
build 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.