Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Synnax 0.29.0 Release Candidate #832

Merged
merged 60 commits into from
Sep 17, 2024
Merged

Synnax 0.29.0 Release Candidate #832

merged 60 commits into from
Sep 17, 2024

Conversation

Lham42
Copy link
Contributor

@Lham42 Lham42 commented Sep 16, 2024

Release Candidate Pull Request Template

Key Information

  • Platform Version:

Versioning

Public Packages

Version Consistency

I have verified that the following packages have the same minor version number:

  • x/ts
  • alamos/ts
  • freighter/ts
  • client/ts
  • alamos/py
  • freighter/py
  • client/py
  • synnax server
  • drift
  • pluto
  • console
  • root package.json file

Version Conflicts

I have verified that, when released, the following packages will not conflict with any
previously released packages:

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.

  • reference/concepts
  • reference/cluster
  • reference/python-client
  • reference/typescript-client
  • reference/console
  • reference/control
  • reference/pluto
  • reference/device-drivers/opcua
  • 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:

  • client/py
  • client/ts
    • version number in examples/node is up-to-date
  • pluto

Console

Auto Update

  • I have verified that the nightly builds of the console are able to auto-update
    correctly.

Cluster Connection

I can successfully:

  • Open connect a cluster dialog from cluster toolbar.
  • Open connect a cluster dialog from command search bar.
  • Test a cluster connection from connect a cluster dialog.
  • Connect a cluster by selecting it from cluster toolbar.
  • Connect a cluster by opening context menu from cluster toolbar.
  • Disconnect from a cluster by selecting it from cluster toolbar.
  • Disconnect a cluster by selecting it from the cluster toolbar.
  • Copy a link to a cluster and open it from outside Synnax.
  • Remove a cluster.
  • Rename a cluster.

Labels

  • I can successfully open the label editing dialog from the command palette.
  • I can add a new label.
  • I can edit an existing label.

Ranges

I can successfully:

  • Open create range dialog from command search bar.
  • Open create range dialog from range toolbar.
  • Open create range dialog from context menu in range toolbar.
  • Create a new local range.
  • Create a new persisted range.
  • Set a parent range for a range.
  • Attach labels to a range.
  • Open the range overview dialog from the resources view.
  • Edit range properties from the overview dialog.
  • Edit meta-data properties on the range.
  • Add child ranges to a range.
  • Navigate to and from child ranges on a range.
  • Make a change to the range in the edit dialog and see the changes propagate to the
    overview dialog.
  • Save a local range to Synnax in the range toolbar.
  • Switch the active range in the range toolbar.
  • Load a local range from the search bar.
  • Load a persisted range from the search bar.
  • Rename a range from the range toolbar.
  • Edit a range from the range toolbar.
  • Remove a range from the range toolbar.
  • Delete a persisted range from the range toolbar.
  • Delete a range in the resources view.
  • Delete multiple ranges in the resources view.
  • Set a range as an active range from the resources view.
  • Edit a range from the resources view.
  • Add a range to a plot from the resources view.
  • Copy a link to a range and open it from the resources view.
  • Rename a range from the range toolbar.

Channels

I can successfully:

  • Create a new channel from the search bar.
  • Create several channels with the 'Create More' flag set to true.
  • Rename a channel in the resources view.
  • Delete a channel in the resources view.
  • Delete multiple channels in the resources view.
  • Set the alias for a channel under a range.
  • Clear the alias for a channel under a range.
  • Copy a link to a channel in the resources view and open it from outside Synnax.

Line Plots

I can successfully:

  • Create a new line plot from the mosaic.
  • Move the line plot to a new mosaic.
  • Rename a line plot from the resources view.
  • Rename a line plot from its tab title.
  • Copy the link to a line plot and open it from the resources view.
  • Create a new line plot from the search bar.
  • Create a new line plot from a workspace in the resources view.
  • Plot a historical range of data.
  • Plot a live range of data.
  • Move channels between axes.
  • Adjust the thickness of a line.
  • Re-label a line.
  • Set the title of the plot.
  • Download a range as a CSV.
  • Create a range from line plot selection.
  • Use the measuring tool on the line plot.
  • I can repeatedly start and stop an acquisition read task, and tooltips will appear
    in the correct location.

Schematics

I can successfully:

  • Create a new schematic from the mosaic.
  • Create a new schematic from the workspace context menu in the resources view.
  • Create a new schematic from the command search bar.
  • Move the schematic to a new mosaic.
  • Download a schematic from the context menu.
  • Drag a schematic from the files folder into the mosaic and have it load.
  • Rename a schematic in the resources view.
  • Delete a schematic in the resources context menu.
  • Snapshot a schematic in the resources context menu.
  • Copy a schematic in the resources context menu.
  • Create a new schematic from the search bar.
  • Add a value to the schematic and display live data.
  • Add a valve to the schematic and actuate it.

Workspaces

I can successfully:

  • Create a new workspace.
  • Switch workspaces in the selector.
  • Switch workspaces in the resources view.
  • Delete a workspace in the resources view.
  • Create a new line plot in a workspace.
  • Create a new schematic in a workspace.
  • Import a schematic from the context menu.
  • Rename a line plot in a workspace.
  • Rename a schematic in a workspace.
  • Delete a line plot in a workspace.
  • Delete a schematic in a workspace.
  • Create a workspace in a previous version of Synnax, add visualizations, and open
    it in the release candidate.

Resources

I can successfully:

  • Create a new group and move resources to it.
  • Move resources between groups.
  • Rename a group.
  • Delete a group.

Documentation

I can successfully:

  • Open the documentation from the command search bar.
  • Open the documentation from the question mark icon.

Devices

I can successfully:

  • Group devices in the resources view.
  • Rename a device in the resources view.
  • Delete a device in the resources view.

Tasks

I can successfully:

  • Group tasks in the resources view.
  • Rename a task in the resources view.
  • Delete a task in the resources view.

OPC UA

Configuration

I successfully:

  • Updated the license on TwinCat/Beckhoff before continuing QA

I can successfully:

  • Enable and disable OPC UA integration when starting the server.
  • 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.
  • Move and rename channels.
  • Save the device configuration.

Read Task

I can successfully:

  • Single Sampling - Read from multiple channels.
  • Single Sampling - Auto-generate timestamps on the driver.
  • Single Sampling - Read timestamps from the OPC UA server.
  • Array Sampling - Read from multiple channels in array-sampling mode.
  • Array Sampling - Read from multiple channels in array-sampling mode with different
    array sizes.
    • 1
    • 10
    • 100
  • Array Sampling - Auto-generate timestamps on the driver.
  • Array Sampling - Read timestamps from the OPC UA server.
  • Array Sampling - The driver will not crash if I specify an improper array size.
  • 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.
  • Recognize and connect to a National Instruments device available on local machine.
  • Recognize and connect to a National Instruments devices available on network.
  • Recognize and connect to physcial and simulated devices.
  • Disconnect a physical device from the machine with a task running without faulting.
  • Save device configuration.
  • Not see chassis devices connected to the machine
  • See devices connected to a chassis
  • 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:

  • Plot live data from an analog read task.
  • Plot live data from a digital read task.
  • 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:
    • Acceleration
    • Acceleration 4 wire
    • Bridge
      • All bridge configurations
    • Charge
    • Current
    • Force bridge polynomial
    • Force bridge table
    • Force bridge two point linear
    • Force iepe
    • Microphone
    • Pressure bridge polynomial
    • Pressure bridge table
    • Pressure bridge two point linear
    • Resistance
    • RTD
      • All RTD types.
      • All resistance configs.
    • Strain gauge
      • all strain guage configurations
    • Built in temperature sensor
    • Thermocouple
      • All thermocouple types.
      • 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:

  • Toggle the color theme from the command search bar.
  • Run the driver for long periods of time with minimal memory leakage.

Lham42 and others added 30 commits September 3, 2024 07:34
* fix(docs): Remove Linux from Console download button

* refactor(docs): Add info on saving a range as a CSV

* refactor(pluto): Simplify return statement

* docs(client/py): Edit abort sequence README

* refactor(docs): explicitly point to Python abort sequence example

* feat(docs): Add info on snapshotting a schematic

* feat(docs): Add a page on channels in the console

* refactor(docs): Simplify code for OSDownloadButton

* refactor(docs): change how channels are described

* docs(client/py): update what DAQ is called in README for abort sequence

* refactor(docs): Rework what channels are called
* docs: Update in-code links to documentation website

* docs(client/ts): Update README, package.json, and contribution guidelines

* docs(client/ts): Use bash as language for shell code blocks in README and CONTRIBUTING

* docs: Remove contribution ask in README
* checkpoint

* [client/py] - improved threading mechanisms and added remains_true_for and while_true

* [client/py] - improved docs

* [client/py] - removed unnecessary deps

* [freighter/py] - upgraded package versions

* [freighter/py] - removed unnecessary util packages

* [freighter/integration] - mod tidy

* [driver] - bumped open62541 version

* [client/py] - performance optimizations

* [client/py] - several performance optimizations

* [client/py] - improved transport semantics

* [client/py] - minor PR adjustments and supplements to test cases
* updated streamer channel APIs and documentation

* [drift] - reverted accidental changes

* [cpp] - removed start field from streamer config instantiations

* [client/ts] - updated generateed API

* [cpp] - removed start field from OPC task

* [synnax] - fixed bad test case compilation

* [client/cpp] - adjusted frame streamer tests

* [client/ts] - removed 'start' argument from streamer config

* [client/ts] - updated API

* [client/py] - fixed function renae
* fix(console): edit schematic stateZ to match State interface

* refactor(console): add download button to schematic toolbar, refactored logic for download schematic to a separate hook

* fix(console): better error handling for drag-and-drop files and working multiple files

* fix(console): use dispatch effect to remove existing schematic when importing

* refactor(console): Correct spelling of "pallette" to "palette"

* feat(media): Add upload icon

* feat(pluto): add upload and download icons

* refactor(console): minor refactoring

* refactor(console): store schematic name in schematic state

* refactor(console): Add select schematic slice state selector

* refactor(console): add icons for download/import schematic

* Moved logic for handling schematic files into its own place

* refactor(console): fix name on importing schematics

* refactor(console): Change download schematic to export schematic + aded tooltip to button

* refactor(console): remove dead code + fix imports

* perf(console): change schematic state parser to try latest state first

* refactor(console): Change the download / upload icons to import / export icons

* feature(console): Add workspace export

* feat(console): Add importing workspace

* refactor(console): rename useTriggerHold.tsx to hooks.ts

* refactor(console): Specify type of file in file handler

* chore(client/ts): Update client API

* feature(x/ts): Make a zodutil tool for transforming objects with Zod

* refactor(console): Make JSON parsers use a combined zodutil

* refactor(client/ts): Correct misnamed line plot variable

* refactor(console): moved link.tsx files to link.ts

* Partially implemented lineplot import

* Removed saving the schematic name twice in store

* Better error handling for drag-and-dropping files

* Only send remove dispatch action if it does not exist

* Fix an error where layout would not be placed

* Rename file

* Make workspace file handling logic cleaner

* Finish merge

* feat(console): Implement import line plot

* refactor(console): Match lineplot and workspace file handling to schematic

* "Refactor(console): Move hooks.ts to useTriggerHold.ts

* refactor(console): Move parser into slice

* refactor(console): rename exprt to handleExport

* feat(console): Add link button to line plot toolbar

* refactor(console): change size=0 in <Align> to empty

* ops: add lint on save to VSCode workspace settings

* console: remove workspace file handler

* refactor(console): fix lineplot toolbar

* refactor(console): minor name and logic improvements for clarity

* refactor(console): handle resource import error messages better

* refactor(console): Remove dead code
Lham42 and others added 28 commits September 12, 2024 11:52
…ble-ni-chan

SY 1129 allow ni channels to be enabled and disabled
- refactor(pluto): add border color to box and tank, new box border radius
- refactor(pluto): Remove unnecessary code on tank/box form
- feat(pluto): Add scaling to most schematic elements
- refactor(pluto): Make separate light aether component
* feat(media): Add name resources
* docs: update file paths for icons
* refactor(console): Remove edit range from create range modal, clean range toolbar context menu & resource toolbar context menu for ranges

* ci(github): update QA process for ranges
* [ops/ts] - bumped package versions

* [ops/ts] - compatibility fixes for upgraded package versions

* [ops/ts] - upgraded package versions

* [console] - adjusted window visibility
* [docs/site] - improved documentation for new controller methods

* [docs/site] - removed extra dividers
…button-not-appearing

SY-1179 fix update available button not appearing
…eadcrumbs

SY-1218 documentation site breadcrumbs
* [console] - fixed incorrectly positioned items on layout laod

* [console] - fixed schematic endpoints positioned incorrectly

* [console] - removed commented out code and added documentation for an unintuitive section

* [console] - removed commented out code and added documentation for an unintuitive section

* [console] - adjusted tank handle offset slightly

---------

Co-authored-by: Elham Islam <elham@synnaxlabs.com>
@codecov-commenter
Copy link

codecov-commenter commented Sep 16, 2024

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

Attention: Patch coverage is 13.12127% with 437 lines in your changes missing coverage. Please review.

Project coverage is 46.31%. Comparing base (c3b8e28) to head (71340fb).
Report is 8 commits behind head on main.

Files with missing lines Patch % Lines
pluto/src/vis/schematic/Forms.tsx 0.00% 87 Missing ⚠️
pluto/src/vis/schematic/Symbols.tsx 0.00% 76 Missing ⚠️
pluto/src/vis/schematic/primitives/Primitives.tsx 0.00% 66 Missing ⚠️
pluto/src/breadcrumb/Breadcrumb.tsx 0.00% 56 Missing ⚠️
pluto/src/vis/light/aether/light.ts 0.00% 50 Missing and 1 partial ⚠️
pluto/src/vis/schematic/registry.ts 0.00% 31 Missing ⚠️
pluto/src/vis/light/use.ts 0.00% 22 Missing and 1 partial ⚠️
drift/src/tauri/index.ts 0.00% 9 Missing ⚠️
pluto/src/triggers/Text.tsx 0.00% 8 Missing ⚠️
pluto/src/vis/diagram/Diagram.tsx 0.00% 5 Missing ⚠️
... and 14 more

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #832      +/-   ##
==========================================
- Coverage   46.37%   46.31%   -0.06%     
==========================================
  Files        1086     1088       +2     
  Lines       67807    67885      +78     
  Branches     3509     3512       +3     
==========================================
- Hits        31448    31444       -4     
- Misses      35309    35387      +78     
- Partials     1050     1054       +4     
Flag Coverage Δ
aspen 50.40% <ø> (ø)
cesium 75.53% <ø> (ø)
clientpy 86.04% <100.00%> (+4.93%) ⬆️
clientts 61.35% <92.72%> (-0.02%) ⬇️
drift 26.30% <6.66%> (-0.08%) ⬇️
freightergo 25.70% <ø> (ø)
freighterpy 81.03% <100.00%> (+4.64%) ⬆️
freighterts 83.25% <ø> (ø)
pluto 35.34% <2.57%> (-0.18%) ⬇️
synnax 28.49% <25.00%> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@Lham42 Lham42 merged commit 2cb2f04 into main Sep 17, 2024
33 of 34 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants