Files
napalm-qnap-qts/CHANGELOG.md
T
Christian Manivong dd785da94f
driver / standard (pull_request) Successful in 15s
driver / lint (pull_request) Successful in 11s
driver / types (pull_request) Successful in 54s
driver / test (3.10) (pull_request) Successful in 59s
driver / test (3.11) (pull_request) Successful in 55s
driver / test (3.12) (pull_request) Successful in 57s
driver / lowest (pull_request) Successful in 30s
driver / test (3.13) (pull_request) Successful in 49s
driver / build (pull_request) Successful in 25s
driver / security (pull_request) Successful in 57s
CI / driver (pull_request) Successful in 3m6s
driver / publish (pull_request) Skipped
chore: adopt the NAPALM driver standard
- CI moves to .gitea/workflows/ci.yml and calls the shared driver workflow
  of NAPALM/driver-standard; napalm-device-types and napalm-linux come from
  git until napalm-linux 0.15.0 is on PyPI.
- requires-python >=3.10 (napalm-device-types needs it), SPDX license
  string, setuptools>=77, LICENSE file, py.typed, Issues and Changelog
  links.
- Dependencies: napalm-device-types>=4.22.0, napalm-linux>=0.15.0; the
  floors napalm>=4.0, netmiko>=4.0.0 and paramiko>=5.0.0 stay and pass
  the tests at exactly those versions. The dev extra gets floors and
  drops black (ruff formats).
- mypy strict for the whole package, no exempt module. install_package
  and uninstall_package keep napalm-device-types' PackagesMixin
  signatures, which LinuxDriver's differ from: type: ignore[override]
  on those two lines, with the reason above them.
- Coverage floor 76 % (measured 76.19 %); the quality baseline is empty
  apart from it.
2026-10-23 12:09:52 +02:00

69 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
All notable changes to this project are documented here.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Changed
- The driver follows the NAPALM driver standard
(https://git.netork.io/NAPALM/driver-standard): CI on Gitea runs ruff, mypy, the
tests on Python 3.10–3.13 and at the lowest declared versions, bandit, pip-audit and
a build check, and a release tag publishes to PyPI. The package now ships `py.typed`
and a LICENSE file. It needs napalm-device-types 4.22.0 and napalm-linux 0.15.0.
**Python 3.9 is no longer supported**; napalm-device-types never ran on it.
## [0.4.0] – 2026-10-17
### Changed
- Requires napalm-linux 0.8.0, whose fixes are napalm-device-types' templates.
`configure_snmp_agent`, `configure_package_proxy` and `ensure_package` are switched
off (`None`): QTS has no apt, dnf or opkg, and its SNMP agent is set in its own UI.
Before, the inherited SNMP and apt-proxy fixes were offered and failed.
### Fixed
- `get_device_warnings` no longer logs a TypeError on every poll: the inherited one
asked for updates, which QTS cannot list (#6).
## [0.3.0] – 2026-10-08
### Removed
- The `_docker_bin()` override: napalm-linux 0.3.0 drops the Docker CLI
methods it served. `_container_engine_binary("docker")` returns Container
Station's path itself.
### Changed
- Requires napalm-linux >= 0.3.0.
## [0.2.0] – 2026-10-07
### Added
- `_container_engine_binary` returns Container Station's docker path, so the
container engine connection from napalm-device-types 2.6.0
(`open_container_engine("docker")`) reaches it although it is not on PATH.
Callers pass arguments only and never see the path (NetOrk/netork#765).
### Changed
- Requires napalm-device-types >= 2.6.0 and napalm-linux >= 0.2.0.
## [0.1.0]
### Added
- Initial driver scaffold: `QnapQtsDriver(StorageDriver, LinuxDriver)` with
discovery fingerprints (SNMP enterprise OID 1.3.6.1.4.1.24681, HTTP, port
specs) and the `qnap_qts` entry point.
- Explicit `DEVICE_CLASS = "storage"` so netOrk does not classify a QNAP as a
plain Linux host and hide its Storage tab.
- QTS major-version detection, Container Station docker path discovery and
Virtualization Station virsh discovery, all resolved once per session in
`open()`.
- MRO collision resolution for `get_services`, which `StorageDriver` would
otherwise shadow.
- `tools/harvest.sh` and `tools/sanitize.py` for capturing and anonymising
command output from real hardware.
### Pending
- Storage, QPKG and VM parsers — blocked on the fixture harvest.