Skip to content

Releases: cybcon/modbus-server

v2.1.0

08 Feb 21:46
62eed28

Choose a tag to compare

Release: Persistence, Docs, and Improvements

Summary

This release adds persistent storage for Modbus register state, accompanying tests, configuration, and documentation improvements. It also includes maintenance updates such as logging adjustments, version bumps, and repository-level community and security documents.

Highlights

  • Persistence: new register persistence library integrated into the server to save and restore register state across restarts.
  • Tests: unit tests covering the persistence behavior.
  • Configuration: persistence settings added to src/app/modbus_server.json and example configuration files.
  • Docs & Community: added SECURITY.md, CODE_OF_CONDUCT.md, CONTRIBUTING.md, and arc42 architecture documentation/diagrams.
  • Maintenance: logger tweaks, version increases, and improved .gitignore entries.

What's New

  • New library: src/app/lib/register_persistence/__init__.py — handles efficient storage and restore of register state.
  • Graceful save: src/app/modbus_server.py now triggers a persistence save on graceful shutdown to avoid state loss.
  • New tests: tests/test_register_persistence.py validates persistence logic and edge cases.
  • Example updates: examples/test.json, examples/abb_coretec_example.json, and examples/udp.json updated to reflect new config and removed deprecated fields.

Upgrade & Migration Notes

  • Persistence is opt-in via configuration in src/app/modbus_server.json. Review the persistence section in the config and the examples/ before enabling in production.
  • Deployments should allow sufficient time for graceful shutdown so the server can complete persistence writes.
  • When enabled, the server will create or update on-disk persistence files according to the configured path; ensure appropriate file permissions and storage availability.

Compatibility & Caveats

  • No changes to core Modbus protocol handling — this release only augments lifecycle behavior with persistence.
  • Default runtime behavior remains unchanged if persistence is not enabled.
  • Storage format and on-disk files are managed by the new library; future releases may include migrations if the format changes.

What's Changed

  • Add persistent storage feature by @cybcon in #51

Full Changelog: v2.0.0...v2.1.0

v2.0.0

07 Feb 09:12
745ba68

Choose a tag to compare

Summary

This release upgrades the Modbus Server project to PyModbus v3.11 and includes several maintenance updates and improvements.

Key Changes

Dependency Upgrades

  • PyModbus v3.11: Major version upgrade with updated API and imports
    • Changed from pymodbus.server.sync to pymodbus.server module imports
    • Updated datastore imports: removed deprecated ModbusSlaveContext, now using ModbusDeviceContext
    • Updated device module path: pymodbus.devicepymodbus.pdu.device
    • Adjusted function signatures and data block handling to match new API

Infrastructure Updates

  • Alpine base image: Updated from 3.23.2 to 3.23.3 (security & patch updates)
  • Version bump: 1.4.1 → 2.0.0 (reflects major PyModbus upgrade)
  • Copyright year: Updated to 2026

Feature Removals

  • Removed zeroMode configuration: The deprecated zeroMode option has been removed from both the configuration file and the codebase. This simplification aligns with PyModbus v3.11 standards and reduces unnecessary complexity.

Documentation & CI/CD Improvements

  • CI/CD workflow enhancement: Updated GitHub Actions test workflow to install dependencies from dedicated tests/requirements.txt file, improving setup clarity and maintainability
  • Improved configuration handling: Updated default config file path logic for better portability
  • Added Copilot Instructions: New .github/copilot-instructions.md with comprehensive project documentation including architecture, build commands, conventions, and configuration guidelines
  • Updated documentation: README and code comments reflect new version and removed features

Code Quality

  • Updated docstring format and type hints throughout modbus_server.py
  • Enhanced error handling documentation

What's Changed

Full Changelog: v1.4.1...v2.0.0

v1.4.1

28 Dec 17:23
0594e0c

Choose a tag to compare

What's Changed

Full Changelog: v1.4.0...v1.4.1

v1.4.0

22 Oct 06:37
f4285ec

Choose a tag to compare

What's Changed

Full Changelog: v1.3.2...v1.4.0

v1.3.2

19 Jul 07:19
7eb6d40

Choose a tag to compare

What's Changed

  • Fixing version in README by @cybcon in #35
  • Add permission to write to registry by @cybcon in #36
  • Upgrade alpine base image, and python version by @cybcon in #39

Full Changelog: v1.3.1...v1.3.2

v1.3.1

27 Feb 14:04
99850ed

Choose a tag to compare

What's Changed

  • Create FUNDING.yml by @cybcon in #30
  • refactor: Add unit testing and refactor code to follow Python standards. by @bvanelli in #31
  • Upgrade Alpine and package versions, increase app version by @cybcon in #34

New Contributors

Full Changelog: v1.3.0...v1.3.1

v1.3.0

06 Dec 12:06
22009ec

Choose a tag to compare

What's Changed

Full Changelog: v1.2.0...v1.3.0

v1.2.0

13 Nov 10:25
ccdde7c

Choose a tag to compare

What's Changed

Full Changelog: v1.1.5...v1.2.0

v1.1.5

08 Nov 20:06
ac47168

Choose a tag to compare

What's Changed

Full Changelog: v1.1.4...v1.1.5

v1.1.4

07 Nov 18:58
6d23798

Choose a tag to compare

What's Changed

  • Fixing link to example by @cybcon in #17
  • Fix coils and discrete input register initialization by @cybcon in #20

Full Changelog: v1.1.3...v1.1.4