# Changelog All notable changes to this project will be documented in this file. 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] ## [0.2.0] – 2026-10-07 ### Added - `run_command()` and `open_stream()`, the public command channel from napalm-device-types 2.6.0: an exec channel on the existing SSH transport, so no PTY, separate stderr and a real exit code. `privileged=True` runs as root directly, through `sudo -S` with the password on stdin (never on the command line), or through `sudo -n`, which fails instead of prompting. - `ContainerEngineMixin`: `container_engines()` and `open_container_engine()`, whose `open_api()` streams the Docker Engine API over `docker system dial-stdio` (NetOrk/netork#765). The existing Docker methods are unchanged. ### Changed - Requires napalm-device-types >= 2.6.0. ## [0.1.0] – 2026-05-29 ### Added - Initial release - `LinuxDriver` inheriting from `napalm_device_types.OSDriver` - SSH transport via Netmiko `linux` device type - Auto-detection of package manager: `apt`, `dnf`, `yum`, `apk`, `pacman` - Standard NAPALM methods: `get_facts()`, `get_interfaces()`, `get_interfaces_ip()`, `get_arp_table()`, `get_config()`, `ping()` - OS-specific methods: `get_packages()`, `get_pending_updates()`, `apply_updates()`, `get_services()`, `get_users()`, `get_processes()`, `get_cron_jobs()` - `apply_updates()` validates all package names against `^[a-zA-Z0-9_\-\+\.]+$` to prevent shell injection before passing them to the package manager - SysV fallback for `get_services()` on non-systemd systems - Unit tests with mocked SSH connections [Unreleased]: https://github.com/chrismanivong/napalm-linux/compare/v0.1.0...HEAD [0.1.0]: https://github.com/chrismanivong/napalm-linux/releases/tag/v0.1.0