Skip to content

Commit 4d009be

Browse files
committed
Prepare v2.6.0 release
1 parent d1c0c35 commit 4d009be

4 files changed

Lines changed: 42 additions & 7 deletions

File tree

CHANGELOG.md

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,39 @@ All notable changes to this project will be documented in this file.
44

55
---
66

7-
### Unreleased
7+
### Version 2.6.0 (2026-06-09)
8+
9+
**CLI Contract:**
10+
11+
- Added the short `cts` console alias alongside `cds-text-sync`.
12+
- Simplified the primary CLI surface around the main user workflows: `ping`, `status`, `export`, `compare`, `import`, `build`, PLC lifecycle commands, variable commands, project/object tools, `raw`, and `engine`.
13+
- Removed the separate `--manual` mode in favor of one short but explicit `cts --help` output.
14+
- Renamed CLI documentation from `cli/MANUAL.md` to `cli/CLI.md` and the CI/CD test-format document to `cli/TEST_FORMAT.md`.
15+
- Updated `cts --help` to document the operational model: folder, CODESYS IDE, and PLC are independent states; deployment moves data `folder -> IDE -> PLC`; folder-to-IDE import must be done while disconnected from the PLC.
16+
17+
**Daemon & PLC State:**
18+
19+
- `project-info` now returns CODESYS Project Information `summary` fields (`Company`, `Title`, `Version`, `Author`, `Description`, `DefaultNamespace`, `URL`) and all custom `properties`, including `cds-sync-folder`, `cds-daemon-config`, and `cds-sync-pc`.
20+
- `ping` and `status` now include cached PLC state: `connected`, `online`, `running`, `application_state`, active application name, and application path. These commands do not auto-connect to the PLC.
21+
- Fixed stale `online_app` cache handling so `connect -> plc-crc`, `device_status`, `start`, and `stop` work without first calling `app-state`.
22+
- Closing the daemon window with the `X` button now requests daemon shutdown instead of leaving the script operation running and blocking the CODESYS UI.
23+
24+
**Import / Compare / Object Tools:**
25+
26+
- `sync_import_text` now updates existing `.st` text objects through the CODESYS text API when native XML import does not apply the changed POU body.
27+
- `compare` now ignores XML serialization noise for externalized `.st`/`.csv` projections when the effective projection content matches the IDE content, including the `TextBlobForSerialisation` empty-container case.
28+
- Added daemon support for `read_object`; `cts read-object --name MAIN` returns declaration, implementation, and object path.
29+
- `update-pou` and `delete-pou` now default to the active CODESYS application instead of the previous hardcoded `CI_CD_Application`.
30+
31+
**Cleanup:**
32+
33+
- Removed legacy daemon/dead-code paths replaced by the reverse-pipe daemon flow.
34+
- Removed unused daemon imports left after the reverse-pipe simplification.
35+
36+
**Release Verification:**
37+
38+
- Verified on a live CODESYS daemon test bench with a clean project state (`36/36 unchanged`) and daemon permissions open (`deny: []`).
39+
- The daemon-driven `cts` workflow was exercised end to end across the main user-facing functions: `ping`, `status`, `permissions`, `raw`, `project-info`, `project-tree`, `export`, `compare`, `import`, `build`, `connect`, `disconnect`, `start`, `stop`, `app-state`, `plc-crc`, variable `read`/`write`, `variable-map`, `variable-snapshot`, `variable-restore`, `read-object`, `update-pou`, `delete-pou`, `read-log`, `sync`, `app_history`, `app_crc`, `app_info`, `create_boot_app`, `plc_upload`, JSON output, text output, and `--pretty`.
840

941
**Fixes:**
1042

readMe.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
[![Issues](https://img.shields.io/github/issues/ArthurkaX/cds-text-sync)](https://github.com/ArthurkaX/cds-text-sync/issues)
77
[![License](https://img.shields.io/github/license/ArthurkaX/cds-text-sync)](LICENSE)
88

9-
**Version**: `2.5.1`
9+
**Version**: `2.6.0`
1010

1111
> [!IMPORTANT]
1212
> **Disclaimer**: This is a third-party tool. It is NOT an official product of CODESYS Group and is not affiliated with, sponsored by, or endorsed by CODESYS Group. This tool is provided "as is" and is not a replacement for official CODESYS products.
@@ -62,7 +62,7 @@ The quick PowerShell installer also checks for `python` up front and can offer a
6262

6363
## CLI + Reverse-Pipe Daemon
6464

65-
Version 2.5.1 adds an optional command-line interface for workflows that need fast, repeatable interaction with an open CODESYS IDE.
65+
Version 2.6.0 focuses on the `cts` command-line workflow and the reverse-pipe daemon for fast, repeatable interaction with an open CODESYS IDE.
6666

6767
The daemon runs inside CODESYS through `Project_daemon.py`. The `cds-text-sync` CLI talks to it over a per-user Windows named pipe, so shell scripts and CI helpers can request CODESYS actions without opening additional script dialogs for every operation.
6868

@@ -72,8 +72,8 @@ Typical commands:
7272

7373
```powershell
7474
cts --help
75-
cts ping --timeout 10 # minimal liveness check
76-
cts status --timeout 10 # detailed daemon/project status
75+
cts ping --timeout 10 # daemon liveness + cached PLC state
76+
cts status --timeout 10 # daemon/project/sync-folder/PLC state
7777
cts export --timeout 60 # IDE -> project-view/
7878
cts compare --timeout 60 # IDE vs project-view/
7979
cts import --timeout 120 # project-view/ -> IDE
@@ -85,13 +85,16 @@ cts test --file arithmetic.json --timeout 120
8585
Common daemon capabilities include:
8686

8787
- IDE connectivity checks and status reporting.
88+
- Cached PLC state reporting from `ping` and `status`: `connected`, `online`, `running`, `application_state`, and active application name.
8889
- Project build execution.
8990
- PLC connect, start, stop, reset, log, and variable read/write operations.
9091
- PLC file listing, upload, and download commands.
9192
- Application CRC checks for deployment verification.
9293
- JSON-based test plans for repeatable validation.
9394
- Access to the same XML-first project sync engine used by the classic `Project_*.py` scripts.
9495

96+
The 2.6.0 daemon workflow was verified on a live CODESYS project by running the main user-facing command set through `cts`: `ping`, `status`, permissions, raw calls, `project-info`, `project-tree`, export, compare, import, build, connect/disconnect, start/stop, `app-state`, PLC CRC, variable read/write, variable map/snapshot/restore, object read/update/delete, log reading, sync commands, application history/CRC/info, boot application creation, PLC upload, and JSON/text output modes.
97+
9598
The CLI is installed with Python packaging:
9699

97100
```powershell

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
setup(
1515
name="cds-text-sync",
16-
version="2.5.1",
16+
version="2.6.0",
1717
description="CODESYS CLI + reverse-pipe daemon",
1818
author="cds-text-sync contributors",
1919
url="https://github.com/ArthurkaX/cds-text-sync",

src/ide_bridge/ide_reverse_pipe_loop.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242

4343
PIPE_NAME = "cds-cli-" + os.environ.get("USERNAME", "default")
4444

45-
VERSION = "2.5.1"
45+
VERSION = "2.6.0"
4646

4747
POLL_INTERVAL = 0.2 # seconds between poll attempts
4848
CONNECT_TIMEOUT_MS = 20 # ms to wait for pipe connection (short = non-blocking)

0 commit comments

Comments
 (0)