Skip to content

Commit 917283a

Browse files
Release v2.3.0
1 parent c4a959f commit 917283a

10 files changed

Lines changed: 50 additions & 25 deletions

File tree

changes/364.removed

Lines changed: 0 additions & 2 deletions
This file was deleted.

changes/365.added

Lines changed: 0 additions & 2 deletions
This file was deleted.

changes/366.added

Lines changed: 0 additions & 1 deletion
This file was deleted.

changes/366.fixed

Lines changed: 0 additions & 3 deletions
This file was deleted.

changes/367.added

Lines changed: 0 additions & 2 deletions
This file was deleted.

changes/368.changed

Lines changed: 0 additions & 8 deletions
This file was deleted.

changes/368.housekeeping

Lines changed: 0 additions & 3 deletions
This file was deleted.
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
2+
# v2.3 Release Notes
3+
4+
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).
5+
6+
## Release Overview
7+
8+
- Added the ability to for remote file copy on Cisco NXOS, Cisco ASA, and Arista EOS operating systems.
9+
10+
## [v2.3.0 (2026-04-14)](https://github.com/networktocode/pyntc/releases/tag/v2.3.0)
11+
12+
### Added
13+
14+
- [#365](https://github.com/networktocode/pyntc/issues/365) - Added the remote file copy feature to Arista EOS devices.
15+
- [#365](https://github.com/networktocode/pyntc/issues/365) - Added unittests for remote file copy on Arista EOS devices.
16+
- [#366](https://github.com/networktocode/pyntc/issues/366) - Added ``remote_file_copy``, ``check_file_exists``, ``get_remote_checksum``, and ``verify_file`` support for ``ASADevice`` (FTP, TFTP, SCP, HTTP, HTTPS).
17+
- [#367](https://github.com/networktocode/pyntc/issues/367) - Added remote file copy feature to Cisco NXOS devices.
18+
- [#367](https://github.com/networktocode/pyntc/issues/367) - Added unittests for remote file copy for Cisco NXOS devices.
19+
20+
### Changed
21+
22+
- [#368](https://github.com/networktocode/pyntc/issues/368) - Improved EOS remote file copy to validate scheme and query strings before connecting, use `clean_url` to prevent credential leakage, and simplify credential routing.
23+
- [#368](https://github.com/networktocode/pyntc/issues/368) - Changed copy command builders to include the source file path in the URL and use `flash:` as the destination, matching EOS CLI conventions.
24+
- [#368](https://github.com/networktocode/pyntc/issues/368) - Fixed `_uptime_to_string` to use integer division, preventing `ValueError` on format specifiers.
25+
- [#368](https://github.com/networktocode/pyntc/issues/368) - Fixed `check_file_exists` and `get_remote_checksum` to open the SSH connection before use, preventing `AttributeError` when called standalone.
26+
- [#368](https://github.com/networktocode/pyntc/issues/368) - Fixed password-prompt handling in `remote_file_copy` to wait for the transfer to complete before proceeding to verification.
27+
- [#368](https://github.com/networktocode/pyntc/issues/368) - Simplified checksum parsing in `get_remote_checksum` to use string splitting instead of regex.
28+
- [#368](https://github.com/networktocode/pyntc/issues/368) - Changed `verify_file` to return early when file does not exist and use case-insensitive checksum comparison.
29+
- [#368](https://github.com/networktocode/pyntc/issues/368) - Removed `include_username` parameter from `remote_file_copy` in favor of automatic credential routing based on scheme and username presence.
30+
31+
### Removed
32+
33+
- [#364](https://github.com/networktocode/pyntc/issues/364) - Removed log.init from iosxewlc device.
34+
- [#364](https://github.com/networktocode/pyntc/issues/364) - Removed warning filter for logging.
35+
36+
### Fixed
37+
38+
- [#366](https://github.com/networktocode/pyntc/issues/366) - Fixed ``ASADevice._get_file_system`` to use ``re.search`` instead of ``re.match`` so the filesystem label is correctly parsed regardless of leading whitespace in ``dir`` output.
39+
- [#366](https://github.com/networktocode/pyntc/issues/366) - Fixed ``ASADevice._send_command`` to anchor the ``%`` error pattern to the start of a line (``^% ``) to prevent false-positive ``CommandError`` raises during file copy operations.
40+
- [#366](https://github.com/networktocode/pyntc/issues/366) - Fixed ``ASADevice.active_redundancy_states`` to include ``"disabled"`` so standalone (non-failover) units are correctly treated as active.
41+
42+
### Housekeeping
43+
44+
- [#368](https://github.com/networktocode/pyntc/issues/368) - Converted EOS remote file copy tests from hypothesis/pytest standalone functions to unittest TestCase with `self.assertRaises` and `subTest` for consistency with the rest of the codebase.
45+
- [#368](https://github.com/networktocode/pyntc/issues/368) - Removed duplicate test class `TestRemoteFileCopyCommandExecution` and consolidated into `TestRemoteFileCopy`.
46+
- [#368](https://github.com/networktocode/pyntc/issues/368) - Added integration tests for EOS device connectivity and remote file copy across FTP, TFTP, SCP, HTTP, HTTPS, and SFTP protocols.

poetry.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "pyntc"
3-
version = "2.2.2a0"
3+
version = "2.3.0"
44
description = "Python library focused on tasks related to device level and OS management."
55
authors = ["Network to Code, LLC <opensource@networktocode.com>"]
66
readme = "README.md"
@@ -172,7 +172,7 @@ addopts = "-vv --doctest-modules -p no:warnings --ignore-glob='*mock*'"
172172
[tool.towncrier]
173173
package = "pyntc"
174174
directory = "changes"
175-
filename = "docs/admin/release_notes/version_2.2.md"
175+
filename = "docs/admin/release_notes/version_2.3.md"
176176
template = "towncrier_template.j2"
177177
start_string = "<!-- towncrier release notes start -->"
178178
issue_format = "[#{issue}](https://github.com/networktocode/pyntc/issues/{issue})"

0 commit comments

Comments
 (0)