Changelog¶
Generated from the commit history at release time. The narrative history through 1.3.0 is in CHANGES.rst.
2.0.2 (2026-09-09)¶
Bug Fixes¶
type: reject bare constructed schemas (2734ea8)
2.0.1 (2026-09-06)¶
Bug Fixes¶
2.0.1-rc.1 (2026-09-06)¶
Bug Fixes¶
2.0.0 (2026-09-05)¶
⚠ BREAKING CHANGES¶
footer, so the pending version is unchanged.
Least privilege at the workflow level: contents: read rather than contents: write plus issues: write plus pull-requests: write. Nothing in the workflow writes with GITHUB_TOKEN — semantic-release authenticates with SEMREL_TOKEN and checks out with persist-credentials: false.
Deliberately not adopted: pysnmp’s release_type dispatch input, which sed-patches .releaserc to cut an rc from main. The next branch already cuts rcs, so that input exists to work around not having one.
docs/source/ci-and-releases.rst documents the branches, commit-message conventions, what each job does, the matrix rules and why they are shaped that way, how a release is cut, Trusted Publishing, and the failure modes this repository actually hit.
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com
Continuous Integration¶
reconcile with the pysmi and pysnmp workflows, document the process (d4eb442)
2.0.0-rc.2 (2026-09-06)¶
Bug Fixes¶
ci: publish docs from a branch, not a detached HEAD (a41dbfa)
2.0.0-rc.1 (2026-09-06)¶
⚠ BREAKING CHANGES¶
footer, so the pending version is unchanged.
Least privilege at the workflow level: contents: read rather than contents: write plus issues: write plus pull-requests: write. Nothing in the workflow writes with GITHUB_TOKEN — semantic-release authenticates with SEMREL_TOKEN and checks out with persist-credentials: false.
Deliberately not adopted: pysnmp’s release_type dispatch input, which sed-patches .releaserc to cut an rc from main. The next branch already cuts rcs, so that input exists to work around not having one.
docs/source/ci-and-releases.rst documents the branches, commit-message conventions, what each job does, the matrix rules and why they are shaped that way, how a release is cut, Trusted Publishing, and the failure modes this repository actually hit.
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com
Continuous Integration¶
reconcile with the pysmi and pysnmp workflows, document the process (d4eb442)
1.3.0 (2026-09-05)¶
Bug Fixes¶
docs: give each published version an index.html (c038329)
encode a present OPTIONAL component even when it is empty (69f4b80), closes #119 #112
encoder must not instantiate absent DEFAULT components (2e7abff), closes #112
isInconsistent must report an exception, not a bare True (a16a043), closes #118
keep all components when an explicit-tag guess is refuted (09b9862), closes #116 pyasn1/pyasn1#59
keep the BER decoder’s substrateFun path inside PyAsn1Error (26c1231), closes #140 #142
keep the EOO when capturing an untagged Any (c396c79), closes #114 pyasn1/pyasn1#66
malformed BIT STRING must raise PyAsn1Error, not IndexError (6738bec), closes #121
re-resolve late-bound componentType on clone and subtype (6e62269), closes #111 pyasn1/pyasn1#124 etingof/pyasn1#19 etingof/pyasn1#20
reading a Choice alternative must not deselect another (6e5b40a), closes #122
report an ambiguous SEQUENCE schema instead of guessing a component (a389f1e), closes #120 pyasn1/pyasn1#84
security: bound OID arcs, tag numbers and Real conversion (0ff4c73), closes Hi#tag-number #110
tests: stop bulk decoding tests from exhausting runner memory (9963994)
Features¶
1.3.0-rc.3 (2026-09-05)¶
Bug Fixes¶
1.3.0-rc.2 (2026-09-05)¶
Bug Fixes¶
1.3.0-rc.1 (2026-09-05)¶
Bug Fixes¶
encode a present OPTIONAL component even when it is empty (69f4b80), closes #119 #112
encoder must not instantiate absent DEFAULT components (2e7abff), closes #112
isInconsistent must report an exception, not a bare True (a16a043), closes #118
keep all components when an explicit-tag guess is refuted (09b9862), closes #116 pyasn1/pyasn1#59
keep the EOO when capturing an untagged Any (c396c79), closes #114 pyasn1/pyasn1#66
malformed BIT STRING must raise PyAsn1Error, not IndexError (6738bec), closes #121
re-resolve late-bound componentType on clone and subtype (6e62269), closes #111 pyasn1/pyasn1#124 etingof/pyasn1#19 etingof/pyasn1#20
reading a Choice alternative must not deselect another (6e5b40a), closes #122
report an ambiguous SEQUENCE schema instead of guessing a component (a389f1e), closes #120 pyasn1/pyasn1#84
security: bound OID arcs, tag numbers and Real conversion (0ff4c73), closes Hi#tag-number #110
Features¶
1.2.0 (2026-09-03)¶
Bug Fixes¶
cer,der: enforce canonical GeneralizedTime and UTCTime (ae8e39b)
cer,der: enforce canonical REAL form per X.690 11.3 (3b49e2a)
cer,der: enforce the string encoding forms of X.690 9.1, 9.2 and 10.2 (59959fc), closes #61 #96 #97
cer,der: install strict decoders on the schema-guided path (44e2ea2)
cer,der: reject non-minimal INTEGER encodings per X.690 8.3.2 (d37aae1)
cer,der: require minimal length and tag identifier forms (27fdd0d), closes #57
cer,der: require zero unused bits in BIT STRING per X.690 11.2.1 (0768eb1), closes #61
cer: budget the BIT STRING unused-bits octet when segmenting (5c9500b), closes #95
ci for build (dbd35eb)
ci issue (add11e0)
ci publish (b5decec)
ci: keep uv.lock in step with the released version (91becfb)
ci: pin Black version in lint environment (27aa746)
cleanup imports (3f92083)
constraint: make ContainedSubtypeConstraint a union, ratchet mypy (1591f4a)
correct IndentationError in ber/decoder.py nesting level logic (5f8022e)
debug: stop configuring logging at import time (da55169)
debug: stop mutating caller-named loggers, guard lazy printer init (4d7f974)
decoder: reject encodings clause 8 makes structurally impossible (dfcec59)
encoder: emit INTEGER in the fewest octets X.690 8.3.2 allows (95befaa), closes #63
import and flake8 reported issues (eafee06)
make schema-object comparison consistent, rewrite NoValue (086b46c)
real,useful: hold decimal REAL to its declared ISO 6093 form (04bc59d)
real: decode NOT-A-NUMBER and minus zero per X.690 8.5.9 (c29d30a)
real: keep the base 10 mantissa exact and integral (43221c8), closes #78
remove duplicate tag helpers (5fb3905)
type: check component presence in InnerTypeConstraint (640b67e), closes #77
type: render BitString as bits rather than a decimal integer (861089c), closes #98
type: stop shadowing pyasn1.error.ValueConstraintError (99c3b86), closes #103
univ: align Real comparison params with base, add advisory ty check (5f66b2e)
useful: correct time conversion and render times as timestamps (5659197), closes #73
Features¶
char: ship opt-in per-type permitted alphabets (X.680 41) (6b6a726), closes #74
deprecate text decoding in OctetString.str() (88864fa)
error: carry structured context on exceptions (0b53353)
typing: add mypy gate, py.typed marker, and baseline annotations (5a83791)
typing: annotate codec modules and leaf types (662a987)
typing: annotate pyasn1.type.base (b86258d)
typing: annotate pyasn1.type.namedtype (7ea6a2f)
typing: annotate pyasn1.type.univ, completing the codebase (08feeb1)
typing: annotate tag, constraint, namedval and opentype (4750ec5)
1.2.0-rc.1 (2026-09-03)¶
Bug Fixes¶
cer,der: enforce canonical GeneralizedTime and UTCTime (ae8e39b)
cer,der: enforce canonical REAL form per X.690 11.3 (3b49e2a)
cer,der: enforce the string encoding forms of X.690 9.1, 9.2 and 10.2 (59959fc), closes #61 #96 #97
cer,der: install strict decoders on the schema-guided path (44e2ea2)
cer,der: reject non-minimal INTEGER encodings per X.690 8.3.2 (d37aae1)
cer,der: require minimal length and tag identifier forms (27fdd0d), closes #57
cer,der: require zero unused bits in BIT STRING per X.690 11.2.1 (0768eb1), closes #61
cer: budget the BIT STRING unused-bits octet when segmenting (5c9500b), closes #95
ci for build (dbd35eb)
ci issue (add11e0)
ci publish (b5decec)
ci: keep uv.lock in step with the released version (91becfb)
ci: pin Black version in lint environment (27aa746)
cleanup imports (3f92083)
constraint: make ContainedSubtypeConstraint a union, ratchet mypy (1591f4a)
correct IndentationError in ber/decoder.py nesting level logic (5f8022e)
debug: stop configuring logging at import time (da55169)
debug: stop mutating caller-named loggers, guard lazy printer init (4d7f974)
decoder: reject encodings clause 8 makes structurally impossible (dfcec59)
encoder: emit INTEGER in the fewest octets X.690 8.3.2 allows (95befaa), closes #63
import and flake8 reported issues (eafee06)
make schema-object comparison consistent, rewrite NoValue (086b46c)
real,useful: hold decimal REAL to its declared ISO 6093 form (04bc59d)
real: decode NOT-A-NUMBER and minus zero per X.690 8.5.9 (c29d30a)
real: keep the base 10 mantissa exact and integral (43221c8), closes #78
remove duplicate tag helpers (5fb3905)
type: check component presence in InnerTypeConstraint (640b67e), closes #77
type: render BitString as bits rather than a decimal integer (861089c), closes #98
type: stop shadowing pyasn1.error.ValueConstraintError (99c3b86), closes #103
univ: align Real comparison params with base, add advisory ty check (5f66b2e)
useful: correct time conversion and render times as timestamps (5659197), closes #73
Features¶
char: ship opt-in per-type permitted alphabets (X.680 41) (6b6a726), closes #74
deprecate text decoding in OctetString.str() (88864fa)
error: carry structured context on exceptions (0b53353)
typing: add mypy gate, py.typed marker, and baseline annotations (5a83791)
typing: annotate codec modules and leaf types (662a987)
typing: annotate pyasn1.type.base (b86258d)
typing: annotate pyasn1.type.namedtype (7ea6a2f)
typing: annotate pyasn1.type.univ, completing the codebase (08feeb1)
typing: annotate tag, constraint, namedval and opentype (4750ec5)
1.2.0-beta.14 (2026-09-02)¶
Bug Fixes¶
real,useful: hold decimal REAL to its declared ISO 6093 form (04bc59d)
real: keep the base 10 mantissa exact and integral (43221c8), closes #78
type: stop shadowing pyasn1.error.ValueConstraintError (99c3b86), closes #103
useful: correct time conversion and render times as timestamps (5659197), closes #73
Features¶
1.2.0-beta.13 (2026-09-02)¶
Bug Fixes¶
1.2.0-beta.12 (2026-09-02)¶
Bug Fixes¶
1.2.0-beta.11 (2026-09-02)¶
Bug Fixes¶
cer,der: enforce canonical REAL form per X.690 11.3 (3b49e2a)
1.2.0-beta.10 (2026-09-02)¶
Bug Fixes¶
cer,der: reject non-minimal INTEGER encodings per X.690 8.3.2 (d37aae1)
1.2.0-beta.9 (2026-09-02)¶
Bug Fixes¶
cer,der: enforce canonical GeneralizedTime and UTCTime (ae8e39b)
1.2.0-beta.8 (2026-09-02)¶
Bug Fixes¶
1.2.0-beta.7 (2026-09-02)¶
Bug Fixes¶
1.2.0-beta.6 (2026-09-02)¶
Features¶
error: carry structured context on exceptions (0b53353)
1.2.0-beta.5 (2026-09-02)¶
Bug Fixes¶
remove duplicate tag helpers (5fb3905)
1.2.0-beta.4 (2026-09-01)¶
Bug Fixes¶
1.2.0-beta.3 (2026-09-01)¶
Bug Fixes¶
Features¶
1.2.0-beta.2 (2026-09-01)¶
Features¶
typing: add mypy gate, py.typed marker, and baseline annotations (5a83791)
1.2.0-beta.1 (2026-09-01)¶
Features¶
deprecate text decoding in OctetString.str() (88864fa)
1.1.4-beta.8 (2026-09-01)¶
Bug Fixes¶
ci: keep uv.lock in step with the released version (91becfb)
1.1.4-beta.7 (2026-09-01)¶
Bug Fixes¶
make schema-object comparison consistent, rewrite NoValue (086b46c)
1.1.4-beta.6 (2026-09-01)¶
Bug Fixes¶
correct IndentationError in ber/decoder.py nesting level logic (5f8022e)
1.1.4-beta.5 (2026-09-01)¶
Bug Fixes¶
ci: pin Black version in lint environment (27aa746)
1.1.4-beta.4 (2025-05-20)¶
Bug Fixes¶
ci publish (b5decec)
1.1.4-beta.3 (2025-05-20)¶
Bug Fixes¶
ci issue (add11e0)
1.1.3 (2023-02-21)¶
Bug Fixes¶
bring back missing ints2octs and ensureString (bc81772)
bring back missing ints2octs and ensureString (c92da99)
CI (ad8f444)
delete agreements from CI (525381a)
ints2octes issue (7076275)
make codecov not required (1b9e949)
run pre-commit and update pre-commit workflow (7bdab33)
upgrade pre-commit version (c388965)
upgrade semantic release (51b9338)
1.1.2 (2021-11-24)¶
Bug Fixes¶
cleanup old code (c92b584)
1.1.1 (2021-11-24)¶
Bug Fixes¶
remove shadow (57a2495)
1.1.0 (2021-11-24)¶
Bug Fixes¶
Features¶
format with black (1824a3a)
1.0.3 (2021-11-17)¶
Bug Fixes¶
bump (ec35ee1)
1.0.2 (2021-11-13)¶
Bug Fixes¶
bump version (a6d7a5e)
1.0.1 (2021-11-13)¶
Bug Fixes¶
bump (970e15d) Full Changelog: https://github.com/pysnmp/pyasn1/compare/0.4.8…v1.0.0
0.4.12 (2021-11-13)¶
Bug Fixes¶
Update doc links (9cabd9b)
0.4.11 (2021-11-13)¶
Bug Fixes¶
correct badges (4cbde56)
0.4.10 (2021-11-13)¶
Bug Fixes¶
0.4.9 (2021-11-13)¶
Bug Fixes¶
update gitignore (c8f0be6)
Reverts¶
change (a6ac7b5)