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 23.0 RC #644

Merged
merged 231 commits into from
Jun 17, 2024
Merged

Synnax 23.0 RC #644

merged 231 commits into from
Jun 17, 2024

Conversation

emilbon99
Copy link
Contributor

@emilbon99 emilbon99 commented Jun 15, 2024

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
  • console
  • root package.json file

Version Conflicts

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

  • x/ts
  • alamos/ts
  • freighter/ts
  • client/ts
  • alamos/py
  • freighter/py
  • client/py
  • synnax server
  • 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.

  • reference/concepts
  • references/cluster
  • references/python-client
  • references/typescript-client
  • references/console
  • references/device-drivers/opcua
  • references/device-drivers/ni

Examples

I have verified that code examples for each of the following services run correctly:

  • client/py
  • client/ts

Console

Auto Update

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

Cluster Connection

I can successfully:

  • Connect to a cluster
  • Disconnect from a cluster
  • Switch clusters in the selector
  • Remove a cluster
  • Rename a cluster

Ranges

I can successfully:

  • Create a new local range
  • Create a new persisted range
  • Save a local range to Synnax
  • Switch the active range
  • Delete a range in the toolbar
  • Load a range from the search bar
  • Create a range from a line plot selection
  • Delete a range in the resources view
  • Delete multiple ranges in the resources view
  • Edit a local range
  • Edit a remote range

Line Plots

I can successfully:

  • Create a new line plot from the mosaic
  • Create a new line plot from the search bar
  • Move the line plot to a new mosaic
  • Plot a historical range of data
  • Plot a live range of data
  • Move channels between axes
  • Adjust the thickness of a line
  • Change the color of a line
  • Downsample a line
  • Re-label a line
  • Change the color of a line from the legend
  • Re-label the line from the legend.
  • Set the title of the plot

Schematics

I can successfully:

  • Add all symbols to the mosaic and view their properties
  • Create a new schematic from the mosaic
  • Move the schematic to a new mosaic
  • Create a new schematic from the search bar
  • Display live-data on a value
  • Change the precision of a value
  • Average data from a value
  • Actuate a solenoid valve
  • Change the colors of relevant elements
  • Actuate a switch
  • Click a button
  • Acquire absolute control on a channel
  • Change the color of elements
  • Change the color of lines
  • Align elements horizontally
  • Align elements vertically

Workspaces

I can successfully:

  • Create a new workspace
  • Rename a workspace
  • Delete a workspace (while activated)
  • Switch workspaces in the selector
  • Switch workspaces in the resources view
  • Create a new line plot in a workspace
  • Create a new schematic in a workspace
  • Rename a line plot from a tab
  • Rename a line plot from the resources view
  • Rename a schematic from a tab
  • Rename a schematic from the resources view
  • Delete a line plot in a workspace
  • Delete a schematic in a workspace

Resources

I can successfully:

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

OPC UA

Configuration

I can successfully:

  • Connect to an OPC UA server running unencrypted.
  • Connect to an OPC UA server running encrypted.
  • Create additional sampling groups and move channels to them.
  • 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 - 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

emilbon99 and others added 30 commits May 23, 2024 18:10
…illa/sy-672-drift-allow-persistence-of-multiple-windows
* fixed some comments

* Rewrote timerange deletion and made unary delete tests super solid

* Added many test cases for deletion

* Added less than to validator.go

* Checkpoint

* Cesium and unary tests passing

* Checkpoint all tests pass

* Merged filesize cap into timerange deletion

* Checkpoint for file controller in GC

* Checkpoint. Need to fix memfs open in append mode

* Added memFS compatibility for APPEND

* Bumped VERSION

* Fixed APPEND in memFS issue

* Fixed so the write method works as intended

* Checkpoint tombstone index persist

* Checkpoint

* [cesium] - Implement io.Closer to iterator/reader

* [cesium] - Added test cases for index persist

* [cesium] - added support for multi-channel timerange deletion

* [cesium] - Refactored file controller

* [cesium] Backmerge with main version 20

* [ops] bumped VERSION

* [cesium] - File controller refactoring & made domain iterator readers closable

* Bumped VERSION

* [cesium] - WIP better error messages

* [cesium] - added test case for persisting empty index

* Refactored error messages

* Added support for names and renaming cesium channels

* [cesium] - checkpoint: error messages now have channel name and key information

* [cesium] - Added close guards to cesium

* [cesium] - added test cases to address closing databases

* [cesium] - added more test cases to cover all public methods on DBs

* [ops] - bumped VERSION

* Renamed dbClosed to ErrDBClosed

* [cesium] - Fixed test cases

* [cesium] - removed accidental leftover debug code

* [cesium] - Fixed error messages to include channel name in all fields

* [cesium] - Added implementation of truncate in memFS.

* [cesium] - Implemented timerange deletion with truncate

* [cesium] - Changed DB to use atomic bool as close, changed error unclear messages, changed control documentation

* [cesium] - fixed a 50/50 test case where the error was not deterministic

* [cesium] - added a note explaining race condition in channel rename

* [cesium] - moved race condition comment

* [synnax] - fixed test cases related to cesium api changes

* [client/py] - addressed issues with test cases due to new cesium error messages

* [cesium] - checkpoint GC WIP

* [cesium] - added stringer for channel, and fixed error names for closed errors

* [cesium] - Changed name for openEntityCount

* [cesium] - changed word "timerange" into "time range" and fixed more error messages

* [cesium] - fixed error message in test that got changed

* [cesium] - Fixed race condition in error messages and minor stylistic things

* [cesium] - Changed timestamp, range, span methods to have human-readable stringers

* [cesium] - Changed timestamp, range, span methods to have stringers cohesive with TS formats.

* [cesium] - made errDBClosed variables private

* [cesium] - fix backmerge errors

* [cesium] - Checkpoint deletion

* [x] - added end of time stringer for timestamp and timespan

* [cesium] - changed error messages in controller

* [cesium] - All tests for timerange deletion pass

* [cesium] - changed error messages in deletion

* [cesium] - added TODOs

* [cesium] - rewrote delete in domain level to not include the startPosition

* [cesium] - rewrote garbage collection to not lock down the entire database

* [cesium] - added mutex to index persist

* [cesium] - minor changes

* [cesium] - made index persist work with truncate.

* [cesium] - added check to not GC file in writing

* 566 sy 634 version migration (#571)

* Added version migration from V1 to V2

* [cesium] - added migration test case and edge case handling for when index.domain is empty

* [cesium] - made migration test run on prestored test data

* [cesium] - added testdata to repo

* [cesium] - changed version migration to only need one file handle

* [cesium] - changed versioning details

* [cesium] - added check to not GC file in writing

* [cesium] - removed version 2 in versioning and added test cases for testutil CopyFS

* [cesium] - fix race condition where delete + GC would cause GC to produce incorrect offsets

* [ops] - increased logging verbosity

* [cesium] - fixed race conditions and cleaned up deletion code in Unary.

* [cesium] - fixed a race in controller.go

* [cesium] - fixed races

* [cesium] - fixed a race in domain and made index persist under mutex lock

* [cesium] - fixed a race in test

* [cesium] - added number of goroutines in race test to avoid false negatives

* [cesium] - pr touchup

* [cesium] - removed same timerange race tests

---------

Co-authored-by: Emiliano Bonilla <56323762+emilbon99@users.noreply.github.com>
…-rename-doesnt-propagate-to-workspace

Ebonilla/sy 731 schematic tab rename doesnt propagate to workspace
@pjdotson
Copy link
Contributor

pjdotson commented Jun 15, 2024

Synnax 23 Release Candidate

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
  • console
  • root package.json file

Version Conflicts

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

  • x/ts
  • alamos/ts
  • freighter/ts
  • client/ts
  • alamos/py
  • freighter/py
  • client/py
  • synnax server
  • 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.

  • reference/concepts
  • references/cluster
  • references/python-client
  • references/typescript-client
  • references/console
  • references/device-drivers/opcua
  • references/device-drivers/ni

Examples

I have verified that code examples for each of the following services run correctly:

  • client/py
    • Error in examples/many_domains.py
    • Problems running and documentation for running the files in examples/control/tpc
  • client/ts
    • Make sure the TypeScript examples work

Console

Auto Update

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

Cluster Connection

I can successfully:

  • Connect to a cluster.
  • Disconnect from a cluster.
  • Switch clusters in the selector.
  • Remove a cluster.
  • Rename a cluster.
    • This feature is not functional yet.

Ranges

I can successfully:

  • Create a new local range.
  • Create a new persisted range.
  • Save a local range to Synnax.
  • Switch the active range.
    • Can do but should make sure "Set as Active Range" on context menu does not appear for all ranges in the range toolbar
  • Load a range from the search bar.
    • This can be done but search functionality still needs to be improved.
  • Create a range from a line plot selection.
  • Delete a range in the resources view.
  • Delete multiple ranges in the resources view.

Line Plots

I can successfully:

  • Create a new line plot from the mosaic.
  • Move the line plot to a new mosaic.
    • The line plot can be moved to a new mosaic in the same window. Note that the functionality of being able to drag and drop into an area not occupied by the Synnax Console does not work properly.
  • Create a new line plot from the search bar.
  • 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.

Schematics

I can successfully:

  • Create a new schematic from the mosaic.
  • Move the schematic to a new mosaic.
  • 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.
  • Bug found: I accidentally had the input and output channels swapped on a valve. After trying to actuate a valve, I was not able to click anything else in this schematic or switch off of control mode until I switched to another tab and came back to the broken schematic.

Workspaces

I can successfully:

  • Create a new workspace.
  • Switch workspaces in the selector.
    • Minor UX improvement: Make sure that the create a workspace pop-up window is automatically closed upon creation of a workspace. If you are on workspace WSA, create a new workspace WSB, and then go back into WSA, you see the pop up window that you used to create WSB
  • 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.
  • 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.

Resources

I can successfully:

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

OPC UA

Problems

  • Documentation does not properly cover Security Modes and Security Policies
  • Generally, the documentation should be rewritten on this part to make it more clear

Configuration

I can successfully:

  • Connect to an OPC UA server running unencrypted.
  • Connect to an OPC UA server running encrypted.
  • Create additional sampling groups and move channels to them.
  • Create additional channels and move them to existing sampling groups.
    • No way to do this
  • Move and rename channels.
  • Save the device configuration.
    • Other improvement: Automatically group the channels in each group in the ontology

Read Task

I can successfully:

  • Single Sampling - Read from multiple channels.
    • Why do we need to select the separate Synnax channel and OPC Node?
  • 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 - 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.

…example-file-many_domainspy

Leo/sy 791 python client fix example file many domainspy
@pjdotson pjdotson merged commit 067f584 into main Jun 17, 2024
73 of 75 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