- Version Number:
- I have verified that any changes to the
rc.md
template in this diff have been manually added to this pull request.
I have verified that the following files have the same minor version number:
-
alamos/py
-
alamos/ts
-
client/py
-
client/ts
-
console
-
drift
-
freighter/py
-
freighter/ts
-
media
-
pluto
-
server
-
x/ts
- Root
package.json
file
I have verified that, when released, the following packages will not conflict with any previously released packages:
-
alamos/py
-
alamos/ts
-
client/py
-
client/ts
-
console
-
drift
-
freighter/py
-
freighter/ts
-
media
-
pluto
-
server
-
x/ts
I have verified that user-facing documentation for each of the following services has been updated to match any changes in the release candidate:
-
reference/cluster
-
reference/concepts
-
reference/console
-
reference/control
-
reference/device-drivers/labjack
-
reference/device-drivers/ni
-
reference/device-drivers/opc-ua
-
reference/python-client
-
reference/typescript-client
I have verified that code examples for each of the following services run correctly:
-
client/py
-
client/ts
- Version number in
examples/node
is up-to-date
- Version number in
- I have used a broken link checker like brokenlinkcheck.com or Dr. LinkCheck to check that all links work on the live website.
- I have verified that release notes exist for this release.
I can successfully:
- Create Channel Modal
- Create a new channel from the command palette.
- Create multiple channels with the "Create More" flag set to true.
- Resources Toolbar
- Open a channel plot by double-clicking it.
- Drag and drop a channel onto a line plot.
- Drag and drop a channel onto the line plot toolbar.
- Context Menu
- Rename a channel.
- Delete a channel.
- Delete multiple channels.
- Group channels.
- Set an alias for a channel under a range.
- Clear an alias for a channel under a range.
- Copy a link to a channel.
- Search and Command Palette
- Open a channel plot by its name.
- Open the "Create Channel" modal.
- Open a channel plot from a link.
- Rename a channel and ensure the change synchronizes properly across:
- Resources Toolbar
- Line Plot Visualization Toolbar
- Log Visualization Toolbar
- Schematic Visualization Toolbar
- Task Configuration Dialog
- Set an alias for a channel and ensure the change synchronizes properly across:
- Resources Toolbar
- Line Plot Visualization Toolbar
- Log Visualization Toolbar
- Schematic Visualization Toolbar
- Task Configuration Dialog
- Remove an alias for a channel and ensure the change synchronizes properly across:
- Resources Toolbar
- Line Plot Visualization Toolbar
- Log Visualization Toolbar
- Schematic Visualization Toolbar
- Task Configuration Dialog
I can successfully:
- Create Calculated Channel Modal
- Create a new channel from command palette.
- Resources Toolbar
- Open a channel plot by double-clicking it.
- Drag and drop a channel onto a line plot.
- Drag and drop a channel onto the line plot toolbar.
- Context Menu
- Rename a channel.
- Delete a channel.
- Delete multiple channels.
- Group channels.
- Set an alias for a channel under a range.
- Clear an alias for a channel under a range.
- Copy a link to a channel.
- Edit a calculation
- Search and Command Palette
- Open a channel plot by its name.
- Open the "Create Channel" modal.
- Using Calculated Channels
- Plot a basic calculated channel.
- Plot a nested calculated channel.
- Intentionally create channel with an erroneous expression, plot it amke sure the server/console remains stable. Currently expect error to be logged in server.
- Plot a calculated channel that uses channels with hyphenated names.
- Run and plot channels from python calc_channel_stress.py setting
--rate
with- 10hz
- 100hz
- 1000hz
I can successfully:
- Connect Cluster Modal
- Test a cluster connection.
- Connect to a cluster.
- Dropdown
- Add a new cluster.
- Connect to a cluster by selecting it.
- Disconnect from a cluster by selecting it.
- View the default local cluster in the selector.
- View the default demo cluster in the selector.
- Context Menu
- Connect to a cluster.
- Disconnect the active cluster.
- Rename a cluster.
- Remove a cluster.
- Copy a link to a cluster.
- Search and Command Palette
- Open the "Connect Cluster" modal.
- Open a cluster from a link.
- Receive meaningful feedback when a cluster connection fails.
I can successfully:
- Resources Toolbar
- Context Menu
- Group devices.
- Configure an unconfigured device.
- Rename a device.
- Delete a device.
- Context Menu
I can successfully:
- Open documentation from the command palette.
- Open documentation from the question mark icon.
- Close and reopen documentation.
I can successfully:
- Open the "Edit Label" modal from the command palette.
- Add a new label.
- Edit an existing label's name.
- Change the color of an existing label.
- Rename a label and ensure the change synchronizes with the range toolbar.
- Change a label's color and ensure the change synchronizes with the range toolbar.
I can successfully:
- Drag and drop a mosaic leaf into a new window.
- Rename a tab by double-clicking its name.
- Close layout tabs by clicking the close icon.
- Context Menu
- Split a mosaic horizontally.
- Split a mosaic vertically.
- Focus on a leaf.
- Open a leaf in a new window.
- Rename a tab with
Cmd + E
. - Close layout tabs with
Cmd + W
. - Focus using
Cmd + L
. - Open in a new window with
Cmd + O
. - Search and Command Palette
- Toggle the color theme.
I can successfully:
- Create a new line plot from the mosaic.
- Visualization
- Plot a historical range of data.
- Plot a live range of data.
- Move channels between axes.
- Adjust the line thickness.
- Relabel a line.
- Set the plot title.
- Download a range as a CSV.
- Create a range from line plot selection.
- Use the measuring tool on the line plot.
- Rename a line plot from its tab title.
- Export a line plot.
- Copy a link to a line plot - copy links to local plots.
- Resources Toolbar
- Open a plot by selecting it.
- Drag a plot onto the mosaic.
- Context Menu
- Rename a plot.
- Delete a plot.
- Delete multiple plots.
- Export a plot.
- Export multiple plots.
- Copy a link to a plot.
- Search and Command Palette
- Open an existing line plot.
- Create a new line plot.
- Open the "Import Line Plot" dialog.
- Open a line plot from its link.
- Import a line plot.
- Rename a line plot and ensure synchronization across:
- Resources Toolbar
- Mosaic Tab
- Visualization Toolbar
I can successfully:
- Create a new log from the visualization selector.
- Visualization
- Rename a log from its mosaic tab title.
- Scroll to view historical data.
- Stream data from a virtual channel.
- Stream data from a persisted channel.
- Pause and resume scrolling using the streaming icon in the top right.
- Switch the logging channel and observe data switching.
- Preserve log data from a virtual channel in the buffer.
- Copy a link to a log.
- Resources Toolbar
- Open a log by selecting it.
- Drag a log onto the mosaic.
- Context Menu
- Rename a log.
- Delete a log.
- Delete multiple logs.
- Group logs.
- Copy a link to a log.
- Search and Command Palette
- Create a new log.
- Open an existing log.
- Open a log from its link.
- Rename a log and ensure synchronization across:
- Visualization Toolbar
- Resources Toolbar
- Mosaic Tab Name
I can successfully:
- Create a new group and move resources to it.
- Move resources between groups.
- Rename a group.
- Delete a group.
I can successfully:
- As a user without schematic permissions:
- Cannot open the "Create Schematic" dialog from the command palette.
- Cannot create a new schematic from the workspace resources toolbar.
- Cannot import a schematic from the workspace resources toolbar.
- Cannot import a schematic via drag-and-drop.
- Can actuate valves on a schematic.
- Cannot switch to edit mode on a schematic.
- As a user without admin permissions:
- Cannot open the "Register User" dialog from the command palette.
- Cannot delete users, open the permissions dialog, or change a username from the resources toolbar.
I can successfully:
- Create Range Modal
- Create a new local range.
- Create a new persisted range.
- Create a range with a parent range.
- Add labels while creating a range.
- Range Details
- Rename a range.
- Rename a range from the tab name.
- Change start and end times.
- Add labels.
- Set metadata.
- Open a link from metadata.
- Delete metadata.
- Add child ranges.
- Open snapshots.
- Navigate to and from child ranges.
- Search and Command Palette
- Open an existing range layout window.
- Open the "Create Range" dialog.
- Range Toolbar
- Open the "Create Range" modal from the toolbar.
- Switch the active range by clicking it.
- Context Menu
- Open the "Create Range" modal.
- Open the range layout tab.
- Set an active range.
- Remove an active range.
- Rename a range.
- Open the "Create Range" modal with a child range.
- Add to the active line plot.
- Add to a new line plot.
- Remove from the range toolbar.
- Delete a persisted range.
- Copy a link to a persisted range.
- Save a local range to Synnax.
- Resources Toolbar
- Open the range overview dialog by double-clicking a range.
- Context Menu
- Set an active range.
- Remove an active range.
- Open the range layout.
- Rename a range.
- Open the "Create Range" modal with a child range.
- Group ranges.
- Add to the active line plot.
- Add multiple ranges to the active line plot.
- Add to a new line plot.
- Add multiple ranges to a new line plot.
- Delete a range.
- Delete multiple ranges.
- Copy a link to a range.
- Open a range from its link.
- Rename a range and ensure synchronization across:
- Resources Toolbar
- Range Overview
- Range Overview Tab Name
- Ranges Toolbar
- Change the time of a range and ensure synchronization across:
- Range Details
- Ranges Toolbar
- Add or remove child ranges and ensure synchronization across:
- Resources Toolbar
- Range Details
- Snapshot a schematic or task and ensure synchronization across:
- Resources Toolbar
- Range Details
- Ensure channel aliases synchronize correctly across:
- Resources Toolbar
- Line Plot
- Line Plot Toolbar
- Task Configuration Dialog
- Schematic Value Tooltip
I can successfully:
- Create a new schematic from the mosaic.
- Visualization
- Display live data on a value.
- Actuate a valve.
- Select and change the color of multiple elements.
- View the list of writers in control on the schematic.
- Acquire absolute control over an autosequence.
- Copy a link.
- Export a schematic.
- Resources Toolbar
- Double-click a schematic to load it.
- Drag a schematic onto the mosaic to load it.
- Context Menu
- Export a schematic.
- Export multiple schematics.
- Rename a schematic.
- Delete a schematic.
- Delete multiple schematics.
- Snapshot a schematic to the active range.
- Snapshot multiple schematics to the active range.
- Make a copy of a schematic.
- Copy multiple schematics.
- Copy a link to a schematic.
- Search and Command Palette
- Open an existing schematic.
- Open the "Create Schematic" dialog.
- Import a schematic from a file.
- Rename a schematic and ensure synchronization across:
- Mosaic Tab
- Resources Toolbar
- Visualization Toolbar
- Rename a schematic snapshot and ensure synchronization across:
- Mosaic Tab
- Resources Toolbar
- Visualization Toolbar
- Range Details Overview
I can successfully:
- Create a new control sequence from the mosaic.
- Search and Command Palette
- Create a new control sequence.
- Open an existing control sequence.
- Context Menu
- Rename a control sequence.
- Delete a control sequence.
- Sequence Editing
- Edit a control sequence and see auto-complete suggestions for channels.
- Edit a control sequence and see auto-complete suggestions for the following
built-in functions:
-
elapsed_time_within
-
elapsed_time
-
iteration
-
set
-
set_authority
-
- Accept channel auto-complete suggestions and see the correct channel populated in the "read_from" or "write_to" fields.
- Manually configure the
read_from
andwrite_to
fields. - Set the sequence control rate.
- Configure, start, and correctly operate a minimal bang bang control sequence.
I can successfully:
- Resources Toolbar
- Open task configuration by double-clicking.
- Context Menu
- Snapshot a task to the active range.
- Snapshot multiple tasks to the active range.
- Rename a task.
- Group tasks.
- Delete a task.
- Delete multiple tasks.
- Copy a link to a task.
- Tasks Toolbar
- Pause and play a task.
- Open task configuration by double-clicking.
- Context Menu
- Pause a task.
- Start a task.
- Open task configuration.
- Copy a link to a task.
- Search and Command Palette
- Open an existing task configuration.
- Open a task configuration from a link.
- Rename a task and ensure synchronization across:
- Resources Toolbar
- Task Toolbar
- Task Configuration Tab Name
- Task Configuration Title
- Rename a task snapshot and ensure synchronization across:
- Resources Toolbar
- Task Toolbar
- Task Configuration Tab Name
- Task Configuration Title
I can successfully:
- Resources Toolbar
- Open the "Permissions" dialog.
- Rename a user.
- Delete a user.
- Delete multiple users.
- Search and Command Palette
- Register a new user.
- Grant permissions to a user from the resources toolbar.
- Change a user's username and log in with the new username.
I can successfully:
- Create a new workspace.
- Import a workspace by drag and dropping from a directory.
- Workspace Selector
- Create a new workspace.
- Switch workspaces in the selector.
- Clear workspaces from the selector.
- Resources Toolbar
- Switch workspaces in the resources view.
- Context Menu
- Rename a workspace.
- Delete a workspace.
- Export a workspace.
- Create a new line plot in a workspace.
- Create a new log in a workspace.
- Create a new schematic in a workspace.
- Import a line plot.
- Import a schematic.
- Import a log.
- Import a table.
- Create a new table in a workspace.
- Open a workspace from a link.
- Search and Command Palette
- Open the "Create Workspace" dialog.
- Import a workspace.
- Open an existing workspace.
- Rename a workspace and ensure synchronization across:
- Resources Toolbar
- Workspace Selector
- Create a workspace in a previous version of Synnax, add visualizations, and open it in the release candidate.
I can successfully:
- View the correct version in the bottom navbar.
- Verify that the auto-update functionality works correctly.
I can successfully:
- Run the driver for long periods with minimal memory leakage.
- Handle invalid device configurations and receive meaningful feedback:
- Invalid ports.
- Incorrect task type for devices (e.g., analog read on an analog output device).
- Out-of-range values.
- Multiple tasks using the same channel.
- Device disconnection during a running task.
- Shut down the server (
Ctrl + C
) without errors from the driver routine.
I can successfully:
- Enable and disable LabJack integration when starting the server.
- Recognize and connect to a LabJack device available locally.
- Save device configuration.
- Run the driver without the LabJack library installed.
- Read Task
- Plot live analog data.
- Plot live digital data.
- Tare data from multiple channels on a device.
- Plot data with a linear scale applied.
- Stop, start, and reconfigure tasks multiple times.
- Enable and disable data saving.
- Ensure no lag between sensor input and data written to the server.
- Configure and run a read task for a thermocouple.
- Run a read task with thermocouples, digital, and analog channels.
- Disconnect a device while reading, reconnect it, and read data after reconfiguration.
- Reliable data plotting at the following sample rates:
- 1 Hz
- 10 Hz
- 100 Hz
- 1 kHz
- 10 kHz
- 50 kHz
- Write Task
- Begin a write task and perform control actions with a schematic:
- Actuate a valve via a digital input.
- Set an analog output to a specific voltage via a setpoint.
- Stop, start, and reconfigure the task.
- Disconnect a device while writing, reconnect it, and read data after reconfiguration.
- Configure response time based on the specified state rate:
- 1 Hz (should have a visible delay)
- 20 Hz (should be nearly immediate)
- Begin a write task and perform control actions with a schematic:
- Configure simultaneous write and read tasks and stop or delete either without affecting the other.
I can successfully:
- Enable and disable NI integration when starting the server.
- Recognize and connect to a National Instruments device locally.
- Recognize and connect to National Instruments devices over the network.
- Recognize and connect to physical and simulated devices.
- Disconnect a physical device while a task is running without causing faults.
- Ignore chassis and view devices connected to it.
- Run the driver without NI-DAQmx and SysCfg libraries installed.
- Receive feedback when trying to create an NI task on a machine lacking the necessary libraries.
- Handle invalid device configurations and receive meaningful feedback:
- Invalid ports.
- Incorrect task type for devices.
- Out-of-range values.
- Multiple tasks using the same channel.
- Shut down the driver without errors during embedded operation.
- Run various tasks on a single device.
- Run multiple tasks across multiple devices concurrently.
- Reliable data streaming at the following sample rates:
- 1 Hz
- 10 Hz
- 100 Hz
- 1 kHz
- 5 kHz
- Configure the following stream rates:
- 1 Hz
- 10 Hz
- 30 Hz
- Analog Read Task
- Plot live data.
- Tare data.
- Handle device disconnection during active tasks with appropriate feedback.
- Start multiple tasks at different times and view live data.
- Enable and disable data saving.
- Enabled auto-start, and ensure that the task automatically starts after configuration.
- Ensure no lag between sensor input and server data recording.
- Configure and run an analog read task for the following channels:
- Current (NI-9203)
- Resistance (NI-9219)
- RTD (NI-9217)
- All RTD types and resistance configurations.
- Built-in temperature sensor (USB-6289)
- Thermocouple (NI-9211A)
- All thermocouple types and CJC options.
- Voltage (USB-6000)
- Terminal configurations:
- Default (USB-6000)
- Reference Single-Ended (USB-6000)
- Non-Referenced Single-Ended (NI-9206)
- Differential (NI-9206)
- Pseudo-Differential (NI-9234)
- Terminal configurations:
- Apply the following scales:
- Linear
- Map
- Digital Read Task
- Plot live data.
- Stop, start, and reconfigure tasks.
- Enable and disable data saving.
- Digital Write Task
- Perform control actions using a schematic.
- Stop, start, and reconfigure tasks.
- Handle device disconnection during active tasks with feedback.
- Configure response time for specified state rates:
- 1 Hz (visible delay)
- 20 Hz (near-instant response)
I can successfully:
- Enable and disable OPC UA integration when starting the server.
- Connect to an unencrypted OPC UA server.
- Connect to an encrypted OPC UA server.
- Create additional channels and move them to existing sampling groups.
- Move and rename channels.
- Save the device configuration.
- Read Task
- Single Sampling
- Read from multiple channels.
- Autogenerate timestamps on the driver.
- Read timestamps from the OPC UA server.
- Array Sampling
- Read from multiple channels.
- Test the following array sizes:
- 1
- 10
- 100
- Autogenerate timestamps on the driver.
- Read timestamps from the OPC UA server.
- Avoid driver crashes when improper array sizes are specified.
- Obtain recommended Synnax channels based on the configured OPC UA node.
- Connect to and read data from a physical device.
- Maintain driver operation during device disconnection or channel removal while a task is running.
- Enable and disable data saving.
- Pause a task for an hour and resume without reconfiguration.
- Single Sampling
- Write Task
- Perform control and verify changes on the connected OPC UA server.
- Stop, start, and reconfigure tasks.
- Enable and disable data saving.
- Leave a write task idle for an hour and perform control without losing connection.
- Perform a write operation on an encrypted server.