a4858e9a1fdce2ab454c02d9d4cae5a3ffae943f
driver-standard
The rules every driver in the NAPALM org follows, and the tools that hold them.
| STANDARDS.md | Repository usage, the contract, TDD, clean code, the quality ratchet, packaging, releases |
.gitea/workflows/driver.yml |
The CI every driver calls: conformance, lint, types, tests, lowest versions, security, build, publish |
napalm-standard |
The command line that CI runs: check, ratchet, notes, release, package |
| template/ | A new driver's starting point; it meets the standard as it is |
Using it in a driver
.gitea/workflows/ci.yml:
name: CI
on:
push:
branches: [main]
tags: ["v*"]
pull_request:
jobs:
driver:
uses: NAPALM/driver-standard/.gitea/workflows/driver.yml@main
with:
standard-ref: main
secrets:
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
Inputs: pre-install (pip specs installed first, e.g. a dependency not on PyPI
yet), python-versions (JSON list), pypi-url (https://test.pypi.org/legacy/
for a dry run), standard-ref (keep it equal to the @ref of the uses: line).
Locally:
pip install "napalm-standard @ git+https://git.netork.io/NAPALM/driver-standard.git"
napalm-standard check # does this repo meet the standard?
napalm-standard ratchet # is it within its quality baseline?
napalm-standard ratchet --write # record the baseline after an improvement
Development
python -m venv .venv && .venv/bin/pip install -e ".[dev]"
.venv/bin/pytest
.venv/bin/ruff format --check . && .venv/bin/ruff check . && .venv/bin/mypy napalm_standard
License
Apache-2.0
Description
Rules, shared CI and release tooling for every NAPALM driver: TDD, clean code, repository usage, PyPI releases
104 KiB
0 Stars
1 Watchers
0 Forks
Languages
Python
100%