summaryrefslogtreecommitdiff
path: root/CONTRIBUTING.md
diff options
context:
space:
mode:
authorRoberto Bertó <463349+robertoberto@users.noreply.github.com>2026-05-19 02:39:01 +0000
committerRoberto Bertó <463349+robertoberto@users.noreply.github.com>2026-05-19 02:39:01 +0000
commitbf4e309a698592cdb815580f97db97b268fd6668 (patch)
treee8adb51a364d3fa617133f85603ab03d536ce849 /CONTRIBUTING.md
parentea8c349f6dce955696850198b8544d0203b467fb (diff)
downloadpyvyos-bf4e309a698592cdb815580f97db97b268fd6668.tar.gz
pyvyos-bf4e309a698592cdb815580f97db97b268fd6668.zip
docs: prepare v0.4.0 release
Rewrite the README around the supported public API, add a public API stability policy, document the deprecation timeline, and refresh the CHANGELOG with the full 0.4.0 scope. Add a short CONTRIBUTING guide. Apply minor pending fixes to LICENSE and .env.example. Fix a couple of verify=False antipatterns in the docs/ pages. README: - Badges (PyPI version, Python versions, license, CI). - Quick start that actually runs (no missing import, no global disable_warnings, correct VYDEVICE_VERIFY_SSL parse). - Environment variable table with defaults. - ApiResponse contract documented as a dataclass. - Compact API overview (configure / retrieve / show / generate / reset / config-file / system / image). - Public API stability section with the 0.4 -> 0.5 -> 0.6 -> 1.0 deprecation timeline. - Logging section: NullHandler default, pyvyos logger, redacted key. - VyOS compatibility note (1.4 LTS, 1.5 rolling). - Development with uv; optional pre-commit. CHANGELOG: - Consolidated 0.4.0 entry covering both the architecture refactor and this cleanup, since 0.4.0 was tagged in git but never published. - Explicit Added / Changed / Removed / Fixed / Compatibility / Notes sections. - 0.3.0 entry annotated as 'tagged but never released to PyPI'. CONTRIBUTING.md: - Scope statement (thin HTTPS API wrapper). - Pull request rules; explicit 'do not change HTTP payload in passing'. - Development setup with uv. - Public API stability summary. Fixes from the previous review-fixes branch: - LICENSE copyright now reads 'GravScale, Roberto Berto'. - .env.example default flipped to VYDEVICE_VERIFY_SSL=true with field descriptions. - docs/getting-started.md: VERIFY_SSL default to true; urllib3 disable_warnings now passes the specific InsecureRequestWarning. - docs/index.md: quick example uses verify=True; removed RTD link (RTD config was removed in this release because the build never worked).
Diffstat (limited to 'CONTRIBUTING.md')
-rw-r--r--CONTRIBUTING.md71
1 files changed, 71 insertions, 0 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..2bfaaa0
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,71 @@
+# Contributing to pyvyos
+
+Thanks for considering a contribution. `pyvyos` is a small library with a
+narrow scope, which makes review and maintenance easier when contributions
+follow a few simple rules.
+
+## Scope
+
+`pyvyos` is a thin Python wrapper around the VyOS HTTPS API. Changes that
+fit naturally into this scope are welcome. Anything that adds a new
+dependency, introduces a parallel client (SSH, NETCONF, …), or expands
+beyond the HTTPS API surface is best discussed in an issue first.
+
+## Before opening a pull request
+
+1. **Open an issue first** for anything beyond a small fix or a typo. It
+ saves everyone time if the direction is agreed before the patch lands.
+2. **Keep the diff focused.** One topic per pull request. Refactors and
+ bug fixes are easier to review separately.
+3. **Do not change HTTP payload generation in passing.** Payload changes
+ require a deliberate review pass; they should be their own pull
+ request and include tests.
+4. **Run the test suite locally:** `uv run pytest`.
+5. **Match the existing style.** No formatter is enforced yet; just keep
+ diffs minimal and readable.
+
+## Development setup
+
+```bash
+git clone https://github.com/vyos-contrib/pyvyos.git
+cd pyvyos
+uv sync --extra dev
+uv run pytest
+```
+
+Optional pre-commit hooks (whitespace, EOF, YAML/TOML syntax):
+
+```bash
+pip install pre-commit
+pre-commit install
+```
+
+## Public API stability
+
+The supported public API is:
+
+```python
+from pyvyos import VyDevice, ApiResponse
+```
+
+Compatibility shims at `pyvyos.device` and `pyvyos.rest` are kept while
+the cost is trivial. Anything under `pyvyos.core.*` is internal and may
+change between minor releases.
+
+If your change touches the public API surface, please flag it explicitly
+in the pull request description.
+
+## Reporting bugs
+
+When reporting a bug, please include:
+
+- The `pyvyos` version (`pip show pyvyos`).
+- The Python version.
+- The VyOS version of the device.
+- A minimal reproducer and the resulting error (or, for behaviour bugs,
+ the observed vs expected behaviour).
+
+## License
+
+By contributing you agree that your contribution will be licensed under
+the [MIT License](LICENSE).