From 14e784b30d70a668adcbea74aeeda1c6a95f305b Mon Sep 17 00:00:00 2001 From: James Williams Date: Tue, 14 Jul 2026 08:05:59 -0500 Subject: [PATCH 1/2] Release v3.2.0 --- changes/400.added | 2 -- changes/400.fixed | 5 ----- docs/admin/release_notes/version_3.2.md | 23 +++++++++++++++++++++++ mkdocs.yml | 1 + pyproject.toml | 4 ++-- 5 files changed, 26 insertions(+), 9 deletions(-) delete mode 100644 changes/400.added delete mode 100644 changes/400.fixed create mode 100644 docs/admin/release_notes/version_3.2.md diff --git a/changes/400.added b/changes/400.added deleted file mode 100644 index 6f9ec78a..00000000 --- a/changes/400.added +++ /dev/null @@ -1,2 +0,0 @@ -Added support for ISSU and NSSU non-disruptive OS upgrades on Juniper devices. -Added a `snapshot` option to `JunosDevice.install_os` that takes a post-upgrade `request system snapshot slice alternate` and waits for completion; disabled by default because Junos does not require a snapshot to complete an upgrade. diff --git a/changes/400.fixed b/changes/400.fixed deleted file mode 100644 index dad6f294..00000000 --- a/changes/400.fixed +++ /dev/null @@ -1,5 +0,0 @@ -Fixed `JunosDevice._get_free_space` raising `FileSystemNotFoundError` on virtual-chassis, multi-RE, and cluster devices; the smallest member's free space is now returned. -Fixed `JunosDevice.remote_file_copy` discarding the device's actual error message on a failed copy; the underlying error is now included in the raised `FileTransferError`. -Fixed `JunosDevice.remote_file_copy` failing with "filesystem is full" on small-flash platforms (e.g., EX switches); remote images are now downloaded directly to the destination path instead of being staged in the user's home directory on `/var`. -Fixed `JunosDevice` post-install version verification failing on platforms whose `show version` output has no "JUNOS Base OS Software Suite" line (e.g., EX switches on 15.1). -Fixed `JunosDevice.install_os` issuing a disruptive full-chassis reboot after an NSSU/ISSU upgrade, which already reboots each member in service during the install. diff --git a/docs/admin/release_notes/version_3.2.md b/docs/admin/release_notes/version_3.2.md new file mode 100644 index 00000000..1fe372cc --- /dev/null +++ b/docs/admin/release_notes/version_3.2.md @@ -0,0 +1,23 @@ +# v3.2 Release Notes + +This document describes all new features and changes in the release. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## Release Overview + +- Added support for ISSU and NSSU non-disruptive OS upgrades on Juniper devices, along with several fixes to Juniper `install_os` and `remote_file_copy` handling. + + +## [v3.2.0 (2026-07-14)](https://github.com/networktocode/pyntc/releases/tag/v3.2.0) + +### Added + +- [#400](https://github.com/networktocode/pyntc/issues/400) - Added support for ISSU and NSSU non-disruptive OS upgrades on Juniper devices. +- [#400](https://github.com/networktocode/pyntc/issues/400) - Added a `snapshot` option to `JunosDevice.install_os` that takes a post-upgrade `request system snapshot slice alternate` and waits for completion; disabled by default because Junos does not require a snapshot to complete an upgrade. + +### Fixed + +- [#400](https://github.com/networktocode/pyntc/issues/400) - Fixed `JunosDevice._get_free_space` raising `FileSystemNotFoundError` on virtual-chassis, multi-RE, and cluster devices; the smallest member's free space is now returned. +- [#400](https://github.com/networktocode/pyntc/issues/400) - Fixed `JunosDevice.remote_file_copy` discarding the device's actual error message on a failed copy; the underlying error is now included in the raised `FileTransferError`. +- [#400](https://github.com/networktocode/pyntc/issues/400) - Fixed `JunosDevice.remote_file_copy` failing with "filesystem is full" on small-flash platforms (e.g., EX switches); remote images are now downloaded directly to the destination path instead of being staged in the user's home directory on `/var`. +- [#400](https://github.com/networktocode/pyntc/issues/400) - Fixed `JunosDevice` post-install version verification failing on platforms whose `show version` output has no "JUNOS Base OS Software Suite" line (e.g., EX switches on 15.1). +- [#400](https://github.com/networktocode/pyntc/issues/400) - Fixed `JunosDevice.install_os` issuing a disruptive full-chassis reboot after an NSSU/ISSU upgrade, which already reboots each member in service during the install. diff --git a/mkdocs.yml b/mkdocs.yml index d80c5303..9d9a9e76 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -132,6 +132,7 @@ nav: - Uninstall: "admin/uninstall.md" - Release Notes: - "admin/release_notes/index.md" + - v3.2: "admin/release_notes/version_3.2.md" - v3.1: "admin/release_notes/version_3.1.md" - v3.0: "admin/release_notes/version_3.0.md" - v2.4: "admin/release_notes/version_2.4.md" diff --git a/pyproject.toml b/pyproject.toml index b5fad1b2..5b47bf56 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pyntc" -version = "3.1.1a0" +version = "3.2.0" description = "Python library focused on tasks related to device level and OS management." authors = ["Network to Code, LLC "] readme = "README.md" @@ -172,7 +172,7 @@ addopts = "-vv --doctest-modules -p no:warnings -p no:f5sdk_fixtures --ignore-gl [tool.towncrier] package = "pyntc" directory = "changes" -filename = "docs/admin/release_notes/version_3.1.md" +filename = "docs/admin/release_notes/version_3.2.md" template = "towncrier_template.j2" start_string = "" issue_format = "[#{issue}](https://github.com/networktocode/pyntc/issues/{issue})" From d408a91ba1c2d513d370cac6407b14ea0425eedd Mon Sep 17 00:00:00 2001 From: James Williams Date: Tue, 14 Jul 2026 08:20:38 -0500 Subject: [PATCH 2/2] Bump version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 5b47bf56..d970491e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pyntc" -version = "3.2.0" +version = "3.2.1a0" description = "Python library focused on tasks related to device level and OS management." authors = ["Network to Code, LLC "] readme = "README.md"