Skip to content

v1.2.0

Compare
Choose a tag to compare
@github-actions github-actions released this 07 Jun 21:31
· 129 commits to devel since this release

📝 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 and libssh
    returned SSH_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 the Channel class. It
    exposes an interface for calling the respective low-level C-API of
    the underlying libssh library -- by @pbrezina.

    Additionally, the following calls to libssh are now available in
    the same class: request_exec(), send_eof(),
    request_send_signal() and is_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 when 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 the
    pyproject-build users.

    -- by @hroncok and @webknjaz

    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 with tomli --
    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 losing non-PEP 517 <517> hooks implemented in
    newer versions of setuptools but not the earlier ones. This is now
    addressed by reexporting everything that setuptools 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 using cibuildwheel -- 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.

    Related issues and pull requests on GitHub: #461, #473.

  • 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 and packaging
    respectively. They are meant to be used for more accurate
    classification, where one would resort to using misc 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.

    -- by @pbrezina and @webknjaz

    Related issues and pull requests on GitHub: #602.