chore: adopt the NAPALM driver standard #6

Merged
christianmanivong merged 3 commits from chore/driver-standard into main 2026-10-23 09:53:03 +00:00
Owner

Summary

napalm-hpe-officeconnect adopts the NAPALM driver standard (https://git.netork.io/NAPALM/driver-standard).
Epic: NAPALM/driver-standard#2.

Changes

  • style: the standard's ruff rule set (E, F, I, UP, B, line length 100, Python 3.10) in pyproject.toml. The code already met it; ruff format and ruff check --fix change nothing.
  • fix: none needed; ruff and bandit found nothing.
  • chore: CI in .gitea/workflows/ci.yml calling the shared workflow, .github/ removed; Python 3.10 floor, SPDX license, CHANGELOG, py.typed, Issues and Changelog links; napalm-device-types >=4.21.1 declared (the driver imports SwitchDriver and FingerprintRule from it but did not list it); urllib3 >=1.23 as a true floor, without which the lowest job cannot import on Python 3.10; strict mypy with officeconnect exempt for now; coverage floor 91 %; quality baseline.

Related Issue

Closes #5

Testing

Locally: 51 tests, coverage 91.83 %, ruff, mypy, bandit clean; napalm-standard check and ratchet clean; build + twine check --strict pass. The lowest job's install (uv --resolution lowest-direct, Python 3.10) passes too. Fixtures only.

## Summary napalm-hpe-officeconnect adopts the NAPALM driver standard (https://git.netork.io/NAPALM/driver-standard). Epic: NAPALM/driver-standard#2. ## Changes - **style**: the standard's ruff rule set (E, F, I, UP, B, line length 100, Python 3.10) in pyproject.toml. The code already met it; ruff format and `ruff check --fix` change nothing. - **fix**: none needed; ruff and bandit found nothing. - **chore**: CI in `.gitea/workflows/ci.yml` calling the shared workflow, `.github/` removed; Python 3.10 floor, SPDX license, CHANGELOG, `py.typed`, Issues and Changelog links; napalm-device-types >=4.21.1 declared (the driver imports `SwitchDriver` and `FingerprintRule` from it but did not list it); urllib3 >=1.23 as a true floor, without which the lowest job cannot import on Python 3.10; strict mypy with `officeconnect` exempt for now; coverage floor 91 %; quality baseline. ## Related Issue Closes #5 ## Testing Locally: 51 tests, coverage 91.83 %, ruff, mypy, bandit clean; `napalm-standard check` and `ratchet` clean; build + `twine check --strict` pass. The lowest job's install (`uv --resolution lowest-direct`, Python 3.10) passes too. Fixtures only.
christianmanivong added 2 commits 2026-10-23 06:44:28 +00:00
The rule set every NAPALM driver uses (E, F, I, UP, B at line length 100,
Python 3.10). The code already meets it: ruff format and ruff check --fix
change nothing.
chore: adopt the NAPALM driver standard
driver / standard (pull_request) Successful in 14s
driver / lint (pull_request) Successful in 11s
driver / types (pull_request) Successful in 45s
driver / test (3.10) (pull_request) Successful in 44s
driver / test (3.11) (pull_request) Successful in 44s
driver / test (3.12) (pull_request) Successful in 43s
driver / test (3.13) (pull_request) Successful in 37s
driver / lowest (pull_request) Successful in 22s
driver / security (pull_request) Successful in 46s
driver / build (pull_request) Successful in 22s
CI / driver (pull_request) Successful in 5m30s
driver / publish (pull_request) Skipped
ed928c22b0
- CI moves to .gitea/workflows/ci.yml and calls the shared driver workflow
  of NAPALM/driver-standard; .github/ goes.
- requires-python >=3.10 (napalm-device-types needs it), CHANGELOG,
  py.typed, SPDX license string, Issues and Changelog links; a dev extra
  with floors.
- napalm-device-types >=4.21.1 is declared: officeconnect.py imports
  SwitchDriver and FingerprintRule from it, but the package did not list it.
- urllib3 gets a true floor (>=1.23): unbounded, the lowest job installed a
  version that does not import on Python 3.10.
- mypy strict for the package; napalm_hpe_officeconnect.officeconnect is
  exempt for now (4 errors: three ClassVar fingerprint attributes the base
  declares as instance variables, one bare dict), recorded in the quality
  baseline. Coverage floor 91 % (measured 91.83 %).
christianmanivong added 1 commit 2026-10-23 08:29:05 +00:00
chore(release): 0.2.0
driver / standard (pull_request) Successful in 13s
driver / lint (pull_request) Successful in 11s
driver / types (pull_request) Successful in 43s
driver / test (3.10) (pull_request) Successful in 44s
driver / test (3.11) (pull_request) Successful in 45s
driver / test (3.12) (pull_request) Successful in 43s
driver / test (3.13) (pull_request) Successful in 37s
driver / lowest (pull_request) Successful in 22s
driver / security (pull_request) Successful in 46s
driver / build (pull_request) Successful in 22s
CI / driver (pull_request) Successful in 5m26s
driver / publish (pull_request) Skipped
b5f3e31498
christianmanivong merged commit bf99eacc95 into main 2026-10-23 09:53:03 +00:00
christianmanivong deleted branch chore/driver-standard 2026-10-23 09:53:03 +00:00
Sign in to join this conversation.