synnax
synnax copied to clipboard
Synnax v0.31.0 RC
Release Candidate Pull Request Template
Key Information
- Platform Version: Synnax v0.31
Versioning
Public Packages
Version Consistency
I have verified that the following packages have the same minor version number:
- [x] x/ts
- [x] alamos/ts
- [x] freighter/ts
- [x] client/ts
- [x] alamos/py
- [x] freighter/py
- [x] client/py
- [x] synnax server
- [x] drift
- [x] pluto
- [x] console
- [x] root package.json file
Version Conflicts
I have verified that, when released, the following packages will not conflict with any previously released packages:
- [x] x/ts
- [x] alamos/ts
- [x] freighter/ts
- [x] client/ts
- [x] alamos/py
- [x] freighter/py
- [x] client/py
- [x] synnax server
- [x] drift
- [x] pluto
- [x] console
CI Tests
- [ ] I have verified that all CI tests pass.
CD Builds
- [ ] I have verified that all CD builds pass.
User Documentation
Content Changes
I have verified that user facing documentation for each of the following services has been updated to match any changes in the release candidate. If not, I will note why the documentation has been left stale.
- [x] reference/concepts
- [x] reference/cluster
- [x] reference/python-client
- [x] reference/typescript-client
- [x] reference/console
- [x] reference/control
- [x] reference/pluto
- [x] reference/device-drivers/opcua
- [x] reference/device-drivers/ni
Examples
I have verified that code examples for each of the following services run correctly after releasing new versions of the corresponding packages:
- [x] client/py - still need to test NI
- [x] client/ts
- [x] version number in examples/node is up-to-date
- [x] pluto
Console
Auto Update
- [x] I have verified that the nightly builds of the console are able to auto-update correctly.
Cluster Connection
I can successfully:
- [x] Open connect a cluster dialog from cluster toolbar.
- [x] Open connect a cluster dialog from command search bar.
- [x] Test a cluster connection from connect a cluster dialog.
- [x] Connect a cluster by selecting it from cluster toolbar.
- [x] Connect a cluster by opening context menu from cluster toolbar.
- [x] Disconnect from a cluster by selecting it from cluster toolbar.
- [x] Disconnect a cluster by selecting it from the cluster toolbar.
- [x] Copy a link to a cluster and open it from outside Synnax.
- [x] Remove a cluster.
- [x] Rename a cluster.
Labels
- [x] I can successfully open the label editing dialog from the command palette.
- [x] I can add a new label.
- [x] I can edit an existing label.
Ranges
I can successfully:
- [x] Create Range Modal
- [x] Create a new local range.
- [x] Create a new persisted range.
- [x] Set parent range
- [x] Add labels
- [x] Rename existing range
- [x] Change times on existing range
- [x] Range Layout
- [x] Rename range.
- [x] Rename range from tab.
- [x] Change start and end times.
- [x] Add labels.
- [x] Set metadata.
- [x] Delete metadata.
- [x] Add child ranges.
- [x] Open snapshots.
- [x] Navigate to and from child ranges
- [x] Search and Command Palette
- [x] Open an existing range window
- [x] Open create range dialog
- [x] Range Toolbar
- [x] Open create range modal from toolbar link when no range exists
- [x] Switch the active range by clicking
- [x] Context Menu
- [x] Open create range modal
- [x] Rename range
- [x] Set active range
- [x] Open create range modal with child range
- [x] Add to active line plot
- [x] Add to new line plot
- [x] Remove from range toolbar
- [x] Delete persisted range
- [x] Copy link of persisted range
- [x] Save local range to Synnax
- [x] Resources Toolbar
- [x] Open the range overview dialog by clicking on a range
- [x] Context Menu
- [x] Set active range
- [x] Rename range
- [x] Open create range modal with child range
- [x] Group ranges
- [x] Add to active line plot
- [x] Add multiple ranges to active line plot
- [x] Add to new line plot
- [x] Add multiple ranges to new line plot
- [x] Delete range
- [x] Delete multiple ranges
- [x] Copy link to range
- [x] Open a range from its url
- [x] Make changes to a range with resources toolbar, overview, and ranges toolbar open and see changes propagate to all three.
Channels
I can successfully:
- [x] Create a new channel from the search bar.
- [x] Create several channels with the 'Create More' flag set to true.
- [x] Rename a channel in the resources view.
- [x] Delete a channel in the resources view.
- [x] Delete multiple channels in the resources view.
- [x] Set the alias for a channel under a range.
- [x] Clear the alias for a channel under a range.
- [x] Copy a link to a channel in the resources view and open it from outside Synnax.
Line Plots
I can successfully:
- [x] Create a new line plot from the mosaic.
- [x] Move the line plot to a new mosaic.
- [x] Rename a line plot from the resources view.
- [x] Rename a line plot from its tab title.
- [x] Copy the link to a line plot and open it from the resources view.
- [x] Create a new line plot from the search bar.
- [x] Create a new line plot from a workspace in the resources view.
- [x] Plot a historical range of data.
- [x] Plot a live range of data.
- [x] Move channels between axes.
- [x] Adjust the thickness of a line.
- [x] Re-label a line.
- [x] Set the title of the plot.
- [x] Download a range as a CSV.
- [x] Create a range from line plot selection.
- [x] Use the measuring tool on the line plot.
- [x] I can repeatedly start and stop an acquisition read task, and tooltips will appear in the correct location.
Schematics
I can successfully:
- [x] Create a new schematic from the mosaic.
- [x] Create a new schematic from the workspace context menu in the resources view.
- [x] Create a new schematic from the command search bar.
- [x] Move the schematic to a new mosaic.
- [x] Download a schematic from the context menu.
- [x] Drag a schematic from the files folder into the mosaic and have it load.
- [x] Rename a schematic in the resources view.
- [x] Delete a schematic in the resources context menu.
- [x] Snapshot a schematic in the resources context menu.
- [x] Copy a schematic in the resources context menu.
- [x] Create a new schematic from the search bar.
- [x] Add a value to the schematic and display live data.
- [x] Add a valve to the schematic and actuate it.
Workspaces
I can successfully:
- [x] Create a new workspace.
- [x] Switch workspaces in the selector.
- [x] Switch workspaces in the resources view.
- [x] Delete a workspace in the resources view.
- [x] Create a new line plot in a workspace.
- [x] Create a new schematic in a workspace.
- [x] Import a schematic from the context menu.
- [x] Rename a line plot in a workspace.
- [x] Rename a schematic in a workspace.
- [x] Delete a line plot in a workspace.
- [x] Delete a schematic in a workspace.
- [x] Create a workspace in a previous version of Synnax, add visualizations, and open it in the release candidate.
Resources
I can successfully:
- [x] Create a new group and move resources to it.
- [x] Move resources between groups.
- [x] Rename a group.
- [x] Delete a group.
Documentation
I can successfully:
- [x] Open the documentation from the command search bar.
- [x] Open the documentation from the question mark icon.
Devices
I can successfully:
- [x] Group devices in the resources view.
- [x] Rename a device in the resources view.
- [x] Delete a device in the resources view.
Tasks
I can successfully:
- [x] Group tasks in the resources view.
- [x] Rename a task in the resources view.
- [x] Delete a task in the resources view.
OPC UA
Configuration
I successfully:
- [ ] Updated the license on TwinCat/Beckhoff before continuing QA
I can successfully:
- [x] Enable and disable OPC UA integration when starting the server.
- [x] Connect to an OPC UA server running unencrypted.
- [ ] Connect to an OPC UA server running encrypted.
- [ ] Create additional channels and move them to existing sampling groups.
- [x] Move and rename channels.
- [x] Save the device configuration.
Read Task
I can successfully:
- [x] Single Sampling - Read from multiple channels.
- [x] Single Sampling - Auto-generate timestamps on the driver.
- [x] Single Sampling - Read timestamps from the OPC UA server.
- [x] Array Sampling - Read from multiple channels in array-sampling mode.
- [x] Array Sampling - Read from multiple channels in array-sampling mode with different
array sizes.
- [x] 1
- [x] 10
- [x] 100
- [x] Array Sampling - Auto-generate timestamps on the driver.
- [x] Array Sampling - Read timestamps from the OPC UA server.
- [x] Array Sampling - The driver will not crash if I specify an improper array size.
- [x] Channel Selection - The read task dialog will recommend synnax channels based on the configured OPC UA node.
- [ ] Connect to a physical device and read data from it.
- [ ] Maintain operation of the driver when a device is disconnected or a channel is removed from the device while it is running.
- [ ] Enable and disable data saving at will.
- [ ] Leave a task paused for an hour and resume it again without needing to reconfigure.
Write Task
I can successfully:
- [ ] Perform control and see changes reflected on the connected OPC UA server.
- [ ] Stop, start and reconfigure task at will.
- [ ] Enable and disable data saving at will.
- [ ] Leave a write tasking played but idle for an hour and perform control without losing connection.
- [ ] Perform a write on an encrypted server.
National Instruments
Configuration
I can successfully:
- [ ] Enable and disable NI integration when starting the server.
- [x] Recognize and connect to a National Instruments device available on local machine.
- [x] Recognize and connect to a National Instruments devices available on network.
- [x] Recognize and connect to physcial and simulated devices.
- [ ] Disconnect a physical device from the machine with a task running without faulting.
- [x] Save device configuration.
- [ ] Not see chassis devices connected to the machine
- [ ] See devices connected to a chassis
- [x] Run the driver without the Daqmx and Syscfg libraries installed on the machine.
- [ ] Get feedback when trying to create an NI task on a machine that doesn't have the required libraries installed.
Read Task
I can successfully:
- [x] Plot live data from an analog read task.
- [x] Plot live data from a digital read task.
- [x] Stop, start and reconfigure task at will.
- [ ] Disconnect a device while tasks are active and provide meaningful feedback in the task dialogue.
- [ ] Begin several tasks at different times and see them all plotting live data.
- [ ] Enable and disable data saving at will.
- [ ] verify there is no lag between sensor input and data written to sever.
Special Purpose Channels
- [ ] I can succesfully configure and run an analog read task for each of the following
channels:
- [x] Acceleration
- [ ] Acceleration 4 wire
- [ ] Bridge
- [ ] All bridge configurations
- [ ] Charge
- [ ] Current
- [ ] Force bridge polynomial
- [ ] Force bridge table
- [ ] Force bridge two point linear
- [ ] Force iepe
- [x] Microphone
- [ ] Pressure bridge polynomial
- [ ] Pressure bridge table
- [x] Pressure bridge two point linear
- [ ] Resistance
- [ ] RTD
- [ ] All RTD types.
- [ ] All resistance configs.
- [ ] Strain gauge
- [ ] all strain guage configurations
- [ ] Built in temperature sensor
- [x] Thermocouple
- [x] All thermocouple types.
- [x] All cjc options.
- [ ] Torque bridge polynomial
- [ ] Torque bridge table
- [ ] Torque bridge two point linear
- [ ] Velocity iepe
- [ ] Voltage
- [ ] All terminal configurations.
- [ ] I can sucessfully configure the following scales:
- [ ] Linear
- [ ] Map
Write Task
I can successfully:
- [ ] Begin a digital write task and perform control actions with a schematic.
- [ ] Stop, start and reconfigure task at will.
- [ ] Disconnect a device while tasks are active and provide meaningful feedback in the task dialogue.
- [ ] Configure response time based on state rate specified:
- [ ] 1 Hz (should have visible delay in response)
- [ ] 20 Hz (should feel almost immediate)
General Usage
I can successfully:
- [ ] Run multiple types of tasks on a single device
- [ ] Run multiple tasks across multiple devices simultaneously
- [ ] Reliably stream data at the following sample rates:
- [ ] 1 Hz
- [ ] 10 Hz
- [ ] 50 Hz
- [ ] 100 Hz
- [ ] 500 Hz
- [ ] 1 kHz
- [ ] 2 kHz
- [ ] 5 kHz
- [ ] Configure the following stream rates:
- [ ] 1 Hz
- [ ] 5 Hz
- [ ] 10 Hz
- [ ] 20 Hz
- [ ] 30 Hz
Error Handling
I can successfully:
- [ ] Pass in an invalid device configuration and receive meaningful feedback.
- [ ] Invalid ports
- [ ] Invalid task type for devices (e.g. analog read on a analog output device)
- [ ] Out of range values
- [ ] Multiple tasks using the same channel
- [ ] Shut down the driver with an embedded driver without receiving an error from the driver routine.
Other
I can successfully:
- [x] Toggle the color theme from the command search bar.
- [ ] Run the driver for long periods of time with minimal memory leakage.
:warning: Please install the to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
Attention: Patch coverage is 25.43651% with 1879 lines in your changes missing coverage. Please review.
Project coverage is 45.80%. Comparing base (
f48a104) to head (44b8393). Report is 1 commits behind head on main.
:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@ Coverage Diff @@
## main #840 +/- ##
==========================================
- Coverage 46.33% 45.80% -0.54%
==========================================
Files 1088 1103 +15
Lines 67897 69895 +1998
Branches 3513 3551 +38
==========================================
+ Hits 31461 32014 +553
- Misses 35384 36823 +1439
- Partials 1052 1058 +6
| Flag | Coverage Δ | |
|---|---|---|
| aspen | 50.40% <ø> (ø) |
|
| cesium | 75.53% <ø> (ø) |
|
| clientpy | 86.04% <ø> (ø) |
|
| clientts | 62.90% <92.24%> (+1.54%) |
:arrow_up: |
| drift | 26.27% <50.00%> (-0.03%) |
:arrow_down: |
| freightergo | 26.30% <0.00%> (+0.37%) |
:arrow_up: |
| freighterpy | 81.03% <ø> (ø) |
|
| freighterts | 83.25% <ø> (ø) |
|
| gox | 60.06% <ø> (-0.07%) |
:arrow_down: |
| pluto | 33.99% <14.64%> (-1.34%) |
:arrow_down: |
| synnax | 28.94% <0.00%> (+0.35%) |
:arrow_up: |
Flags with carried forward coverage won't be shown. Click here to find out more.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.