| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-03-26 | 6.7 kB | |
| V2.2.0 source code.tar.gz | 2026-03-26 | 9.0 MB | |
| V2.2.0 source code.zip | 2026-03-26 | 9.4 MB | |
| Totals: 3 Items | 18.4 MB | 0 | |
v2.2.0 is a significant release that improves runtime correctness, thread safety, and SNMP session lifecycle management, adds Python 3.14 support with updated Docker images, expands C++ and Python test coverage, introduces a static documentation site, and delivers numerous CI/workflow reliability improvements.
Compared to: v2.1.0
Install / Upgrade
:::bash
pip install ezsnmp==2.2.0
Or browse this release on PyPI: (pypi.org/redacted)
Bug Fixes
- Fixes NULL dereference in
snmpwalk/snmpbulkwalkearly-call helper that could crash the process before a response was received (#722) - Fixes OID/Index parsing for SNMP tables that contain quoted strings in index values, restoring correct data extraction (#525)
- Fixes 3 concurrency bugs in the thread-safety layer: spin-wait livelock, O(N²) mutex contention under load, and a flag read/write race condition across all SNMP ops (#740)
- Ensures SNMP session is properly closed before native resource cleanup, preventing resource leaks on teardown (#674)
- Fixes premature exit in
optprocerror handling path (issue [#655]) that caused incorrect early termination (#667) - Fixes MacOS native/Homebrew test failures caused by thread safety issues in the session layer (#666)
Features / Enhancements
- Adds Python 3.14 support and officially drops Python 3.9 across all Docker images, CI, and documentation (#597, [#599], [#600], [#601], [#608], [#629], [#652])
- Introduces automatic Docker Python patch-version updates via a scheduled workflow — no more manual Dockerfile edits (#729, [#754])
- Publishes Docker images to both Docker Hub and GitHub Container Registry (GHCR), providing redundant pull sources (#741, [#749])
- Adds a static landing site for the project (#717)
- Improves
SessionBasePython API by switching internal method dispatch tosuper(), enabling cleaner subclassing (#664) - Adds a common
snmpd.confused across all integration test environments for consistent test setup (#658)
Runtime / Core Library
- Patches applied to all supported net-snmp versions (5.6–5.9): NULL-safety guards added to
snmpwalk,snmpbulkwalk,snmpget,snmpgetnext,snmpset, andsnmptrapresponse handling - Thread-safety header and implementation (
thread_safety.h,thread_safety.cpp) overhauled to eliminate livelock and contention pathways - Helpers layer extended with proper NULL-return handling before dereferencing response pointers
Tests
- Adds NULL-response shim tests for all SNMP operations (
snmpget,snmpgetnext,snmpset,snmpwalk,snmpbulkget,snmpbulkwalk) covering both C++ and Python paths (#710) - Adds new C++ shim tests targeting previously uncovered lines in net-snmp integration points (#730, [#722])
- Fixes Python coverage reporting so coverage metrics correctly reflect test execution (#710)
Containers / Packaging
- Drops Python 3.9 and adds Python 3.14 to CentOS 7 Docker image (#600)
- Updates all Docker images to Python 3.10–3.14 matrix (#601, [#608], [#629], [#652])
- Creates a dedicated
build_and_publish_docker_images.ymlworkflow for controlled image publishing (#657) - Publishes Docker images to both Docker Hub and GHCR with automatic fallback (#741, [#749])
- Adds automatic Docker Python patch-version update workflow (#729)
- Fixes corrupt cached Docker image tar recovery to avoid CI failures (#687)
CI / Workflows
- Adds CodeCov integration for both Python and C++ coverage reporting (#618)
- Removes redundant manual coverage flags when
b_coverage=trueis already set in tox (#580) - Refactors Docker exec logic into a reusable shell script (#586)
- Fixes MacPorts cache corruption, missing
LD_LIBRARY_PATH,cibuildwheeldependency, and Sphinx Python version issues in CI (#621) - Fixes duplicate step IDs in
tests_homebrew.yml(#620) - Resolves broken GitHub Actions workflows across multiple jobs (#632)
- Removes generated documentation from the repository and automates deployment via CI (#622)
- Rewrites
sphinx_build.ymlto follow theos-specific-runnerreference workflow pattern (#744) - Fixes
sphinx_buildworkflow to open a PR instead of pushing directly to main (#762) - Adds
deploy_pagesjob for GitHub Pages publication (#673) - Adds docs continuous-improvement and changelog CI workflows; updates bug report template (#755, [#766])
- Avoids duplicate changelog PRs on release (#731)
- Fixes Docker C++ test workflow failures (#732)
- Compacts integration-test PR comment summaries for readability (#689)
- Switches CPython version lookup to use GitHub API instead of
www.python.orgfor reliability (#753) - Removes release asset upload from Sphinx build workflow (#680)
- Fixes workflow YAML decode errors and black formatting violations (#649)
Documentation
- Fixes typos, grammar errors, incorrect API examples, and vague docstrings across the codebase (#756)
- Updates docs for Python 3.10+ support and v2.2.0 feature set (#603)
- Integrates threading-vs-multiprocessing guide into Sphinx documentation (#619)
Dependencies
- Python tooling: sphinx 9.1.0 (#596), swig 4.4.1 (#589), coverage 7.13.4 (#588→#662), furo 2025.12.19 (#577), pytest 9.0.2 (#575), tox 4.49.1 (#611→#716), black 26.3.1 (#555→#725), cibuildwheel 3.4.0 (#612→#701), build 1.4.0 (#615), tomli 2.4.0 (#626), urllib3 2.6.3 (#563→#613), setuptools 82.0.1 (#661→#715), wheel 0.46.3 (#640), MishaKav/pytest-coverage-comment 1.7.0 (#682→#728)
- GitHub Actions: actions/checkout 6.0.2 (#556→#642), actions/cache 5.0.3 (#569→#647), actions/upload-artifact 7.0.0 (#567→#686), actions/download-artifact 8.0.1 (#568→#721), actions/setup-python 6.2.0 (#641), github/codeql-action 4.32.6 (#566→#699), peter-evans/create-pull-request 8.1.0 (#560→#639), peter-evans/create-or-update-comment 5 (#637), peter-evans/find-comment 4 (#607), EnricoMi/publish-unit-test-result-action 2.23.0 (#606→#681), tj-actions/changed-files 47.0.5 (#564→#694), carlkidcrypto/os-specific-runner 2.2.0 (#698), codecov/codecov-action 5.5.2 (#627), docker/build-push-action 7.0.0 (#671→#697), docker/setup-buildx-action 4.0.0 (#700), docker/login-action 4.0.0 (#696)
Full Changelog: https://github.com/carlkidcrypto/ezsnmp/compare/v2.1.0...v2.2.0
Generated by Auto Update Release Notes