# Changelog The format follows [Keep a Changelog](https://keepachangelog.com/), versions follow [Semantic Versioning](https://semver.org/). ## [Unreleased] ### Changed - `check` reports a license given as a TOML table or as a `License ::` classifier: setuptools refuses both from 2027-02-18 (PEP 639). The template builds with setuptools>=77. - E501 is off under `tests/`: recorded device output keeps its lines (found in the device-types pilot). ### Fixed - `publish` uploads with `--verbose`, so a refusal from PyPI shows its reason, and `--skip-existing`, so a re-run after a partly successful upload does not fail. - The shared workflow waits 60 s per download and retries ten times, so a slow PyPI response no longer fails a job. - `ratchet` refuses a package directory that does not exist. Guessed from the name (napalm-hpe-aruba-procurve ships `napalm_procurve`), it measured nothing and wrote an empty baseline without a word. - `security` audited the runner's own pip instead of the package: pip-audit now checks a venv holding only the package and its dependencies. ## [0.1.0] - 2026-10-22 ### Added - STANDARDS.md: repository usage, the device-types contract, TDD, clean code, the quality ratchet, packaging, versions and releases. - `napalm-standard check`: the conformance check, with release rules on a tag. - `napalm-standard ratchet`: function length, complexity, file size, annotations, strict-mypy exemptions and the coverage floor against `tests/quality_baseline.json`. - `napalm-standard notes` and `release`: the CHANGELOG section of a version, and the Gitea release made from it. - The shared driver workflow `.gitea/workflows/driver.yml`, publishing to PyPI on a tag. - A template for new drivers.