Skip to content

Commit

Permalink
Merge pull request #832 from synnaxlabs/rc
Browse files Browse the repository at this point in the history
 Synnax 0.29.0 Release Candidate
  • Loading branch information
Lham42 authored Sep 17, 2024
2 parents 1d5a4d5 + 71340fb commit 2cb2f04
Show file tree
Hide file tree
Showing 335 changed files with 9,216 additions and 6,197 deletions.
80 changes: 51 additions & 29 deletions .github/PULL_REQUEST_TEMPLATE/rc.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,35 +109,57 @@ I can successfully:

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.
- [ ] Create Range Modal
- [ ] Create a new local range.
- [ ] Create a new persisted range.
- [ ] Set parent range
- [ ] Add labels
- [ ] Rename existing range
- [ ] Change times on existing range
- [ ] Range Layout
- [ ] Rename range.
- [ ] Rename range from tab.
- [ ] Change start and end times.
- [ ] Add labels.
- [ ] Set metadata.
- [ ] Delete metadata.
- [ ] Add child ranges.
- [ ] Open snapshots.
- [ ] Navigate to and from child ranges
- [ ] Search and Command Palette
- [ ] Open an existing range window
- [ ] Open create range dialog
- [ ] Range Toolbar
- [ ] Open create range modal from toolbar link when no range exists
- [ ] Switch the active range by clicking
- [ ] Context Menu
- [ ] Open create range modal
- [ ] Rename range
- [ ] Set active range
- [ ] Open create range modal with child range
- [ ] Add to active line plot
- [ ] Add to new line plot
- [ ] Remove from range toolbar
- [ ] Delete persisted range
- [ ] Copy link of persisted range
- [ ] Save local range to Synnax
- [ ] Resources Toolbar
- [ ] Open the range overview dialog by clicking on a range
- [ ] Context Menu
- [ ] Set active range
- [ ] Rename range
- [ ] Open create range modal with child range
- [ ] Group ranges
- [ ] Add to active line plot
- [ ] Add multiple ranges to active line plot
- [ ] Add to new line plot
- [ ] Add multiple ranges to new line plot
- [ ] Delete range
- [ ] Delete multiple ranges
- [ ] Copy link to range
- [ ] Open a range from its url
- [ ] Make changes to a range with resources toolbar, overview, and ranges toolbar open
and see changes propagate to all three.

### Channels

Expand Down
20 changes: 7 additions & 13 deletions .github/workflows/deploy.console.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ jobs:
strategy:
fail-fast: false
matrix:
platform: [ macos-12, windows-latest ]
platform: [macos-12, windows-latest]
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout Repository
Expand Down Expand Up @@ -145,18 +145,17 @@ jobs:
- name: Install Dependencies
run: pnpm i


- name: Build Pluto
if: needs.setup.outputs.changed == 'true'
run: pnpm build:pluto

- name: Build Drift
if: needs.setup.outputs.changed == 'true'
run: pnpm build:drift

# We need to build the console separately WITHOUT turbo repo because of strange
# incompatibility issues with rust builds.

- name: Build Console
if: needs.setup.outputs.changed == 'true'
env:
Expand All @@ -171,21 +170,18 @@ jobs:
gh release upload --clobber console-v${{ needs.setup.outputs.VERSION }} ./console/src-tauri/target/release/bundle/macos/Synnax.app.tar.gz.sig
gh release upload --clobber console-v${{ needs.setup.outputs.VERSION }} ./console/src-tauri/target/release/bundle/dmg/Synnax_${{ needs.setup.outputs.PURE_VERSION }}_x64.dmg
- name: Upload Windows Release Asset
if: github.event_name == 'push' && matrix.platform == 'windows-latest'
run: |
gh release upload --clobber console-v${{ needs.setup.outputs.VERSION }} ./console/src-tauri/target/release/bundle/msi/Synnax_${{ needs.setup.outputs.PURE_VERSION }}_x64_en-US.msi
gh release upload --clobber console-v${{ needs.setup.outputs.VERSION }} ./console/src-tauri/target/release/bundle/msi/Synnax_${{ needs.setup.outputs.PURE_VERSION }}_x64_en-US.msi.zip
gh release upload --clobber console-v${{ needs.setup.outputs.VERSION }} ./console/src-tauri/target/release/bundle/msi/Synnax_${{ needs.setup.outputs.PURE_VERSION }}_x64_en-US.msi.zip.sig
gh release upload --clobber console-v${{ needs.setup.outputs.VERSION }} ./console/src-tauri/target/release/bundle/msi/Synnax_${{ needs.setup.outputs.PURE_VERSION }}_x64_en-US.msi.sig
gh release upload --clobber console-v${{ needs.setup.outputs.VERSION }} ./console/src-tauri/target/release/bundle/nsis/Synnax_${{ needs.setup.outputs.PURE_VERSION }}_x64-setup.exe
gh release upload --clobber console-v${{ needs.setup.outputs.VERSION }} ./console/src-tauri/target/release/bundle/nsis/Synnax_${{ needs.setup.outputs.PURE_VERSION }}_x64-setup.nsis.zip
gh release upload --clobber console-v${{ needs.setup.outputs.VERSION }} ./console/src-tauri/target/release/bundle/nsis/Synnax_${{ needs.setup.outputs.PURE_VERSION }}_x64-setup.nsis.zip.sig
gh release upload --clobber console-v${{ needs.setup.outputs.VERSION }} ./console/src-tauri/target/release/bundle/nsis/Synnax_${{ needs.setup.outputs.PURE_VERSION }}_x64-setup.exe.sig
publish-release:
runs-on: ubuntu-latest
if: needs.setup.outputs.changed == 'true' && needs.create-release.outputs.release_id != ''
needs: [ create-release, build-tauri, setup ]
needs: [create-release, build-tauri, setup]
env:
VERSION: ${{ needs.setup.outputs.VERSION }}
PURE_VERSION: ${{ needs.setup.outputs.PURE_VERSION }}
Expand Down Expand Up @@ -233,7 +229,7 @@ jobs:
const darwinURL = baseURL + "Synnax.app.tar.gz";
const darwinSig = await github.request(`GET ${darwinURL}.sig`);
const windowsURL = baseURL + `Synnax_${pureVersion}_x64_en-US.msi.zip`;
const windowsURL = baseURL + `Synnax_${pureVersion}_x64_en-US.msi`;
const windowsSig = await github.request(`GET ${windowsURL}.sig`);
const pub_date = new Date().toISOString().replace(/\.\d{3}Z$/, "Z");
const ecd = new TextDecoder();
Expand Down Expand Up @@ -281,5 +277,3 @@ jobs:
message: "Auto Update JSON File"
pull: "--commit --no-edit"
push: "origin main --force"


16 changes: 2 additions & 14 deletions .github/workflows/deploy.py.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ jobs:
uses: actions/checkout@v2

- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: 3.11
python-version: 3.12

- name: Install dependencies
run: |
Expand All @@ -42,7 +42,6 @@ jobs:
- "freighter/py/**"
- ".github/workflows/pypi.publish.yaml"
- name: Check Client Changes
uses: dorny/paths-filter@v3
id: client
Expand Down Expand Up @@ -134,14 +133,3 @@ jobs:
message: "Update dependencies"
pull: "--commit --no-edit"
push: "origin ${{ github.ref }} --force"











2 changes: 1 addition & 1 deletion .github/workflows/test.client.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ jobs:
if: steps.filter.outputs.changed == 'true'
uses: actions/setup-python@v4
with:
python-version: "3.11"
python-version: "3.12"

- name: Install Poetry
if: steps.filter.outputs.changed == 'true'
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/test.freighter.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ jobs:
working-directory: ./freighter/integration

test-python:
needs: [ build-integration-image ]
needs: [build-integration-image]
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
Expand All @@ -109,7 +109,7 @@ jobs:
if: steps.filter.outputs.changed == 'true'
uses: actions/setup-python@v4
with:
python-version: "3.11"
python-version: "3.12"

- name: Install Poetry
if: steps.filter.outputs.changed == 'true'
Expand Down Expand Up @@ -143,7 +143,7 @@ jobs:
- 8080:8080

test-typescript:
needs: [ build-integration-image ]
needs: [build-integration-image]
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.migration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
python-version: "3.12"

- name: Install Poetry
run: |
Expand Down
3 changes: 3 additions & 0 deletions .vscode/synnax.code-workspace
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,9 @@
"mode": "auto"
}
],
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "always"
},
"files.associations": {
"xstring": "cpp",
"algorithm": "cpp",
Expand Down
13 changes: 3 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<br />
<p align="center">
<a href="https://synnaxlabs.com/">
<img src="x/media/static/logo/icon-white-on-black.png" width="20%"/>
<img src="x/media/static/logo/icon-white-padded.png" width="20%"/>
</a>
<br />
<br />
Expand Down Expand Up @@ -35,20 +35,13 @@ scale.
Synnax is currently in beta and is under active development. The APIs are stable
and are unlikely to change significantly.

Versions prior to 1.x.x follow modified Semantic Versioning. Versions with the same
patch (e.g. 0.0.1 and 0.0.2) are guaranteed to maintain the same API, while minor
Versions prior to 1.x.x follow modified Semantic Versioning. Versions with the same
patch (e.g. 0.0.1 and 0.0.2) are guaranteed to maintain the same API, while minor
versions may include API changes.

Our team is targeting a v1 release before the end of 2024, at which point all APIs
will be stable and follow strict semantic versioning.

# How to Contribute

Help us modernize industrial control! Reach out
to [Emiliano](mailto:ebonilla@synnaxlabs.com)(ebonilla@synnaxlabs.com) if you'd like to
get involved. While you wait for a response, check out
the [New Contributor Guide](docs/CONTRIBUTING.md) to get up to speed.

# Repository Organization

Synnax is built as a collection of several projects, all of which are collected
Expand Down
2 changes: 1 addition & 1 deletion alamos/py/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "alamos"
version = "0.28.0"
version = "0.29.0"
description = ""
authors = ["Emiliano Bonilla <ebonilla@synnaxlabs.com>"]
readme = "README.md"
Expand Down
10 changes: 5 additions & 5 deletions alamos/ts/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@synnaxlabs/alamos",
"version": "0.28.0",
"version": "0.29.0",
"type": "module",
"description": "Distributed instrumentation for Synnax",
"repository": "https://github.com/synnaxlabs/synnax/tree/main/freighter/ts",
Expand Down Expand Up @@ -37,11 +37,11 @@
"devDependencies": {
"@synnaxlabs/tsconfig": "workspace:*",
"@synnaxlabs/vite-plugin": "workspace:*",
"@vitest/coverage-v8": "^1.5.0",
"@vitest/coverage-v8": "^2.1.0",
"eslint-config-synnaxlabs": "workspace:*",
"typescript": "^5.4.5",
"vite": "5.2.11",
"vitest": "^1.5.0"
"typescript": "^5.6.2",
"vite": "5.4.4",
"vitest": "^2.1.0"
},
"main": "dist/index.js",
"module": "dist/index.js",
Expand Down
27 changes: 13 additions & 14 deletions aspen/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<br />
<p align="center">
<a href="https://synnaxlabs.com/">
<img src="../x/media/static/logo/icon-white-on-black.png" width="20%"/>
<img src="../x/media/static/logo/icon-white-padded.png" width="20%"/>
</a>
<br />
<br />
Expand Down Expand Up @@ -31,30 +31,29 @@ synchronizing changes when it rejoins the cluster.

# Stability and Important Considerations

* Aspen is in active development and is not yet ready for production use. The key-value
API is stable, but the cluster API will likely change.
- Aspen is in active development and is not yet ready for production use. The key-value
API is stable, but the cluster API will likely change.

* Aspen maintains an entire copy of the key-value store on each node in the cluster. This
results in excellent read performance, but also means total storage requirements scale
linearly with cluster size.
- Aspen maintains an entire copy of the key-value store on each node in the cluster. This
results in excellent read performance, but also means total storage requirements scale
linearly with cluster size.

* Aspen is eventually consistent, meaning that reads may be stale for some period of time.
- Aspen is eventually consistent, meaning that reads may be stale for some period of time.

* The gossip protocol lacks three essential features: failure detection, failure recovery,
and efficient propagation guarantees. These are features that are currently in active
development.
- The gossip protocol lacks three essential features: failure detection, failure recovery,
and efficient propagation guarantees. These are features that are currently in active
development.

* While multi-node writes batched writes are supported, they are not yet transactional.
Single node batch writes are transactional (if the underlying key-value store supports
them).
- While multi-node writes batched writes are supported, they are not yet transactional.
Single node batch writes are transactional (if the underlying key-value store supports
them).

## Installation

```
go get github.com/synnaxlabs/aspen
```


## Usage

```go
Expand Down
6 changes: 3 additions & 3 deletions client/cpp/channel/channel.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ typedef freighter::UnaryClient<
class ChannelClient;

/// @brief A channel is a logical collection of samples emitted by or representing the
/// values of a single source, typically a sensor, actuator, or software generated value.
/// See https:://docs.synnaxlabs.com/concepts/channels for an introduction to channels
/// and how they work.
/// values of a single source, typically a sensor, actuator, or software generated
/// value. See https://docs.synnaxlabs.com/reference/concepts/channels for an
/// introduction to channels and how they work.
class Channel {
public:
/// @brief A human-readable name for the channel.
Expand Down
Loading

0 comments on commit 2cb2f04

Please sign in to comment.