[15] Usability enhancements to CONTROL-CORE #494
Replies: 6 comments 16 replies
-
|
What I Understand So Far The core protocol uses a file-based data-sharing mechanism with a wire format based on Python's ast.literal_eval() syntax, and it supports development in Python, C++, MATLAB/Octave, Verilog, and Java. An optional ZMQ transport layer enables distributed execution. The workflow generator (mkconcore.py) parses GraphML files from the concore Editor (DHGWorkflow) and produces platform-specific scripts for Windows, POSIX, and Docker environments. The CLI (concore_cli) already offers 7 commands - init, run, validate, inspect, status, stop, and watch - with comprehensive validation (12 checks including shell injection detection and ZMQ port conflict analysis). The Docker workflow generates per-node containers with shared-volume communication. However, the multi-platform and multi-language nature of the project introduces friction: configuration is scattered across four separate files (concore.tools, concore.octave, concore.mcr, concore.sudo), tool paths must be set manually, platform-specific scripts must be regenerated when switching between Windows/POSIX/Docker, and the Docker workflow lacks modern orchestration (e.g., Docker Compose). Proposed Approach: "Zero-to-Study in Minutes" Phase 1 - Installation & Configuration Automation (Weeks 1–4) Phase 2 - Container-First Workflow (Weeks 5–8) Phase 3 - Cross-Platform Runner & UX Polish (Weeks 9–12) Why This Approach Given my existing deep involvement in the project, I'm confident I can hit the ground running from Day 1 and deliver meaningful usability improvements across all target platforms. |
Beta Was this translation helpful? Give feedback.
-
|
hello @pradeeban Sir i have one question: |
Beta Was this translation helpful? Give feedback.
-
|
hey @pradeeban, @mayureshkothare and @Rahuljagwani i have two question
|
Beta Was this translation helpful? Give feedback.
-
|
hello @pradeeban and @Rahuljagwani |
Beta Was this translation helpful? Give feedback.
-
|
Hi @pradeeban, @Rahuljagwani, and @mayureshkothare |
Beta Was this translation helpful? Give feedback.
-
|
Hi @pradeeban, @Rahuljagwani, and @mayureshkothare |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello @pradeeban Sir, @Rahuljagwani Sir, and @mayureshkothare Sir,
While drafting my proposal for [15] Usability Enhancements to CONTROL-CORE, I came across a few questions and would really appreciate your guidance.
Q1.The current configuration is scattered across four separate files (concore.tools, concore.octave, concore.mcr, concore.sudo). Would you be open to consolidating these into a single TOML/YAML configuration file (e.g., concore.toml) while keeping backward compatibility with the old files? Or is the separation intentional for modularity?
Q2.I noticed that mkconcore.py generates separate shell scripts for Windows (start /B, taskkill), POSIX (xterm -e, kill), and Docker (docker run/stop). Currently, users must choose one target at generation time with -t. Would it be valuable to generate a unified cross-platform runner (e.g., using Python's subprocess module) so that a single generated study can run on any OS without regeneration?
Q3.The CLI's validate command already performs 12 checks including shell injection prevention and ZMQ port conflict detection. For the usability enhancement, should I focus on making validation part of a pre-flight check before concore run, or should validation and running remain decoupled?
Q4. I see that Phase 1 protocol conformance tests exist in tests/test_protocol_conformance.py covering Python's parse_params, initval, and write_zmq. Phase 2 is planned for C++, Java, and MATLAB cross-language validation. Is completing Phase 2 conformance testing in scope for this usability project, or should I focus purely on installation/deployment UX?
Q5.The wire format uses Python ast.literal_eval() syntax. The C++ parser in concore.hpp and Java parser in TestLiteralEval.java re-implement this independently. Have there been interoperability bugs between language implementations? I'm thinking about whether a formal wire format specification document would help prevent future drift.
Beta Was this translation helpful? Give feedback.
All reactions