What's Changed
Features
- Correct distributor name in headless mode: When adding packages to a
.plcprojvia 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 GmbHinstead ofBeckhoff Automation). - Namespace normalization in headless mode: Library namespaces are now written with underscores instead of spaces (e.g.
SPT_Base_Typesinstead ofSPT Base Types) to match TwinCAT's internal representation and avoid reference mismatches. - Local repository cache for faster library lookup: The local TwinCAT library cache (
.cachefiles underManaged Libraries) is now read once per session and reused, making repeatedIsPackageInstalledchecks significantly faster. resolveCLI verb: Newtwinpack resolvecommand 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 jsonto emit machine-readable JSON, suitable for scripting and CI pipelines. .tcconnprjproject type support: TwinCAT connection projects (.tcconnprj) are now recognized as a valid project type inconfig.json.typeproperty on projects:config.jsonprojects can now declare atypefield, making the schema more generic for future project types.- Ignore default resolution when collecting references: A new option allows reference collection to skip the
DefaultResolutionentries in.plcprojfiles 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 jsonpolluting stdout: The startup banner was printed tostdoutinstead ofstderrwhen JSON output mode was active, breaking downstream consumers of the JSON stream. It is now always written tostderr.searchandresolverequire noconfig.json: The CLI no longer aborts with a missing-config error when runningsearchorresolveoutside 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.
ignoreDefaultResolutionflag 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