Skip to content

Releases: ACE-IoT-Solutions/ace-bacnet-devices

v0.2.1

Choose a tag to compare

@acedrew acedrew released this 13 Aug 22:25

Packaging metadata only — no code, dependency or behaviour change. The bundled
vendor definitions and the extraction logic are identical to 0.2.0.

  • README now carries PyPI, supported-Python, license and CI badges, plus links to
    the project page, source, issues and releases. All badges read live metadata,
    so they track the package rather than needing edits.
  • Adds [project.urls], which is what populates the sidebar links on the PyPI
    project page; the README links only render inside the description body.
  • Fixes relative links in the description. PyPI serves the README without
    rewriting relative paths, so [LICENSE](LICENSE) resolved against pypi.org and
    404'd. The license badge and License section now point at the LICENSE blob on
    GitHub.

v0.2.0

Choose a tag to compare

@acedrew acedrew released this 13 Aug 00:58

Supports Python 3.10 and up (previously 3.13 only), so this is the first release
installable on the interpreters most deployments are actually running.

  • requires-python lowered to >=3.10, the floor the dependencies allow — typer
    and pdfminer.six both require it.
  • The one version-dependent construct, enum.StrEnum (3.11+), is shimmed in
    ace_bacnet_devices._compat. A bare class Foo(str, Enum) is not equivalent —
    it stringifies as Foo.BAR rather than bar, and these values are written into
    JSON and generated source — so the shim pins __str__/__format__ to str as
    the standard library does. Every enum spelling, all six bundled definitions as
    JSON, and the generated legacy module are byte-identical on 3.10/3.11/3.12/3.13.
  • CI runs lint, type checks and tests as a matrix over all four versions, and the
    wheel smoke test installs on 3.10 so a wheel that cannot install at the declared
    floor fails before release.
  • The legacy bacpypes adapter is now verified against the real stack rather than
    stubs: asyncore still exists on 3.10/3.11, so bacpypes installs there. All 53
    constrained datatypes are encoded and compared byte for byte against the primitive
    each subclasses, and 40 declared maxima are confirmed to reject out-of-range
    values. These tests skip on 3.12+.

No change to the bundled vendor definitions: 617 proprietary properties across
eight BACnet vendor ids.

v0.1.0

Choose a tag to compare

@acedrew acedrew released this 13 Aug 00:38