Skip to content

v1.6.1

Latest

Choose a tag to compare

@beslst beslst released this 15 Jul 15:12

What's Changed

Features

  • Correct distributor name in headless mode: When adding packages to a .plcproj via the headless automation interface, Twinpack now reads the locally installed TwinCAT library cache to look up the exact distributor name and namespace registered on this machine (e.g. Beckhoff Automation GmbH instead of Beckhoff Automation).
  • Namespace normalization in headless mode: Library namespaces are now written with underscores instead of spaces (e.g. SPT_Base_Types instead of SPT Base Types) to match TwinCAT's internal representation and avoid reference mismatches.
  • Local repository cache for faster library lookup: The local TwinCAT library cache (.cache files under Managed Libraries) is now read once per session and reused, making repeated IsPackageInstalled checks significantly faster.
  • resolve CLI verb: New twinpack resolve command lets you check whether a specific package can be found for a given version, branch, target, and configuration without performing a full restore.
  • JSON output mode: All CLI commands now support --output json to emit machine-readable JSON, suitable for scripting and CI pipelines.
  • .tcconnprj project type support: TwinCAT connection projects (.tcconnprj) are now recognized as a valid project type in config.json.
  • type property on projects: config.json projects can now declare a type field, making the schema more generic for future project types.
  • Ignore default resolution when collecting references: A new option allows reference collection to skip the DefaultResolution entries in .plcproj files when they are not relevant.
  • Log applied package parameters: Twinpack now logs a message when package parameters are applied during install or restore, making CI output easier to trace.

Bug Fixes

  • --json / --output json polluting stdout: The startup banner was printed to stdout instead of stderr when JSON output mode was active, breaking downstream consumers of the JSON stream. It is now always written to stderr.
  • search and resolve require no config.json: The CLI no longer aborts with a missing-config error when running search or resolve outside a Twinpack project directory.
  • Registry skips malformed releases: If one release entry in the registry has invalid or missing data, the registry now logs a warning and continues processing the remaining releases instead of halting entirely.
  • ignoreDefaultResolution flag removed: The flag was no longer used internally but was still being read and passed around, which could cause unexpected behaviour. It has been cleaned up.

Full Changelog: v1.4.9 → v1.6.1