Twinpack 1.4.2 Is Out

Teilen:

And It’s the Best Reason Yet to Modernize Your TwinCAT Workflow

If you’ve spent any time developing PLC software with TwinCAT 3, you know the drill: libraries get copied around in ZIP files or even USB-memory-sticks, versioning happens in folder names like MyLib_v2_FINAL_fixed, and setting up a new machine means hunting down the right library version from a shared drive that may or may not be up to date.

The rest of the software world solved this problem decades ago. Python has pip. JavaScript has npm. Rust has Cargo. Now TwinCAT has Twinpack and version 1.4.2 makes it more robust, faster, and easier to integrate into professional development workflows than ever before.

What Is Twinpack?

First, lets wrap up, Twinpack is a package manager for TwinCAT 3 libraries. Instead of manually copying .library files between machines or projects, you declare your dependencies in a config file and let Twinpack fetch, cache, and install them automatically, directly inside TcXaeShell 3.1.4024 and 3.1.4026.

If you’ve never used a package manager before, the mental model is simple: you tell Twinpack what you need, and it handles where to get it, which version to use, and how to install it. No more „works on my machine“ problems.

Twinpack is available as CLI tool to be integrated into CI/CD pipelines as well as a UI version directly integrated into TcXaeShell. It is open source and can be used in on premise hosted environments using Nuget packages, so you dont have to publish your internal libraries somewhere else.

Why Does This Matter for TwinCAT Developers?

The automation and PLC world has traditionally lagged behind the software industry when it comes to tooling. That’s not a criticism, it reflects the nature of the domain. PLC code runs on machines that can’t be updated carelessly, and stability is prized above all else.

But that caution has come at a cost. Many TwinCAT shops still operate without:

  • Version control for their libraries
  • Reproducible builds: the ability to rebuild a project from scratch and get the exact same result
  • Automated testing or CI/CD pipelines
  • A clear way to share libraries across projects or teams

Twinpack directly addresses all of these. With a config.json in your repository, any developer (or build server) can run twinpack restore and have the correct library versions installed in seconds. No manual steps. No guesswork.

What’s New in 1.4.2

This release is a significant quality-of-life update. Here’s what changed and why it matters in practice.

  • Monorepo and Submodule Support
    This is the headline feature for larger teams. You can now declare submodules in your config.json, allowing a single top-level repository to manage multiple Twinpack packages as individual components. If your organization has several teams working on shared libraries within one Git repository, this unlocks a much cleaner structure for dependency management across the board.
  • Repository Toggle Without Removal
    Previously, if you wanted to temporarily stop using a package source (say, switching from a staging registry to production), you had to delete it from your config entirely and remember to add it back later. Now, repositories can be disabled and re-enabled with a simple flag in sourceRepositories.json. Small change, big quality-of-life improvement.
  • Faster Catalog Loads
    Package metadata is now cached more aggressively, and API requests to package servers are batched and deduplicated. In large solutions with many dependencies, this means the package catalog loads noticeably faster and generates far less network traffic. If you’ve been running Twinpack on a slow corporate network or VPN, you’ll feel this immediately.
  • Smarter restore for Latest Versions
    There was a bug where restore would fail if a dependency’s version was listed as null in config.json (which is the natural way to say „give me the latest“). Instead of resolving the latest available version, it would just fail. This is now fixed, null correctly resolves to whatever the latest published version is.
  • Better Error Messages and Config Validation
    config.json is now validated more strictly on load, with clearer error messages when something is malformed. This might sound minor, but if you’ve ever spent 30 minutes debugging why Twinpack isn’t behaving as expected only to find a typo in your config, you’ll appreciate this.
  • Improved Stability and Edge Case Handling
    The 1.4.2 release also fixes a handful of bugs that showed up in real-world use
  • Race conditions when resolving packages that target multiple TwinCAT configurations or branches simultaneously
  • DTE version fallback
    if the Visual Studio automation interface (DTE 15) is present but broken due to a partial install, Twinpack now gracefully falls back to another available version rather than halting
  • Trailing slash tolerance on repository URLs
    Twinpack no longer rejects a URL just because it doesn’t end with /
  • Consistent error handling across all library types when metadata fields like version or company are missing.

Getting Started with Twinpack

For teams that want to go further, Twinpack is a foundational piece of a proper CI/CD pipeline for TwinCAT. With reproducible dependency resolution, you can:

  • Build and test on a CI server
    (e.g. GitHub Actions, GitLab CI) without manually installing libraries on each agent
  • Pin library versions
    so a build from six months ago still compiles identically today
  • Publish your own libraries to a Twinpack-compatible registry, making them available to other projects or teams automatically

The automation industry is increasingly moving toward software-defined everything, and the expectations around tooling are rising to match. Twinpack makes it possible to bring TwinCAT development up to the same standard that web, mobile, and embedded software teams already take for granted.

Download

Twinpack 1.4.2 is available now on GitHub: 👉 https://github.com/Zeugwerk/Twinpack/releases/tag/1.4.2.0
If you’re already using Twinpack, this is a recommended update for everyone — the stability fixes and performance improvements alone are worth it. If you’re new to Twinpack, there’s never been a better time to start.