Hi @pradeeban ,
While exploring the specialization flow of ZMQ in mkconcore , i found that when multiple nodes reference the same script (example: A:common.py, B:common.py, C:common.py) and have different ZMQ edges, the generated specialized file keeps only part of the required PORT_* / PORT_NAME_* definitions.
Why this happens:
- copy_with_port_portname.py generates output by basename only and returns early if that file already exists.
- mkconcore.py runs specialization per node, passing node-level params each time.
- So the first node writes common.py, and later nodes reuse it without merging their edge params.
Impact:
- Valid workflows that intentionally reuse shared script files can run with incomplete ZMQ constants.
- This can cause incorrect runtime wiring even though workflow parsing succeeds.