Historical changelog¶
The narrative history of the project through 1.0.5. From 2.0.0-rc.1 onward see the generated Changelog.
Revision 2.0.0¶
Renamed the public API from camelCase to snake_case (
addSourcesbecomesadd_sources,getMibVariantsbecomesget_mib_variants, and so on). Every former name still works and warns withDeprecationWarning; a subclass that overrides a former name is installed under the new one, so existing overrides keep being calledGenerated MIBs are now reproducible: import and export symbol lists were emitted in
setiteration order, so the same source produced different output from run to runThe generated header no longer records the build clock, the interpreter version or the absolute source path. It carries
Source digest sha256:...instead, taken over the ASN.1 text with newlines normalised, so one MIB has one digest on every platformMibInfogained adigestfield holding that valueThe JSON backend now emits the stand-in column it synthesises for an SMIv1
INDEXnaming a bare type, matching the PySNMP backendPySMI no longer imports
pwd, so it can be imported on WindowsThe JSON backend no longer nests a default value under two
defaultkeys. A default now reads atobj["default"], flat like every other clause, instead ofobj["default"]["default"]
Revision 1.2.0, 31-08-2026¶
Removed all Python 2 era code patterns and bumped minimum Python version to 3.10
Migrated build system from Poetry to UV with the hatchling backend
Replaced flake8/black/isort with ruff and pylint (configured in
pyproject.toml)Replaced
sys.exc_info()withexcept ... as excand removedtry/except ImportErrorimport shims (importlib/imp,json/simplejson,OrderedDict)Dropped the
unittest2fallback in favor of directunittestwithpytestas the test runnerUpdated CLI script shebangs to
python3and refreshed the Copilot instructions to match the new toolchain
Revision 1.1.12, 03-04-2024¶
Fix parsing path on windows
Bump jinja2, pycryptodomex and black version
Revision 0.3.4, XX-01-2019¶
Added implied key to JSON SNMP table index structure
Rebased MIB importing code onto importlib because imp is long deprecated
Fixed Py file borrower to become functional
Revision 0.3.3, 29-12-2018¶
Added mibcopy.py documentation
Copyright notice bumped up to year 2019
Revision 0.3.2, 22-10-2018¶
Bumped upper Python version to 3.7 and enabled pip cache
Exit code indication of the command-line tools aligned with sysexits.h to report more useful termination status
Revision 0.3.1, 10-06-2018¶
Fixed pysnmp lower version in test-requirements.txt
Fixed compiler crash when building comments at a platform which has broken users/groups databases
Revision 0.3.0, 29-04-2018¶
The mibcopy tool implemented to copy MIB modules from files with potentially messed up names into a directory under canonical MIB names picking up the latest MIB revision along the way.
ZIP archive reader implemented to pull ASN.1 MIB files from .zip archives pretty much in the same way as from plain directories
HTTP/S proxy support added (through respecting http_proxy environment variable) by switching from httplib to urllib2 internally
Copyright notice bumped up to year 2018
Project site in the docs changes from SourceForge to snmplabs.com
PRODUCT-RELEASE generation added to the JSON code generator
Added special handling of BITS-like DEFVAL syntax for Integers that occurs in buggy MIBs
Fixed missing REVISIONS generations in MODULE-IDENTITY
Revision 0.2.2, 13-11-2017¶
Library documentation refactored and updated
Fixed malformed Python code being produced by pysnmp code generator
Revision 0.2.1, 11-11-2017¶
Added MIB status, product release and revision description set calls at pysnmp code generator
Changed REVISION field format in JSON representation - it is now a list of dicts each with revision timestamp and description text
MIB REFERENCE fields are only exported if –with-mib-text is on
Sphinx documentation theme changed to Alabaster
Multiple fixes to pysnmp codegen not to produce function calls with more than 255 parameters
Revision 0.1.4, 14-10-2017¶
Fix to SMI lexer to treat tokens starting from a digit as belonging to a lower-cased class. This fixes sub-OID parsing bug (specifically, 802dot3(10006))
Fix to the mibdump.py local MIB path automatic injection in front of existing –mib-sources
Revision 0.1.3, 19-05-2017¶
INET-ADDRESS-MIB configured as pre-built at pysnmp codegen
JSON codegen produces “nodetype” element for OBJECT-TYPE
Fix to mibdump.py –destination-directory option
Fix to pysnmp and JSON code generators to properly refer to MIB module defining particular MIB object
Revision 0.1.2, 12-04-2017¶
The @mib@ magic in reader’s URL template made optional. If it is not present, MIB module name is just appended to URL template
Send User-Agent containing pysmi and Python versions as well as platform name.
Fixed missing STATUS/DISPLAY-HINT/REFERENCE/etc fields generation at pysnmp backend when running in the non-full-text mode
Fixed broken ordereddict dependency on Python 2.6-
Revision 0.1.1, 30-03-2017¶
Generate REFERENCE and STATUS fields at various SMI objects
Generate DESCRIPTION field followed REVISION field at MODULE-IDENTITY objects
Generate PRODUCT-RELEASE field at AGENT-CAPABILITIES objects
Generated Python source aligned with PEP8
MIB texts cleaned up by default, –keep-texts-layout preserves original formatting
Fix to the ordereddict conditional dependency
Missing test module recovered
Failing tests fixed
Revision 0.1.0, 25-03-2017¶
JSON code generating backend implemented
Experimental JSON OID->MIB indices generation implemented
Package structure flattened for easier use
Minor refactoring to the test suite
Source code statically analyzed, hardened and PEP8-ized
Files closed explicitly to mute ResourceWarnings
Fixed to Python 2.4 (and aged ply) compatibility
Added a workaround to avoid generating pysnmp TextualConvention classes inheriting from TextualConvention (when MIB defines a TEXTUAL-CONVENTION based on another TEXTUAL-CONVENTION as SYNTAX)
Author’s e-mail changed, copyright extended to year 2017
Revision 0.0.7, 12-02-2016¶
Crash on existing .py file handling fixed.
Fix to __doc__ use in setup.py to make -O0 installation mode working.
Fix to PyPackageSearcher not to fail on broken Python packages.
Source code pep8’ed
Copyright added to source files.
Revision 0.0.6, 01-10-2015¶
Several typos fixed, source code linted again.
Some dead code cleaned up.
Revision 0.0.5, 28-09-2015¶
Wheel distribution format now supported.
Handle the case of MIB symbols conflict with Python reserved words.
Handle binary DEFVAL initializer for INTEGER’s.
Generate LAST-UPDATED at pysnmp code generator.
Revision 0.0.4, 01-07-2015¶
Fix to MRO compliance for mixin classes generation at pysnmp backend
Fix to repeated imports in generated code at pysnmp backend
Fix to mibdump tool to properly handle the –generate-mib-texts option.
Fix to Python compile() - optimize flag is valid only past Python 3.1
Fix to SMIv1 INDEX clause code generation for pysnmp backend.
Tighten file creation security at pysmi.writer.pyfile
Revision 0.0.3, 28-06-2015¶
Two-pass compiler design allows for much accurate code generation.
Sphinx-based documentation first introduced
Revision 0.0.0, 11-04-2015¶
First public release, not fully operational yet