版本发布 8
## 📝 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. -----
## 📝 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. *Related commits on GitHub:* <https://github.com/ansible/pylibssh/commit/9053c1008bb169c8e362a92782d46c7c0d3b1c06>, <https://github.com/ansible/pylibssh/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 @webknjaz. *Related commits on GitHub:* <https://github.com/ansible/pylibssh/commit/dd85ddefafde8f22ab0239add18a1db9ef789b50>. - 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:* <https://github.com/ansible/pylibssh/commit/e9ad0a7d456c99cc848b30b48569235366273672>. -----
## 📝 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 `gh` role in source distribution long description has been simplify to stop attempting to make URLs to arbitrary GitHub addresses -- by @webknjaz. *Related commits on GitHub:* <https://github.com/ansible/pylibssh/commit/f4ad1b76>. - The in-tree `517` build 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:* \#92752210. -----
## 📝 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:* <https://github.com/ansible/pylibssh/commit/13374a71>. - The CI/CD automation has been fixed to include changelog updates into source distribution tarballs -- by @webknjaz. *Related commits on GitHub:* <https://github.com/ansible/pylibssh/commit/627f718d>. -----
## 📝 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 :py`property`. *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](https://src.fedoraproject.org/rpms/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:* <https://github.com/ansible/pylibssh/commit/89c9b3a>. - From now on, the published distribution package artifacts for the new releases are signed via [Sigstore](https://sigstore.dev) -- 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:* <https://github.com/ansible/pylibssh/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 @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 :py`tomllib` 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:* <https://github.com/ansible/pylibssh/commit/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:* <https://github.com/ansible/pylibssh/commit/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. -----
## 📝 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.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 :py`property`. *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](https://src.fedoraproject.org/rpms/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:* <https://github.com/ansible/pylibssh/commit/89c9b3a>. - From now on, the published distribution package artifacts for the new releases are signed via [Sigstore](https://sigstore.dev) -- 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:* <https://github.com/ansible/pylibssh/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 @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 :py`tomllib` 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:* <https://github.com/ansible/pylibssh/commit/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:* <https://github.com/ansible/pylibssh/commit/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. -----
## 📝 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.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 :py`property`. *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](https://src.fedoraproject.org/rpms/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:* <https://github.com/ansible/pylibssh/commit/89c9b3a>. - From now on, the published distribution package artifacts for the new releases are signed via [Sigstore](https://sigstore.dev) -- 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:* <https://github.com/ansible/pylibssh/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 @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 :py`tomllib` 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:* <https://github.com/ansible/pylibssh/commit/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:* <https://github.com/ansible/pylibssh/commit/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. -----
## 📝 Release notes 📦 PyPI page: https://pypi.org/project/ansible-pylibssh/1.2.0rc2 🔗 This release has been produced by the following workflow run: https://github.com/ansible/pylibssh/actions/runs/9419572873 # v1.2.0rc2 (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 :py`property`. *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](https://src.fedoraproject.org/rpms/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:* <https://github.com/ansible/pylibssh/commit/89c9b3a>. - From now on, the published distribution package artifacts for the new releases are signed via [Sigstore](https://sigstore.dev) -- 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:* <https://github.com/ansible/pylibssh/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 @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 :py`tomllib` 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:* <https://github.com/ansible/pylibssh/commit/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:* <https://github.com/ansible/pylibssh/commit/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. -----