Skip to content

Releases: fa-yoshinobu/plc-comm-computerlink-python

Release v3.2.1

Choose a tag to compare

@github-actions github-actions released this 29 Jul 06:05
3263e96

[3.2.1] - 2026-07-29

  • Release: Bumped package metadata and toyopuc.__version__ to 3.2.1.
  • Release: GitHub Release drafts now prepend this version's changelog section to generated notes and repair a missing section on workflow reruns.
  • Tooling: Pinned canonical profile fixture refreshes to plc-comm-computerlink-profiles v1.0.4, matching the embedded profile data used by this release.

BREAKING

  • Library: Removed obsolete command upper-bit response flags and routes. Consumers must classify responses from their structural length and command contract instead of the removed flags.

Fixed

  • Library: Write commands are never retried after a transport failure that may follow transmission; read-only classification is structural rather than dependent on the removed flags.
  • Library: Relay response length decoding now handles a zero low byte correctly and rejects truncated or trailing response data exactly.
  • Library: Profile catalog address bounds are advisory and do not reject transport sends; wire-format width checks remain.

What's Changed

Full Changelog: v3.2.0...v3.2.1

Release v3.2.0

Choose a tag to compare

@github-actions github-actions released this 16 Jul 18:13
3739d19

v3.2.0 changes

  • Release: Bumped package metadata and toyopuc.__version__ to 3.2.0.

  • CI: Excluded maintainer-only files, tests, and release tooling from generated source archives while retaining the complete sample set, and added source-archive contract checks to local, CI, and release gates.

  • Library: Added immutable client-lifetime traffic snapshots through traffic_stats() on synchronous and asynchronous clients.

Release v3.1.0

Choose a tag to compare

@github-actions github-actions released this 13 Jul 00:12
adb842e

v3.1.0 changes

BREAKING

  • Samples: All runnable endpoint, multi-PLC, and configuration-driven samples require an explicit destination port and transport instead of defaulting to 1025/TCP.
  • Library: Split scalar read_one / relay_read_one from count-required list reads; count=1 now returns a list and all range reads reject implicit multi-request splitting.
  • Library: Renamed sparse read_many / relay_read_many to read_devices / relay_read_devices so contiguous and sparse semantics are not overloaded.
  • Library: Removed public chunking helpers and the atomic_transfer option. Dword and float arrays now require one protocol request and reject boundary or limit overflow before communication.
  • Library: Removed FR write/commit combination, range commit, wait/poll helpers, and raw FR-register methods. FR work-area writes and one-block commits are separate operations.
  • Library: FR work-area word values require actual integers in 0..65535; negative, overflowing, Boolean, fractional, and string values are rejected before transport instead of being coerced or masked.
  • Library: Generic bit/byte/word/dword writes reject masking and coercion; sequence writes use one request or fail before transport, and empty collections are invalid.
  • Library: Added ToyopucOperationOutcomeUnknownError for state-changing requests that may have reached the PLC before timeout, disconnect, or cancellation.
  • Library: UDP sockets are connected to the configured PLC endpoint. A fixed-local-port UDP client becomes terminal after an uncertain post-send failure because Computerlink cannot identify stale same-endpoint responses.
  • Library: Relay reads retry the retry-required outer response when configured; relay writes remain non-retryable after send.
  • Library: Retries now apply to pre-send connection failures and approved reads only; async cancellation interrupts the synchronous worker and waits for it to finish before returning.
  • Library: Removed public trace callback configuration and isolated the maintainer callback on a bounded background queue so callback delay or failure cannot alter communication.
  • Library: Bound resolved and parsed address objects to one canonical PLC profile, removed public addressing-option overrides, and reject cross-profile object reuse.
  • Library: Moved raw command and prebuilt-payload senders to maintainer-only underscore paths and removed them from async and documented public surfaces.
  • Migration: Replace scalar read(device) with read_one(device), sparse read_many(devices) with read_devices(devices), and intentional multi-request ranges with explicit application calls.
  • Migration: Replace write_fr(..., commit=True) with write_fr(...) followed by commit_fr(block_start); use explicit CPU-status reads when completion monitoring is required.

Added

  • Library: Added ToyopucPlcProfileDescriptor and plc_profile_descriptors() for canonical TOYOPUC Computer Link profile metadata.

Fixed

  • Library: Keep protocol-width and unsupported-route validation while treating profile catalog index ranges as advisory application/UI metadata.
  • Samples: Updated all sample and maintainer-tool client constructors from the removed protocol= keyword to transport=.
  • CI: Made release dispatch check out an existing exact tag and verify the tag, manifest, runtime version, and built asset names before upload.
  • Docs: Corrected the release guide and removed the hand-maintained Getting Started navigation block.

Tests

  • Tests: Added return-shape, strict count, request-boundary, Dword/float no-partial-transfer, FR single-request and strict-value, explicit block commit, and removed-surface regression coverage.
  • CI: Write the generated PyInstaller spec under the ignored build directory so a successful release check does not leave a root-level untracked artifact.

Release integrity

  • The registry package, �3.1.0 tag, and attached assets remain immutable.
  • Main-branch CHANGELOG classification was corrected by PR #24 without changing runtime code, package metadata, the tag, or published artifacts.

v2.0.0

Choose a tag to compare

@fa-yoshinobu fa-yoshinobu released this 06 Jul 08:33
da2ca86

v2.0.0

BREAKING

PyPI install package renamed. Python import names are unchanged.

Old install name New install name Import name
toyopuc-computerlink plc-comm-toyopuc toyopuc

Highlights

  • Version metadata bumped to 2.0.0.
  • Release duplicate checks now target plc-comm-toyopuc.
  • API reference and README links are updated for the plc-comm package family.

Package matrix: https://fa-yoshinobu.github.io/plc-comm-docs-site/package-matrix/

Release v1.2.0

Choose a tag to compare

@github-actions github-actions released this 05 Jul 10:13

What's Changed

Full Changelog: v1.1.0...v1.2.0

v1.1.0

Choose a tag to compare

@fa-yoshinobu fa-yoshinobu released this 29 Jun 05:23

Changed

  • Release: Bumped package metadata to 1.1.0.
  • Library: Made byte-unit parsing require explicit L / H suffixes and made read_many / write_many / read_named reject implicit multi-request splitting before communication.
  • Docs: Documented explicit request-boundary behavior for multi-address helpers.
  • Samples: Updated high-level samples to keep read_many, write_many, read_named, and poll request boundaries explicit.
  • Tests: Added coverage for explicit byte suffix requirements and rejected implicit multi-request named reads.

Fixed

  • Library: Made BIT_IN_WORD helper addresses require an explicit bit index such as P1-D0100.0 through P1-D0100.F; P1-D0100:BIT_IN_WORD now fails in parse_device_address, try_parse_device_address, and read_named instead of silently reading bit 0.
  • Tests: Added coverage for rejecting BIT_IN_WORD addresses without an explicit bit index.

v1.0.1

Choose a tag to compare

@fa-yoshinobu fa-yoshinobu released this 25 Jun 01:12
4116bbd

Changed

  • Bump package metadata to 1.0.1.
  • Document explicit canonical plc_profile handling and rejection of omitted or alias profile values.

Validation

  • python -m compileall

Release v1.0.0

Choose a tag to compare

@github-actions github-actions released this 24 Jun 02:50
4a92229

What's Changed

Full Changelog: v0.8.0...v1.0.0

Release v0.8.0

Choose a tag to compare

@github-actions github-actions released this 14 Jun 11:31

What's Changed

Full Changelog: v0.1.9...v0.8.0

Release v0.1.9

Choose a tag to compare

@github-actions github-actions released this 12 Jun 12:29

TOYOPUC Computer Link Python maintenance release.

Highlights:

  • Records the 2026-06-12 defect verification results for PC10 sparse reads, FR commit/persistence, and relay-hop access.
  • Keeps generic FR writes guarded; use explicit write_fr(..., commit=False|True) or commit_fr().
  • Keeps single-request and chunked APIs explicit so the caller decides when protocol splitting is acceptable.
  • Refreshes release dependencies and MkDocs release-build instructions.
  • Brings GitHub Releases back in sync after the repository release list stopped at v0.1.5 while PyPI had 0.1.8.

Verification:

  • release_check.bat passed.
  • python -m build passed.
  • python -m twine check dist/* passed.
  • PyPI duplicate check for toyopuc-computerlink 0.1.9: not already published.

Assets:

  • toyopuc_computerlink-0.1.9-py3-none-any.whl
  • toyopuc_computerlink-0.1.9.tar.gz