(2024-06-27)
Downloading files larger than 64kB over SCP no longer fails -- by :user:`Jakuje`.
Related issues and pull requests on GitHub: :issue:`621`.
(2024-06-27)
Downloading non-existent remote files via SCP no longer crashes the program -- by :user:`Jakuje`.
Related issues and pull requests on GitHub: :issue:`208`, :issue:`325`, :issue:`620`.
The RPM specification now opts out of demanding that the compiled C-extensions have a Build ID present under EL -- by :user:`webknjaz`.
Related commits on GitHub: :commit:`9053c1008bb169c8e362a92782d46c7c0d3b1c06`, :commit:`aaa12159b5cdda763a83dcf4ee920510cad83463`.
The RPM specification has been updated to pre-build the vendored copy of
setuptools-scm
with the isolation disabled, addressing the build problem in EL 9 -- by :user:`webknjaz`.Related commits on GitHub: :commit:`dd85ddefafde8f22ab0239add18a1db9ef789b50`.
The RPM definition now runs import self-checks when it is built for Fedora Linux -- by :user:`webknjaz`.
Related issues and pull requests on GitHub: :issue:`615`.
RPM builds are now also tested against UBI 9.4 in CI -- by :user:`webknjaz`.
Related commits on GitHub: :commit:`e9ad0a7d456c99cc848b30b48569235366273672`.
(2024-06-09)
Substituting the
gh
role in source distribution long description has been simplify to stop attempting to make URLs to arbitrary GitHub addresses -- by :user:`webknjaz`.Related commits on GitHub: :commit:`f4ad1b76`.
The in-tree PEP 517 build backend's regular expression has been hotfixed to replace the "project" substitution correctly -- by :user:`webknjaz`.
Previously, it was generating a lot of noise instead of a nice description. But not anymore.
Related issues and pull requests on GitHub: :issue:`92752210`.
(2024-06-08)
The automation now replaces the "project" RST substitution in the long description and GitHub Discussions/Releases -- by :user:`webknjaz`.
Related commits on GitHub: :commit:`13374a71`.
The CI/CD automation has been fixed to include changelog updates into source distribution tarballs -- by :user:`webknjaz`.
Related commits on GitHub: :commit:`627f718d`.
(2024-06-07)
|project| no longer crashes when received EOF or when channel is not explicitly closed -- by :user:`pbrezina`.
Previously, |project| 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: :issue:`576`.
Started exposing the
SSH_OPTIONS_PUBLICKEY_ACCEPTED_TYPES
andSSH_OPTIONS_HOSTKEYS
options publicly -- by :user:`Qalthos`.Related issues and pull requests on GitHub: :issue:`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 :user:`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 :py:class:`property`.Related issues and pull requests on GitHub: :issue:`576`.
Fixed spelling of "Connect" in the
Session.connect()
docstring -- by :user:`donnerhacke`.Related issues and pull requests on GitHub: :issue:`474`.
Added a tip to the :ref:`installation guide <Installing |project|>` on how to set compiler flags when installing from source -- :user:`webknjaz`.
Related issues and pull requests on GitHub: :issue:`499`.
Fixed the example of invoking remote commands by using
Channel.exec_command()
in snippets -- by :user:`pbrezina`.Its previously showcased version wasn't functional.
Related issues and pull requests on GitHub: :issue:`576`.
A flaw in the logic for copying the project directory into a temporary folder that led to infinite recursion when :envvar:`TMPDIR` 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 with
pip wheel
and was not affecting thepyproject-build
users.-- by :user:`hroncok` and :user:`webknjaz`
Related commits on GitHub: :commit:`89c9b3a`.
From now on, the published distribution package artifacts for the new releases are signed via Sigstore -- by :user:`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: :commit:`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 :user:`webknjaz`.Related issues and pull requests on GitHub: :issue:`333`.
The
toml
build time dependency has been replaced withtomli
-- by :user:`webknjaz`.The
tomli
distribution is only pulled in under Python versions below 3.11. On 3.11 and higher, the standard library module :py:mod:`tomllib` is now used instead.Related issues and pull requests on GitHub: :issue:`501`.
Started using the built-in
setuptools-scm
Git archive support under Python 3.7 and higher -- :user:`webknjaz`.Related issues and pull requests on GitHub: :issue:`502`.
Added support for Python 3.12 -- by :user:`Qalthos`.
It is now both tested in the CI and is advertised through the Trove classifiers.
Related issues and pull requests on GitHub: :issue:`532`.
The
Cython
build time dependency now has the minimum version of 3.0 under Python 3.12 and higher -- by :user:`webknjaz`.The previous versions of
Cython
are still able to build the project under older Python versions.Related issues and pull requests on GitHub: :issue:`540`.
PEP 660 is now enabled -- :user:`webknjaz`.
Previously, due to restrictive PEP 517 hook reimports, our in-tree build backend was losing :pep:`non-PEP 517 <517>` hooks implemented in newer versions of
setuptools
but not the earlier ones. This is now addressed by reexporting everything thatsetuptools
exposes with a wildcard.Related issues and pull requests on GitHub: :issue:`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 (:gh:`pypa/setuptools_scm#1038 <pypa/setuptools_scm/issues/1038>`, :gh:`pypa/setuptools_scm#1039 <pypa/setuptools_scm/pull/1039>`) -- by :user:`webknjaz`.Related issues and pull requests on GitHub: :issue:`601`.
The :doc:`changelog` page for the tagged release builds on Read The Docs does not attempt showing the draft section anymore -- by :user:`webknjaz`.
Related commits on GitHub: :commit:`852d259`.
Adjusted the publishing workflow automation to pre-configure Git before attempting to create a tag when building a source distribution -- by :user:`webknjaz`.
Related commits on GitHub: :commit:`f07296f`.
The CI configuration for building the macOS platform-specific wheels switched to using
cibuildwheel
-- by :user:`webknjaz`.Related issues and pull requests on GitHub: :issue:`333`.
The OS-level tox package was upgraded to v3.28.0 in the UBI9 CI runtime -- by :user:`Qalthos`.
Related issues and pull requests on GitHub: :issue:`461`, :issue:`473`.
Fixed spelling of "Connect" in the
Session.connect()
docstring -- by :user:`donnerhacke`.Related issues and pull requests on GitHub: :issue:`474`.
The Packit CI access to the internet has been restored -- by :user:`Qalthos`.
Related issues and pull requests on GitHub: :issue:`507`.
Started building
manylinux_2_28
base images for testing and packaging in the CI/CD infrastructure -- by :user:`Qalthos`.Related issues and pull requests on GitHub: :issue:`533`.
Switched back to using Cython's native plugin for measuring code coverage -- by :user:`webknjaz`.
Related issues and pull requests on GitHub: :issue:`538`.
Added separate changelog fragment types for contributor- and downstream-facing patches -- by :user:`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: :issue:`539`.
PEP 660 is now enabled -- :user:`webknjaz`.
This effectively means that the ecosystem-native editable install mode started working properly.
Related issues and pull requests on GitHub: :issue:`541`.
The duplicated jobs matrices for building manylinux wheels now reside in a single GitHub Actions CI/CD reusable workflow definition.
Related issues and pull requests on GitHub: :issue:`559`.
The duplicated jobs matrices of the text jobs now reside in a single GitHub Actions CI/CD reusable workflow definition.
Related issues and pull requests on GitHub: :issue:`560`.
Fixed the location of release workflow in the :ref:`Release Guide` document -- by :user:`Qalthos`.
Related issues and pull requests on GitHub: :issue:`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 (:gh:`pypa/setuptools_scm#1039 <pypa/setuptools_scm/issues/1038>`, :gh:`pypa/setuptools_scm#1038 <pypa/setuptools_scm/pull/1039>`) -- by :user:`webknjaz`.Related issues and pull requests on GitHub: :issue:`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.
-- by :user:`pbrezina` and :user:`webknjaz`
Related issues and pull requests on GitHub: :issue:`602`.
- Started building
manylinux
wheels withlibssh
v0.9.6 -- by :user:`webknjaz` (:issue:`441`)
- The project stopped being tested under Ubuntu 18.04 VM since GitHub is sunetting their CI images -- by :user:`webknjaz` (:issue:`379`)
- Added a :ref:`Release Guide` for making new releases -- by :user:`webknjaz` (:issue:`413`)
Started testing RPM packaging spec with Packit service -- by :user:`webknjaz` and :user:`TomasTomecek` (:issue:`227`, :issue:`246`)
Removed the remains of Python 2 compatiblity code from the in-tree PEP 517 build backend -- by :user:`webknjaz` (:issue:`377`)
Fixed removing
expandvars
frompyproject.toml
in an RPM spec -- by :user:`webknjaz`Before this patch, the
sed
invocation removed entirebuild-system.requires
entry from there, in rare cases but this won't be happening anymore. (:issue:`378`)Declared official support of CPython 3.11 -- by :user:`Qalthos` (:issue:`396`)
Started shipping sdists built with Cython v0.29.32 -- by :user:`webknjaz` (:issue:`399`)
Started building RPMs with Cython v0.29.32 -- by :user:`webknjaz` (:issue:`402`)
Added an SSH connection re-try helper to tests -- by :user:`webknjaz` (:issue:`405`)
- Added
password_prompt
argument toconnect()
to override the default prompt of "password:" when using keyboard-interactive authentication -- by :user:`Qalthos` (:issue:`331`) - Added support for
:fd:
socket option -- by :user:`sabedevops` (:issue:`343`)
- Reworked build scripts to fix manylinux container generation -- by :user:`Qalthos` (:issue:`321`)
- Reenable CI building on s390x -- by :user:`Qalthos` (:issue:`322`)
- Improved
channel.exec_command
to always use a newly createdssh_channel
to avoid segfaults on repeated calls -- by :user:`Qalthos` (:issue:`280`) - Fixed password prompt match in
pylibsshext.session.Session.authenticate_interactive()
to strip whitespace, check that the prompt only ends withpassword:
, and added a little extra logging -- by :user:`dalrrard` (:issue:`311`)
- Dropped support for Python 2.7 and 3.5, and marked support for 3.10 -- by :user:`Qalthos` (:issue:`314`)
- Changed
sftp.sftp_get
to write files as bytes rather than assuming files are valid UTF8 -- by :user:`Qalthos` (:issue:`216`)
- Started building platform-specific
manylinux2010
,manylinux2014
andmanylinux_2_24
wheels for AARCH64, ppc64le and s390x architectures as introduced by PEP 599 and PEP 600 -- :user:`webknjaz` (:issue:`187`) - Added gssapi-with-mic support for authentication -- by :user:`Qalthos` (:issue:`195`)
- Correct a link to the pip upgrade doc in our installation guide -- :user:`webknjaz` (:issue:`225`)
- Started building AARCH64 base images with Buildah+Podman in GitHub Actions CI/CD -- :user:`webknjaz` (:issue:`181`)
- Switched using pep517 lib to build CLI -- :user:`webknjaz` (:issue:`199`)
- Restructured the in-tree PEP 517 build backend into multiple
submodules moving the entry-point to
pep517_backend.hooks
that also facilitates extraction of user-definedconfig_settings
passed by the end-user (packager) via thebuild
CLI command -- :user:`webknjaz` (:issue:`200`) - Updated manylinux build script to build libssh with GSSAPI enabled -- :user:`Qalthos` (:issue:`203`)
- Added an initial RPM spec continuously tested in the CI -- :user:`webknjaz` (:issue:`205`)
- Added additional details when SFTP write errors are raised -- by :user:`Qalthos` (:issue:`216`)
- Made
auditwheel
only keep one platform tag in the produced wheel names -- :user:`webknjaz` (:issue:`224`) - Improved manylinux build scripts to expect dual-aliased manylinux tags
produced for versions 1/2010/2014 along with their PEP 600
counterparts after
auditwheel repair
-- :user:`webknjaz` (:issue:`226`) - Enabled self-test checks in the RPM spec for Fedora -- :user:`webknjaz` (:issue:`228`)
- Enabled self-test checks in the RPM spec for CentOS -- :user:`webknjaz` (:issue:`235`)
- Enabled self-test checks in the RPM spec for RHEL -- :user:`webknjaz` (:issue:`236`)
- Added
NAME = "VALUE"
to flake8-eradicate whitelist to work around test false positive introduced in flake8-eradicate 1.1.0 -- by :user:`Qalthos` (:issue:`258`) - Stopped testing
pylibssh
binary wheels under Ubuntu 16.04 in GitHub Actions CI/CD because it is EOL now -- :user:`webknjaz` (:issue:`260`) - Fixed failing fast on problems with
rpmbuild
in GitHub Actions CI/CD under Fedora -- :user:`webknjaz` (:issue:`261`) - Declare
python3-pip
a build dependency under Fedora fixing the RPM creation job in GitHub Actions CI/CD under Fedora -- :user:`webknjaz` (:issue:`262`) - Replaced git protocols in pre-commit config with https now that GitHub has turned off git protocol access -- :user:`Qalthos` (:issue:`266`)
- Fixed
undefined symbol: ssh_disconnect
and related issues when building on certain distros -- by :user:`Qalthos` (:issue:`63`, :issue:`153`, :issue:`158`) - Fixed
"Negative size passed to PyBytes_FromStringAndSize"
whenssh_channel_read_nonblocking
fails -- by :user:`Qalthos` (:issue:`168`)
- Added SCP support -- by :user:`Qalthos` (:issue:`151`, :issue:`157`)
- Added the initial user guide to docs -- by :user:`ganeshrn` and :user:`webknjaz` (:issue:`141`)
- Added the initial testing guide to docs -- by :user:`ganeshrn` and :user:`webknjaz` (:issue:`142`)
- Added the initial installation guide to docs -- by :user:`ganeshrn` and :user:`webknjaz` (:issue:`145`)
- Migrated the "draft changelog" plugin to the external sphinxcontrib-towncrier implementation -- by :user:`webknjaz` (:issue:`123`)
- Declared official support of CPython 3.9 -- by :user:`webknjaz` (:issue:`152`)
- Enhanced sftp error handling code to match with libssh error messages -- by :user:`ganeshrn` (:issue:`27`)
- Fixed session timeout issue, the data type
of timeout is expected by
ssh_options_set
is of typelong int
-- by :user:`ganeshrn` (:issue:`46`) - Fixed sftp file get issue. On py2
The file
write()
method returnsNone
on py2 if bytes are written to file successfully, whereas on py3 it returns total number of bytes written to file. Added a fix to check for the number of bytes written only in the case whenwrite()
does not returnNone
-- by :user:`ganeshrn` (:issue:`58`) - Fixed double close issue, added logic to free the channel allocated memory within :ref:`__dealloc__() <finalization_method>` -- by :user:`ganeshrn` (:issue:`113`)
- Added cython extension for libssh client API's initial commit -- by :user:`ganeshrn` (:issue:`1`)
- Added proxycommand support for session and
update session exeception to
LibsshSessionException
-- by :user:`ganeshrn` (:issue:`10`) - Added support for host key checking with authentication -- by :user:`ganeshrn` (:issue:`15`)
- Changed pylibssh dir to pylibsshext to avoid ns collision -- by :user:`ganeshrn` (:issue:`25`)
- Added sftp get functionality to fetch file from remote host -- by :user:`amolkahat` (:issue:`26`)
- Added support to receive bulk response for remote shell -- by :user:`ganeshrn` (:issue:`40`)
- Added the support for keyboard-authentication method -- by :user:`Qalthos` (:issue:`105`)
- Updated the package name to
ansible-pylibssh
to reflect that the library only intends to implement a set of APIs that are necessary to implement an Ansible connection plugin -- by :user:`ganeshrn` (:issue:`1`)
- Documented how to compose Towncrier news fragments -- by :user:`webknjaz` (:issue:`124`)
- Documented how to contribute to the docs -- by :user:`webknjaz` (:issue:`126`)
Updated requirements file to replace
requirements.txt
withrequirements-build.in
-- by :user:`akasurde` (:issue:`14`)Made tox's main env pick up the in-tree PEP 517 build backend -- by :user:`webknjaz` (:issue:`72`)
Refactored sphinx RST parsing in towncrier extension -- by :user:`ewjoachim` (:issue:`119`)
Hotfixed the directive in the in-tree sphinx extension to always trigger the changelog document rebuilds so that it'd pick up any changelog fragments from disk -- by :user:`webknjaz` (:issue:`120`)
Turned the Townrier fragments README doc title into subtitle -- by :user:`webknjaz`
The effect is that it doesn't show up in the side bar as an individual item anymore. (:issue:`125`)
Integrated Markdown support into docs via the MyST parser -- by :user:`webknjaz` (:issue:`126`)
Switched the builder on Read the Docs to dirhtml so it now generates a dir-based URL layout for the website -- by :user:`webknjaz` (:issue:`127`)
Enabled sphinx.ext.autosectionlabel Sphinx extension to automatically generate reference targets for document sections that can be linked against using
:ref:
-- by :user:`webknjaz` (:issue:`128`)