driver / lint (pull_request) Successful in 18s
driver / standard (pull_request) Successful in 20s
driver / test (3.10) (pull_request) Failing after 6s
driver / types (pull_request) Successful in 1m4s
driver / test (3.12) (pull_request) Successful in 1m8s
driver / test (3.11) (pull_request) Successful in 1m13s
driver / test (3.13) (pull_request) Successful in 1m1s
driver / lowest (pull_request) Successful in 43s
driver / build (pull_request) Successful in 29s
driver / security (pull_request) Successful in 1m8s
CI / driver (pull_request) Failing after 2m41s
driver / publish (pull_request) Skipped
HostShutdownMixin.shutdown_host(), on DeviceTypeDriver: a device shuts itself down cleanly through its own means; declared, so hasattr says whether a driver can. There is no forced variant. VmStopRequestMixin.begin_stop_vm(name): ask for a VM's clean shutdown and return at once, for a caller that waits on a timer and reads get_vm_status instead of blocking in stop_vm. No role demands it. For netOrk's graph workflows, which switch a hypervisor off when CI has nothing for it (NetOrk/netork#1636).
49 lines
2.3 KiB
Markdown
49 lines
2.3 KiB
Markdown
# Changelog
|
||
|
||
All notable changes to napalm-device-types. The format follows
|
||
[Keep a Changelog](https://keepachangelog.com/), versions follow
|
||
[Semantic Versioning](https://semver.org/). Versions up to 4.21.0 were not
|
||
recorded here; their history is the git log.
|
||
|
||
## [Unreleased]
|
||
|
||
### Added
|
||
- `HostShutdownMixin.shutdown_host()`, on `DeviceTypeDriver`: shut the device itself
|
||
down cleanly through its own means; declared, so `hasattr` says whether a driver
|
||
can. No forced variant (NetOrk/netork#1636).
|
||
- `VmStopRequestMixin.begin_stop_vm(name)`: ask for a VM's clean shutdown and return
|
||
at once, for callers that wait on a timer instead of in `stop_vm`. No role demands
|
||
it (NetOrk/netork#1636).
|
||
|
||
## [4.22.0] - 2026-10-23
|
||
|
||
### Added
|
||
- `AptProxyMixin` (`napalm_device_types.apt_proxy`): apt's proxy on a
|
||
Debian-family host, for a driver to mix in (NetOrk/netork#1397).
|
||
- `get_package_proxy()` is the proxy apt really fetches through, as
|
||
`apt-config dump` says, and no longer the content of one file. A proxy the
|
||
Debian or Ubuntu installer set elsewhere wins over `00proxy`, and was missed.
|
||
- `get_package_proxy_report()` adds where it is set: every line of apt's
|
||
configuration that sets it, in the order apt reads them, the per-host
|
||
proxies, and the sources fetched over http and over https.
|
||
- `check_package_proxy(url, expect)` fetches a page from the host with apt's
|
||
own downloader, past any proxy, and says whether the host reached it and
|
||
whether the page says what you expected.
|
||
- `configure_package_proxy(url)` writes the proxy, comments out every other
|
||
line that sets a different one, reads the result back and fetches one
|
||
source through the proxy. It fails when apt still fetches elsewhere.
|
||
- `same_proxy_url()` compares two proxy URLs by scheme, host and port.
|
||
|
||
## [4.21.1] - 2026-10-22
|
||
|
||
The first release on PyPI since 0.1.0.
|
||
|
||
### Changed
|
||
- The package follows the NAPALM driver standard
|
||
(https://git.netork.io/NAPALM/driver-standard): CI on Gitea runs ruff, strict
|
||
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.
|
||
- Type annotations use builtin generics (`list[str]`, `X | None`) instead of
|
||
`typing.List` and `Optional`. They mean the same to a type checker.
|
||
- The project links point at git.netork.io instead of GitHub.
|