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

  • ci: publish docs from a branch, not a detached HEAD (8e80d54)

  • ci: publish docs from a branch, not a detached HEAD (a41dbfa)

  • type: declare componentType on SequenceOf and SetOf (2efb4c4)

2.0.1-rc.1 (2026-09-06)

Bug Fixes

  • ci: publish docs from a branch, not a detached HEAD (8e80d54)

  • ci: publish docs from a branch, not a detached HEAD (a41dbfa)

  • type: declare componentType on SequenceOf and SetOf (2efb4c4)

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

Features

  • add univ.RelativeOID (X.680 RELATIVE-OID, universal tag 13) (9e274a0), closes #117 #110

1.3.0-rc.3 (2026-09-05)

Bug Fixes

  • docs: give each published version an index.html (c038329)

  • tests: stop bulk decoding tests from exhausting runner memory (9963994)

1.3.0-rc.2 (2026-09-05)

Bug Fixes

  • keep the BER decoder’s substrateFun path inside PyAsn1Error (26c1231), closes #140 #142

1.3.0-rc.1 (2026-09-05)

Bug Fixes

Features

  • add univ.RelativeOID (X.680 RELATIVE-OID, universal tag 13) (9e274a0), closes #117 #110

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

  • char: ship opt-in per-type permitted alphabets (X.680 41) (6b6a726), closes #74

1.2.0-beta.13 (2026-09-02)

Bug Fixes

  • cer,der: require minimal length and tag identifier forms (27fdd0d), closes #57

  • type: check component presence in InnerTypeConstraint (640b67e), closes #77

  • type: render BitString as bits rather than a decimal integer (861089c), closes #98

1.2.0-beta.12 (2026-09-02)

Bug Fixes

  • cer,der: enforce the string encoding forms of X.690 9.1, 9.2 and 10.2 (59959fc), closes #61 #96 #97

  • cer: budget the BIT STRING unused-bits octet when segmenting (5c9500b), closes #95

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

  • cer,der: install strict decoders on the schema-guided path (44e2ea2)

  • cer,der: require zero unused bits in BIT STRING per X.690 11.2.1 (0768eb1), closes #61

  • decoder: reject encodings clause 8 makes structurally impossible (dfcec59)

  • real: decode NOT-A-NUMBER and minus zero per X.690 8.5.9 (c29d30a)

1.2.0-beta.7 (2026-09-02)

Bug Fixes

  • encoder: emit INTEGER in the fewest octets X.690 8.3.2 allows (95befaa), closes #63

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

  • debug: stop configuring logging at import time (da55169)

  • debug: stop mutating caller-named loggers, guard lazy printer init (4d7f974)

1.2.0-beta.3 (2026-09-01)

Bug Fixes

  • constraint: make ContainedSubtypeConstraint a union, ratchet mypy (1591f4a)

  • univ: align Real comparison params with base, add advisory ty check (5f66b2e)

Features

  • 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.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

1.1.4-beta.3 (2025-05-20)

Bug Fixes

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

1.1.1 (2021-11-24)

Bug Fixes

1.1.0 (2021-11-24)

Bug Fixes

Features

1.0.3 (2021-11-17)

Bug Fixes

1.0.2 (2021-11-13)

Bug Fixes

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

0.4.11 (2021-11-13)

Bug Fixes

0.4.10 (2021-11-13)

Bug Fixes

0.4.9 (2021-11-13)

Bug Fixes

Reverts