Skip to content

Commit 491ccf9

Browse files
emilbon99pjdotsonsy-nico
authored
Synnax v0.54.0 (#2177)
* SY-2826: Add `MustSucceed` linter (#2079) * SY-3884: Remove `go.work` files and use local path imports instead (#2082) * SY-3811: Upgrade Rust and Tauri dependencies (#2096) * SY-3806: Upgrade Go dependencies (#2093) * SY-3920: Upgrade Fiber to v3 (#2094) * SY-3690: Refactor Integration Test Infrastructure (#2099) * SY-3807: Upgrade Python dependencies (#2098) * SY-3878: Support for statuses, stable, select in Arc C++ Runtime (#2051) * SY-3810: Upgrade GitHub Actions (#2095) * SY-3521: Enable Device-Chassis Ontology Relationships (#2033) * SY-3908: Edit TypeScript deployment to only run on package version updates * renamed python xpy package to x * SY-3912: Fix Race Conditions Across Go Codebase (#2073) * SY-3939: Add workflow for X Python and update its dependencies (#2108) * SY-3498: Oracle Generated Code (#2091) * updated decoders to properly decode incorrect struct tag casing * SY-3338: Refactor Gorp to Use Primitive Key Encoding (#2015) * SY-3512: Arc Telemetry Bypass (#2089) * SY-3809: Upgrade to Bazel 9 and some Bazel dependencies (#2109) * SY-3966: Fix Race Condition in Unary writer PeekResource Alignment Access (#2112) * SY-3985: Fix outdated references to Python `sy` CLI tool (#2119) * SY: Clean CI Build Caches (#2118) * SY-3823: Gorp Tables (#2021) * SY-3988: Fix data race in channel observer test (#2124) * SY-3725: Add icons to view create modal (#2120) * SY-3866: Add open Arc Explorer to Arc Toolbar and clean up toolbar code (#2122) * SY-3972: Separate Search Service from Ontology (#2117) * SY-3980: Refactor to Go driver (#2123) * SY-3971: Core refactors for data deletion (#2121) * SY-3818: Use Ginkgo's Built-In SpecContext (#2125) * Revert TypeScript dependency upgrades accidentally included in SY-3971 * [integration test] Fix Device Status Check in NI Disconnect Test * SY-3808: Upgrade TypeScript Dependencies (#2113) * SY-3840: Add integrations property to a rack (#2129) * SY-2318: Add delete all data feature to Console (#2126) Add a delete all data feature to the Console. * SY-3816: Add Go Fuzz Testing CI Workflow (#2130) * SY-3816 [2/10]: Add Graph Utility Package (#2133) * fixed race condition in aspen grpc transport * SY-4001: Make sure instrumentation is passed to all services * SY-3997: Fix Arc integration tests for Go driver (#2142) * SY-3816: Add Oracle Migration and Marshal Plugins (#2131) * SY-3816 [1/10]: Add Binary Codec Primitives for Oracle (#2132) * SY-2676: Move x/binary Codecs to x/encoding Sub-Packages (#2148) * SY-3816 [3/10]: Add Gorp Migration Framework (#2134) * SY-4003: Add Oracle-Generated View Clients for Go, Python, and C++ (#2149) * [x/go] - removed deprecation warnings * SY-3816 [4/10]: Add Telem Codec (#2135) * SY-3816 [6/10]: Add Spatial Codec (#2137) * fixed generated view types * added v53 oracle snapshot * SY-3978: Add variant filtering to the Status Explorer (#2128) * SY-3816 [1/8]: ORC Binary Encoding Package (#2155) * SY-4007: Add empty content to login cluster list (#2153) * SY-3816: Migration Related Gorp Refactors (#2163) * SY-3816 [3/8]: Oracle Codec and Migration Plugins (#2157) * SY-3816 [5/8]: Arc Generated Codecs (#2159) * SY-3816 [4/8]: x/go Generated Codecs (#2158) * SY-3816 [6/8]: Ontology Codecs and Raw Filter (#2160) * SY-3816 [7/8]: Ranger Migration Update (#2161) * SY-3981: Add press and hold to schematic valves (#2144) * SY-3816 [8/8]: Remaining Core Service Codecs (#2162) * updated all orc codecs to their latest version * gofmt * SY-3256: Removed `set.Mapped` Type and Improved Set Related Tests (#2166) * SY-4015: Move Rack, Device, Task Migrations to Use Gorp Migration Framework (#2165) * SY-4016: Consolidate Gorp and x/migrate Migration Systems (#2168) * Tidy `go.mod` files * SY-4014: Move Access Migrations and Root User Provisioning Into Services (#2169) * SY-4018: Move Device, Rack, and Task Migrations to Versioned Subdirectories (#2170) * SY-4019: Move Range Migrations Into Dedicated Folder (#2171) * fixed issues with macos driver tests * SY-3130: Add "open Arc" to Arc context menu (#2127) * SY-3923: Remove unneeded Python packages (#2173) * SY-4022: Fix Resource Leaks in Service Openers (#2175) * SY-4013: Ontology and Orc Optimizations (#2164) * SY-3855: Add PagerDuty integration (#2145) * SY-4023: Fix task and rack migration float64 key decoding (#2176) * SY-4020: Add PagerDuty Python types and integration test (#2174) * SY-3252: Remove weird `Keys` and `Names` types from TypeScript client (#2167) * SY-4026: Fix Embedded NI Field Documentation (#2181) * SY-4009: Migration Test Cases (#2178) * [integration tests] Update ranges favorite/unfavorite action strings * SY-4025: Consolidate `client/py/x` and shared utilities into `x/py` (#2180) * SY-4017: Write PagerDuty integration documentation (#2184) * SY-4027: Use Ruff for Python Linting and Formatting (#2182) * fixed range integration test cases * [integration tests] + * SY-4029: Fix dragging and dropping of OPC UA channels (#2185) * SY-3991: Add Synnax v0.54 Release Notes (#2186) * Fix bypass authority filtering blocking all read/write task bus publishes (#2187) * [documentation] Updates and corrections --------- Co-authored-by: Patrick Dotson <patrick@synnaxlabs.com> Co-authored-by: sy-nico <nico@synnaxlabs.com> Co-authored-by: Patrick Dotson <patrickdotson11@gmail.com>
1 parent 90f522d commit 491ccf9

2,547 files changed

Lines changed: 136775 additions & 53791 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.bazeliskrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
USE_BAZEL_VERSION=8.5.0
1+
USE_BAZEL_VERSION=9.0.1

.bazelrc

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33
# See https://github.com/rules-proto-grpc/rules_proto_grpc/issues/390 for info
44
common --enable_bzlmod=true --enable_workspace=false --noincompatible_disallow_ctx_resolve_tools --define=protobuf_allow_msvc=true
55

6+
# Bazel 9 enables --incompatible_strict_action_env by default, which restricts PATH
7+
# to /bin:/usr/bin:/usr/local/bin. Pass through the host PATH so tools like cmake
8+
# (installed via Homebrew at /opt/homebrew/bin) are available in genrules.
9+
build --action_env=PATH
10+
611
# Enable platform-specific configs
712
build --enable_platform_specific_config
813

@@ -19,13 +24,18 @@ build:macos --cpu=darwin_arm64
1924
build:macos --cxxopt=-std=c++23
2025
build:macos --host_cxxopt=-std=c++23
2126
build:macos --copt=-Werror
27+
build:macos --copt=-Wreorder-init-list
2228
# Hide symbols to prevent collisions with libraries loaded dynamically at runtime
2329
# (LabJack bundles an incompatible legacy gRPC version).
2430
build:macos --copt=-fvisibility=hidden
2531
build:macos --cxxopt=-fvisibility-inlines-hidden
2632

2733
# Allow protobuf deprecation warnings without treating them as errors
2834
build:macos --copt=-Wno-error=deprecated-declarations
35+
# GoogleTest 1.17 headers trigger char8_t → char32_t conversion warning in gtest-printers.h
36+
# -Wno-unknown-warning-option prevents older Clang from erroring on unrecognized -W flags
37+
build:macos --copt=-Wno-unknown-warning-option
38+
build:macos --copt=-Wno-error=character-conversion
2939

3040
# Linux
3141
build:linux --cxxopt=-std=c++23
@@ -38,6 +48,8 @@ build:linux --cxxopt=-fvisibility-inlines-hidden
3848

3949
# Allow protobuf deprecation warnings without treating them as errors
4050
build:linux --copt=-Wno-error=deprecated-declarations
51+
# GoogleTest 1.17 headers trigger sign-compare in test compilation units
52+
build:linux --copt=-Wno-sign-compare
4153

4254
# Allow sequence-point warnings without treating them as errors
4355
# (wasmtime headers use storage++ in pack expansion which triggers this)

.dockerignore

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,6 @@ Thumbs.db
6262
# Config files not needed in build
6363
*.yaml
6464
*.yml
65-
!go.work
66-
!go.work.sum
6765
*.json
6866
!package.json
6967
*.toml
@@ -80,4 +78,4 @@ Dockerfile
8078
# - cesium (included)
8179
# - aspen (included)
8280
# - arc (included)
83-
# - go.mod, go.sum, go.work, go.work.sum (included)
81+
# - go.mod, go.sum (included)

.github/PULL_REQUEST_TEMPLATE/rc.md

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,6 @@ I can successfully:
7474

7575
- **Create Channel Modal**
7676
- [ ] Open a channel plot from a link.
77-
- [ ] Rename a channel and ensure the change synchronizes properly across:
78-
- Task Configuration Dialog
7977
- [ ] Set an alias for a channel and ensure the change synchronizes properly across:
8078
- Log Visualization Toolbar
8179
- Schematic Visualization Toolbar
@@ -128,19 +126,6 @@ I can successfully:
128126
- [ ] See the user avatar and username in the top-right corner after logging in.
129127
- [ ] Click the user badge to open the logout menu.
130128

131-
### Devices
132-
133-
I can successfully:
134-
135-
- **Resources Toolbar**
136-
- [ ] See a device's state get updated.
137-
- **Context Menu**
138-
- [ ] Group devices.
139-
- [ ] Configure an unconfigured device.
140-
- [ ] Change the identifier on a configured device.
141-
- [ ] Rename a device.
142-
- [ ] Delete a device.
143-
144129
### Layout
145130

146131
I can successfully:
@@ -170,23 +155,6 @@ I can successfully:
170155
- [ ] Preserve log data from a virtual channel in the buffer.
171156
- [ ] Open a log from its link.
172157

173-
### Permissions & Roles
174-
175-
I can successfully:
176-
177-
- **Role Management**
178-
- [ ] View all available roles in the Resources Toolbar.
179-
- [ ] Unassign a role from a user.
180-
- [ ] Cannot delete built-in roles (Owner, Engineer, Operator, Viewer).
181-
182-
- **As an Owner:**
183-
- [ ] Can register new users and assign roles.
184-
- [ ] Can create, edit, and delete all resource types.
185-
186-
- **As a Viewer:**
187-
- [ ] Can view schematics, line plots, tables, logs.
188-
- [ ] Cannot actuate valves on a schematic.
189-
190158
### Ranges
191159

192160
I can successfully:
@@ -236,19 +204,6 @@ I can successfully:
236204
- [ ] Import a task from a file via the import task commands
237205
- [ ] Import a task from a file via drag-and-drop
238206

239-
### Users
240-
241-
I can successfully:
242-
243-
- **Resources Toolbar**
244-
- [ ] Unassign a role from a user.
245-
- [ ] Open the "Permissions" dialog.
246-
- [ ] Rename a user.
247-
- [ ] Delete a user.
248-
- [ ] Delete multiple users.
249-
- [ ] Change a user's username and log in with the new username.
250-
- [ ] Change a user's role and verify their permissions change accordingly.
251-
252207
### Version
253208

254209
I can successfully:
@@ -319,7 +274,6 @@ I can successfully:
319274
I can successfully:
320275

321276
- [ ] Enable and disable NI integration when starting the server.
322-
- [ ] View a chassis and it's child devices.
323277
- [ ] Shut down the driver without errors during embedded operation.
324278
- **Digital Read Task**
325279
- [ ] Plot live data.

.github/actions/test-python/action.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ inputs:
3030
required: false
3131
default: "."
3232
format_check:
33-
description: Whether to run formatting checks (isort, black)
33+
description: Whether to run formatting and linting checks (ruff)
3434
required: false
3535
default: "true"
3636

@@ -52,15 +52,15 @@ runs:
5252
with:
5353
python-version-file: ${{ inputs.directory }}/pyproject.toml
5454

55-
- name: Check import order
55+
- name: Lint
5656
if: inputs.format_check == 'true'
57-
run: uv run isort -c .
57+
run: uv run ruff check .
5858
shell: bash
5959
working-directory: ${{ inputs.directory }}
6060

6161
- name: Check formatting
6262
if: inputs.format_check == 'true'
63-
run: uv run black --check --diff --color .
63+
run: uv run ruff format --check --diff .
6464
shell: bash
6565
working-directory: ${{ inputs.directory }}
6666

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: Build - Docker
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
module:
7+
description:
8+
Module path containing the Dockerfile and go.mod (e.g. core,
9+
freighter/integration)
10+
required: true
11+
type: string
12+
tag:
13+
description: Full Docker image tag to push
14+
required: true
15+
type: string
16+
17+
jobs:
18+
build:
19+
name: Build - Docker
20+
runs-on: ubuntu-latest
21+
steps:
22+
- name: Checkout Repository
23+
uses: actions/checkout@v6
24+
25+
- name: Set up Docker Buildx
26+
uses: docker/setup-buildx-action@v4
27+
28+
- name: Login to GitHub Container Registry
29+
uses: docker/login-action@v4
30+
with:
31+
registry: ghcr.io
32+
username: ${{ github.actor }}
33+
password: ${{ secrets.GITHUB_TOKEN }}
34+
35+
- name: Extract Go version
36+
id: go-version
37+
run:
38+
echo "GO_VERSION=$(grep '^go ' ${{ inputs.module }}/go.mod | awk '{print
39+
$2}')" >> $GITHUB_OUTPUT
40+
41+
- name: Build and Push Image
42+
uses: docker/build-push-action@v7
43+
with:
44+
context: .
45+
file: ./${{ inputs.module }}/Dockerfile
46+
platforms: linux/amd64
47+
push: true
48+
tags: ${{ inputs.tag }}
49+
cache-from: type=gha,scope=synnax-docker-${{ inputs.module }}
50+
cache-to: type=inline
51+
build-args: GO_VERSION=${{ steps.go-version.outputs.GO_VERSION }}

.github/workflows/build.synnax.yaml

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,6 @@ jobs:
216216
steps:
217217
- name: Checkout Repository
218218
uses: actions/checkout@v6
219-
with:
220-
clean: false
221219

222220
- name: Update Submodules
223221
run: git submodule update --init --recursive
@@ -235,7 +233,7 @@ jobs:
235233
run: brew install autoconf automake libtool
236234

237235
- name: Setup Bazel
238-
uses: bazel-contrib/setup-bazel@0.15.0
236+
uses: bazel-contrib/setup-bazel@0.18.0
239237
with:
240238
# Use S3 cache instead of github cache.
241239
bazelisk-cache: false
@@ -258,7 +256,7 @@ jobs:
258256
259257
- name: Upload Windows Debug Symbols
260258
if: inputs.driver && inputs.debug && matrix.os == 'windows-build-bot'
261-
uses: actions/upload-artifact@v6
259+
uses: actions/upload-artifact@v7
262260
with:
263261
name:
264262
${{ inputs.use_simple_artifact_names &&
@@ -282,7 +280,7 @@ jobs:
282280
283281
- name: Upload macOS Debug Symbols
284282
if: inputs.driver && inputs.debug && startsWith(matrix.os, 'macos')
285-
uses: actions/upload-artifact@v6
283+
uses: actions/upload-artifact@v7
286284
with:
287285
name:
288286
${{ inputs.use_simple_artifact_names && 'synnax-driver-debug-symbols-macos'
@@ -310,7 +308,7 @@ jobs:
310308
if:
311309
inputs.driver && inputs.nilinuxrt && inputs.debug && matrix.os ==
312310
'ubuntu-build-bot'
313-
uses: actions/upload-artifact@v6
311+
uses: actions/upload-artifact@v7
314312
with:
315313
name:
316314
${{ inputs.use_simple_artifact_names &&
@@ -323,7 +321,7 @@ jobs:
323321

324322
- name: Upload NI Linux Real-Time Driver as Artifact
325323
if: inputs.driver && inputs.nilinuxrt && matrix.os == 'ubuntu-build-bot'
326-
uses: actions/upload-artifact@v6
324+
uses: actions/upload-artifact@v7
327325
with:
328326
name:
329327
${{ inputs.use_simple_artifact_names && 'synnax-driver-nilinuxrt' ||
@@ -363,7 +361,7 @@ jobs:
363361
364362
- name: Upload Linux Debug Symbols
365363
if: inputs.driver && inputs.debug && matrix.os == 'ubuntu-build-bot'
366-
uses: actions/upload-artifact@v6
364+
uses: actions/upload-artifact@v7
367365
with:
368366
name:
369367
${{ inputs.use_simple_artifact_names && 'synnax-driver-debug-symbols-linux'
@@ -474,7 +472,7 @@ jobs:
474472
475473
- name: Upload Driver as Artifact
476474
if: inputs.driver
477-
uses: actions/upload-artifact@v6
475+
uses: actions/upload-artifact@v7
478476
with:
479477
name:
480478
${{ inputs.use_simple_artifact_names && format('synnax-driver-{0}',
@@ -530,7 +528,7 @@ jobs:
530528

531529
- name: Upload Console Assets as Artifact
532530
if: inputs.console
533-
uses: actions/upload-artifact@v6
531+
uses: actions/upload-artifact@v7
534532
with:
535533
name:
536534
${{ inputs.use_simple_artifact_names && format('synnax-console-assets-{0}',
@@ -554,7 +552,7 @@ jobs:
554552
if: inputs.core
555553
uses: actions/setup-go@v6
556554
with:
557-
go-version-file: go.work
555+
go-version-file: core/go.mod
558556
# Don't use github cache. Local cache is faster.
559557
cache: false
560558

@@ -646,7 +644,7 @@ jobs:
646644

647645
- name: Upload Core Binary as Artifact
648646
if: inputs.core
649-
uses: actions/upload-artifact@v6
647+
uses: actions/upload-artifact@v7
650648
with:
651649
name:
652650
${{ inputs.use_simple_artifact_names && format('synnax-core-{0}',
@@ -701,7 +699,7 @@ jobs:
701699

702700
- name: Download Linux Driver Artifact
703701
if: inputs.driver
704-
uses: actions/download-artifact@v4
702+
uses: actions/download-artifact@v8
705703
with:
706704
name:
707705
${{ inputs.use_simple_artifact_names && 'synnax-driver-linux' ||
@@ -723,32 +721,38 @@ jobs:
723721
724722
- name: Download Console Assets
725723
if: inputs.console
726-
uses: actions/download-artifact@v4
724+
uses: actions/download-artifact@v8
727725
with:
728726
name:
729727
${{ inputs.use_simple_artifact_names && 'synnax-console-assets-linux' ||
730728
format('synnax-console-assets-v{0}-linux', needs.setup.outputs.VERSION) }}
731729
path: core/pkg/console/dist/
732730

733731
- name: Set up Docker Buildx
734-
uses: docker/setup-buildx-action@v3
732+
uses: docker/setup-buildx-action@v4
735733

736734
- name: Login to Docker Hub
737735
if: inputs.upload_to_release
738-
uses: docker/login-action@v3
736+
uses: docker/login-action@v4
739737
with:
740738
username: ${{ secrets.DOCKER_USERNAME }}
741739
password: ${{ secrets.DOCKER_PASSWORD }}
742740

743741
- name: Login to Github Container Registry
744-
uses: docker/login-action@v3
742+
uses: docker/login-action@v4
745743
with:
746744
registry: ghcr.io
747745
username: ${{ github.actor }}
748746
password: ${{ github.token }}
749747

748+
- name: Extract Go version
749+
id: go-version
750+
run:
751+
echo "GO_VERSION=$(grep '^go ' core/go.mod | awk '{print $2}')" >>
752+
$GITHUB_OUTPUT
753+
750754
- name: Build and Push Docker Images
751-
uses: docker/build-push-action@v6
755+
uses: docker/build-push-action@v7
752756
with:
753757
context: .
754758
file: ./core/Dockerfile
@@ -777,6 +781,7 @@ jobs:
777781
VERSION=${{ needs.setup.outputs.VERSION }}
778782
GIT_COMMIT=${{ github.sha }}
779783
BUILD_DATE=${{ github.event.repository.updated_at }}
784+
GO_VERSION=${{ steps.go-version.outputs.GO_VERSION }}
780785
781786
build-console-tauri:
782787
name: Build Console App
@@ -879,7 +884,7 @@ jobs:
879884
run: pnpm build --no-sign
880885

881886
- name: Upload Console App as Artifact
882-
uses: actions/upload-artifact@v6
887+
uses: actions/upload-artifact@v7
883888
with:
884889
name:
885890
${{ startsWith(matrix.os, 'macos') && format('synnax-console-v{0}-macos',

0 commit comments

Comments
 (0)