# Change Log

This change log shows the changes made between Workers v4.0 and Workers v5.0 only.

### ~~Workers 5.0 - Dec 2025 Release (TBD)~~

~~Create Example Projects tool~~

* ~~New Feature: GitHub pull additional example projects from W4LV-Community repo added to tool~~
* ~~Improvement: Tool now populates all fields based on example project INI files, located in root directories.~~
* ~~Improvement: example projects created by the tool are now added to the "RecentFiles.projectPathList" key in LabVIEW\.ini~~

~~Worker User Library tool~~

* ~~New Feature: GitHub pull additional Worker User Library items from W4LV-Community repo added to tool. Users can also enter and pull their own Worker User Library repos from GitHub.~~

### Workers v5.0 - Feb 2024 Release

* New tool: Workers 5.0 Debug Server (completely refactored, new UI design, new features)
* New tool: Workers Public API Builder tool
  * Create / Edit Public API Request
  * Create / Edit Public API Request with Reply
  * Create / Edit Public API Response
  * Override Public API MHL cases
* New tool: Create MHL Case tool
  * Create / Edit Local API Request
  * Create / Edit non-Public MHL case
  * Override non-Public API MHL cases
* New tool: Change Worker Properties tool
* New tool: Upgrade to Workers 5.0 project tool
* New feature: Create Asynchronous Launcher VIs (in Create Launcher VI tool)
* New feature: Worker User Library Config File Editor tool (in Worker User Library tool)
* New feature: Worker.lvclass Public Properties accessible through class wire property node
* New feature: Caller's Public Properties accessible through a Worker's Public Properties
* New feature: subWorker's Public Properties accessible through a Worker's Public Properties
* New feature: Launcher VIs tab added to Worker Hierarchy Viewer (WHV) tool
* New feature: Dynamically Loaded Workers loaded from base classes now detected in WHV tool
* New feature: Development tools display progress window whilst tool is performing operations
* New feature: Set Initialization Data VIs automatically wired in to Caller's \<Initialize> MHL case
* New feature: NI VI Icon Library now used to generate all class and VI icons
* New feature: Take header colors from other Worker class option added to tools that create classes
* New feature: Workers at run-time are now identifiable by a backslash-delimited string (WID). This replaces the period-delimited ID string in previous versions of the framework
* New feature: Workers example projects are now available through the Workers tools menu
* New feature: All example projects updated. Now use Workers 5.0 generated API VIs
* New feature: New DMM HAL Demo Project added to example project list

Upgrade tool changes:

* VI name change: Common Cases.vi -> MHL Cases.vi
* VI name change: Setup subWorker.vi -> Setup Statically-Linked subWorkers.vi&#x20;
* VI name change: subWorkers.ctl -> Statically-Linked subWorkers.ctl
* 'subWorkers' cluster in a Worker private data cluster renamed to 'Statically-Linked subWorkers'
* Worker and Worker base class background class icons swapped

Other changes:

* Worker base class template now contains an Initialization Data.ctl
* Worker and Worker base class template now contains a Response Cases.ctl in the class's private data cluster. This cluster is wired to a Worker's Initialization Data.ctl in the Worker's \<Initialize> MHL case
* Worker base class template MHL now contains the standard 4 Worker 'Framework Cases'
* Create Base Class tool now add class icon header string to class XML file
* Main VI ref added to Worker Public Properties
* Caller added to Worker Public Properties
* subWorkers array added to Worker Public Properties
* Quickdrop Shortcut Ctrl+9 now opens Create MHL Case tool
* Worker detection method changed in development tools, now by class inheritance and not from Alias tag in Worker class XML file
* Worker Alias string written to class localized name property of class when new Worker created
* Diagram disable structure removed around VTD node with Initialization Data.ctl in Worker template Main VI's MHL \<Initialize> case.
* When more than one target is detected in the project, the Target selection combo box will appear in the Workers tools menu.
* Worker.lvclass : Callback Easy Reply.vi added to Workers palette.
* All Case Labels added by the scripting tools are now created in Protected Scope.
* All tools that create files can no longer accept \ / : \* ? " < > | characters as inputs
* Worker Alias string can on longer contain \ character.
* Setup subWorker VIs (CNW tool) use ‘To more specific class’ node in place of ‘Preserve run-time class’ node
* Format of Worker User Library config files has changed. Now editable with new editor tool.
* All scripted VIs and CTLs now contain VI descriptions.
* Repeat errors caught by Worker.lvclass:Error Handler.vi are now only ignored IF they have occurred within the same MHL case.
* QD shortcut Ctrl+8 (Goto MHL Case) now uses filename after API prefix to determine associated MHL case name. This now works for (future proof) DD override API VIs also.
* Worker Hierarchy Viewer tool renamed to Worker Call-Chain Viewer.

Workers 5.0 Debug Server changes:

* Task Manger tab -> Application Manager window
* Live Message Log logging to file now possible
* Clear Log option added to Message Log right click menu
* Show/Hide Front Panel option added to Application Manager right click menu
* Client mode removed.
* Error log file generate by Debug Server application.
* Not compatible with Workers v4.0 Debug Client Loader.vi.

Workers 5.0 Debug Client Loader.vi changes:

* Debug Client Loader.vi can now detect and display MHL cases in Worker base classes (if MHL case is not overridden)
* Debug Client Loader.vi has removed “Server Mode” and “Server Mode : Server Port” inputs, and is not compatible with Workers v4.0 Debug Server.

Functional Change:

* Worker.lvclass:Callback Reply.vi now sends upstream error to Worker.lvclass:Enqueue and Collect.vi (or Enqueue Callback Message.vi (poly) in Workers v4.0)

Deprecated / Removed features:

* Message.lvclass and Callback Message.lvclass palette VIs deprecated. Messaging now replaced with the new *strictly typed* Worker API VIs created by the new Worker API tools
* Find subWorkers Queue.vi (poly) deprecated
* Read Worker Attributes.vi (poly) deprecated
* All uses of period-delimited Worker ID strings. Replaced with WID (backslash-delimited string)
* Dynamically Load Worker.vi deprecated. Replaced with Dynamically Load Worker v2.vi.
* \<All subWorkers Initialize> and \<All subWorkers Exited> cases are no longer added to a Workers MHL if they don’t exist, when adding a statically-linked subWorker to a Worker with the Create/Add Worker tool.
* Debug Client Loader.vi has removed “Server Mode” and “Server Mode : Server Port” inputs, and is not compatible with Workers v4.0 Debug Server.

Bug Fixes:

* CNW tool would fail when creating a new Worker in non-English versions of LabVIEW
* CNW tool would create a Worker without a Main.vi when creating a new Worker from a custom template Worker
* Renaming Case Label tool now deletes old Case Label file from disk
* Renaming MHL Case would cause broken link to associated Case Label in VIs that were not loaded into memory
* Case Labels can be added to a virtual folder with user defined scope

Efficiency Improvements:

* A copy of the Worker's Main Data Wire has been removed from Worker.lvclass:Error Handler.vi resulting in improved Worker MHL loop speed.
* Workers 5.0 Debug Server Message Logs process messages at approximately twice the speed of the Workers 4.0 Debug Server, in addition to being separated into Debug Client specific processes.
