Download Latest Version V2.3.0 source code.zip (12.2 MB)
Email in envelope

Get an email when there's a new version of ezsnmp

Home / v2.2.0
Name Modified Size InfoDownloads / 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/snmpbulkwalk early-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 optproc error 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 SessionBase Python API by switching internal method dispatch to super(), enabling cleaner subclassing (#664)
  • Adds a common snmpd.conf used 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, and snmptrap response 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.yml workflow 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=true is already set in tox (#580)
  • Refactors Docker exec logic into a reusable shell script (#586)
  • Fixes MacPorts cache corruption, missing LD_LIBRARY_PATH, cibuildwheel dependency, 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.yml to follow the os-specific-runner reference workflow pattern (#744)
  • Fixes sphinx_build workflow to open a PR instead of pushing directly to main (#762)
  • Adds deploy_pages job 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.org for 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

Download ezsnmp

Source: README.md, updated 2026-03-26