Skip to content
Draft
Show file tree
Hide file tree
Changes from 170 commits
Commits
Show all changes
206 commits
Select commit Hold shift + click to select a range
d691619
Burn everything and start fresh
loucass003 Mar 17, 2026
e060bc7
Trying to get the basic shape of the state system out. Testing it wit…
loucass003 Mar 17, 2026
01b7b8d
basic handshake
loucass003 Mar 18, 2026
6eb63ce
Tracker data
loucass003 Mar 19, 2026
4fd4997
Logger test
loucass003 Mar 19, 2026
4c1e469
Solarxr start
loucass003 Mar 19, 2026
334be5f
Solaxr datafeed out
loucass003 Mar 20, 2026
a42ed79
Basic config system
loucass003 Mar 23, 2026
af4665e
IPC interface for linux (tested) and windows (untested) - Solarxr / d…
loucass003 Mar 24, 2026
e37a37b
Small optimisations / fixes to make sure couroutines do well and prev…
loucass003 Mar 24, 2026
2235b81
Join datafeed timers on separate coroutine
ImSapphire Mar 24, 2026
ad9bc91
Basic codestyle doc + rename stuff to match it
loucass003 Mar 24, 2026
8531556
Small design guidelines update
loucass003 Mar 25, 2026
8ffd00e
Serial + Serial Flasher
loucass003 Mar 25, 2026
d46fb01
Unit tests + Fix start datafeed behaviour
loucass003 Mar 26, 2026
86dbdbd
OTA updates + Packet processing optimisations + code cleanup
loucass003 Mar 26, 2026
1001b7f
Cleanup
loucass003 Mar 26, 2026
6c4fded
Make ota and serial check for the device status
loucass003 Mar 26, 2026
5946ca1
Better udp and feeder connection handling
loucass003 Mar 26, 2026
fc476a1
Proper handling of the reconnect on ota and serial
loucass003 Mar 26, 2026
ea92fb4
Basic HID support
loucass003 Mar 26, 2026
8168e13
VRC settings (Non tested on windows)
loucass003 Mar 27, 2026
fa1d201
Make vrc config save mute settings to config
loucass003 Mar 27, 2026
9d1e776
Re organise project
loucass003 Mar 27, 2026
38743dc
organise more stuff
loucass003 Mar 27, 2026
df4569f
Format
loucass003 Mar 27, 2026
f65f41a
User height calibration (Non tested)
loucass003 Mar 29, 2026
71b7491
Better logs and ping id sequence for udp devices
loucass003 Mar 30, 2026
e07ef04
batch dispatch together
loucass003 Mar 30, 2026
0ab8052
More position data for devices
loucass003 Mar 30, 2026
dd6c1e7
Lint
loucass003 Mar 30, 2026
17e8717
Remove some console warnings
loucass003 Mar 30, 2026
02ca403
More data for udp trackers
loucass003 Mar 30, 2026
2fc64b3
Lint
loucass003 Mar 30, 2026
2429203
Packets bundling support
loucass003 Mar 30, 2026
a171bc2
More udp tracker data
loucass003 Mar 31, 2026
ae5a8f4
Wifi provisioning V0
loucass003 Apr 8, 2026
4e69262
Wifi Provisioning - Unit tests
loucass003 Apr 8, 2026
bf3168a
Proper tps calculation
loucass003 Apr 8, 2026
5aaade2
Basic skeleton structure
ButterscotchV Apr 2, 2026
d1b96a5
Use body part map for skeleton
ButterscotchV Apr 8, 2026
6266802
Use BodyPart map to make skeleton
ButterscotchV Apr 8, 2026
9c7ca73
Fix naming
ButterscotchV Apr 8, 2026
c5d8968
Tracker tap detection - Basic
loucass003 Apr 8, 2026
ada2ee3
Skeleton experiments
loucass003 Apr 10, 2026
902ab1f
Improved structure for skeleton?
loucass003 Apr 11, 2026
ac07e65
Clenup dead code
loucass003 Apr 11, 2026
918f28d
Simple height calculation from proportions
loucass003 Apr 11, 2026
6db6668
Implement scaled proportions
loucass003 Apr 12, 2026
e2fa7c8
Remove random proportions
loucass003 Apr 12, 2026
4bf1e70
Started implementing checklist / refactored most ipc logic to have tw…
loucass003 Apr 13, 2026
2d6b250
Fix test code
loucass003 Apr 13, 2026
a43ba53
Tracker config + save
loucass003 Apr 13, 2026
b17624d
Fix tracker config not loading back properly + fligtlist checks
loucass003 Apr 13, 2026
a097c26
Implement rest calibration checklist warning
ImSapphire Apr 13, 2026
7d04273
Better readme
loucass003 Apr 13, 2026
fa46f7d
Better readme
loucass003 Apr 13, 2026
18c5d0d
Better readme
loucass003 Apr 13, 2026
db231f3
Send signal strength in datafeed
ImSapphire Apr 13, 2026
acde3a0
Get rid of all the redundant `== true`s
ImSapphire Apr 13, 2026
4113a09
Implement receiving and datafeed sending of tracker mag status
ImSapphire Apr 13, 2026
1775d54
better bootstraping
loucass003 Apr 15, 2026
94e34ca
Fix steps id
loucass003 Apr 15, 2026
984c98f
Cleanup of tests -> update readme in consequence
loucass003 Apr 15, 2026
1185825
Atempt at mag code (untested, incomplete)
loucass003 Apr 15, 2026
b7cd179
Progress on mag crap
loucass003 Apr 17, 2026
aa505d0
Working mag. That was awfull
loucass003 Apr 20, 2026
fa3ebf4
Cleaner actions for common dispatch
loucass003 Apr 21, 2026
943d51d
Debug tools + Spotless
loucass003 Apr 21, 2026
3336f6d
Consistency
loucass003 Apr 21, 2026
09724f1
Packet loss (untested on hid)
loucass003 Apr 22, 2026
951b96d
Fix tracker status HID
loucass003 Apr 22, 2026
428f2ba
Fix battery value HID
loucass003 Apr 22, 2026
791a358
Move back hid packet parsing to core. it will be needed for android
loucass003 Apr 22, 2026
a21e769
Context dispose / proper scope definition and naming
loucass003 Apr 29, 2026
834111c
Basic AI Agent stuff as test
loucass003 Apr 29, 2026
448f075
Remove extra import
loucass003 Apr 29, 2026
cdd47d8
Tracker allowlist
loucass003 Apr 29, 2026
14e77b6
Basic bvh
loucass003 Apr 29, 2026
b336897
RawBone
loucass003 May 1, 2026
3095ce4
Network profile detection basics (untested)
loucass003 May 5, 2026
04a26ec
Remove io for now. for consistency
loucass003 May 5, 2026
6087178
Better debug middleware init
loucass003 May 5, 2026
be34dc9
Better context management for dispose (allow for unit tests to work) …
loucass003 May 5, 2026
170c688
Basic osc parser
loucass003 May 5, 2026
ae4402b
VMC basics, no solarxr, need VMC space coordinates to be fixed
loucass003 May 5, 2026
3749b77
Diable VMC by default
loucass003 May 5, 2026
6fe10bf
Spotless format
ButterscotchV May 6, 2026
7ddb3e7
More dynamic body proportions
ButterscotchV May 6, 2026
3ae788e
Fix val order
ButterscotchV May 6, 2026
6c7d6ad
Fix flake
loucass003 May 6, 2026
4446b8d
VRM model loading + VMC settings in solarxr
loucass003 May 7, 2026
e657d97
Hip anchor + mirroring + better vrm loading
loucass003 May 7, 2026
d492061
Rename & cleanup proportions
ButterscotchV May 9, 2026
9d3afda
Current vrcosc progress
loucass003 May 9, 2026
6d625d1
VRC OSC gui changes and reorganisation of code
loucass003 May 9, 2026
4b7af0b
Start bindings provider automatically
ImSapphire May 9, 2026
0907fe5
Opencode skills sucks. Bye bye
loucass003 May 10, 2026
abc5c7b
solarxr upgrade
loucass003 May 10, 2026
f3de32a
Moved as much as possible to KMP
loucass003 May 11, 2026
b3e61a5
Bring back debug env var
loucass003 May 11, 2026
d804183
Add a note about behaviour list for later
loucass003 May 11, 2026
f2b540d
Solve regressions with KMP
loucass003 May 11, 2026
96998a6
Merge driver and feeder bridge
ImSapphire May 11, 2026
f59e5aa
Catch exceptions when reading from Unix sockets
ImSapphire May 11, 2026
945796d
Use battery info from SteamVR driver
ImSapphire May 11, 2026
a86a6fb
Make device battery info null by default
ImSapphire May 11, 2026
7645ff6
Don't set sensorType for devices from SteamVR
ImSapphire May 11, 2026
47a7067
Use device name and manufacturer from SteamVR
ImSapphire May 11, 2026
2f6cb0a
Make VRChat config warnings checklist step ignorable
ImSapphire May 11, 2026
c71bb3e
Use position from SteamVR
ImSapphire May 11, 2026
57c39c7
No more silent launch failures
loucass003 May 11, 2026
ddae53a
Only store tracker index in driver bridge
ImSapphire May 11, 2026
36f2398
Fix tracker state on SteamVR restart, only hold onto ID in AddTracker
ImSapphire May 11, 2026
cc68e0e
Fix typo in default manufacturer name for SteamVR devices
ImSapphire May 11, 2026
c5eda4b
Rework trackers init to have access to appContext
loucass003 May 12, 2026
3574130
Use offsets for bones
ButterscotchV May 12, 2026
22d1126
Add quaternion test utility functions
ButterscotchV May 16, 2026
7b80cb9
Add session calibration functions & tests
ButterscotchV May 16, 2026
412e182
Add calibration estimation functions
ButterscotchV May 19, 2026
cc387a6
Rename "acceleration" to "rawAcceleration"
ButterscotchV May 20, 2026
22cb14b
SessionCalibration type aliases
ButterscotchV May 20, 2026
f390347
Shorten variable names for SessionCalibrationTest
ButterscotchV May 20, 2026
6dbe872
Fix session calibration math
ButterscotchV May 20, 2026
cef72ee
Fix network profile checker callback param types
ImSapphire May 23, 2026
c10d536
Prevent network profile checker callback from being GC'd
ImSapphire May 23, 2026
c208b7c
Spotless
ImSapphire May 23, 2026
bdde772
Send names of the public network adapters in checklist step
ImSapphire May 23, 2026
feb3eae
oops
ImSapphire May 23, 2026
5a4ba1f
Fix address resolvig / avoid dns lookup
loucass003 May 25, 2026
256574d
Sync solarxr + apply back https://github.com/SlimeVR/SlimeVR-Server/p…
loucass003 May 26, 2026
11783de
Port https://github.com/SlimeVR/SlimeVR-Server/pull/1760
loucass003 May 26, 2026
3f7580a
Port https://github.com/SlimeVR/SlimeVR-Server/pull/1761
loucass003 May 26, 2026
e180298
Port https://github.com/SlimeVR/SlimeVR-Server/pull/1763
loucass003 May 26, 2026
67ae02a
HID battery runtime
loucass003 May 26, 2026
559c076
Fix OSCQuery unit test
ButterscotchV May 28, 2026
24da107
Make safeLaunch inherit CoroutineScope's handler
ButterscotchV May 28, 2026
83f48a7
safeLaunch forgotten
loucass003 May 28, 2026
16d2e0b
Apply session calibration to tracker
ButterscotchV May 28, 2026
d6e6926
Add "reset" tracker actions
ButterscotchV May 28, 2026
861a9fb
Android basics (not tested)
loucass003 May 29, 2026
95b6488
Fix HID not workey
loucass003 May 29, 2026
1ebd8a4
Code cleanup
loucass003 May 30, 2026
0c0aac0
More cleanup / consistency changes
loucass003 May 30, 2026
facce88
Slightly better context
loucass003 May 30, 2026
5f3b1fd
Make tests work
loucass003 May 30, 2026
c43b44c
Add mounting reset
ButterscotchV Jun 2, 2026
a4aa76a
Add session calibrations to SolarXR
ButterscotchV Jun 13, 2026
a75a1ad
Fix bodyParts condition
ButterscotchV Jun 13, 2026
1d55433
Update tracker datafeed
ButterscotchV Jun 13, 2026
fe2a7bf
Fix UDP tracker rotation
ButterscotchV Jun 13, 2026
2559cdf
Handle "null" yaw reset
ButterscotchV Jun 13, 2026
10df44e
Fix flashing error
loucass003 Jun 15, 2026
e85bb26
portObj -> port
Erimelowo Jun 15, 2026
40bb3d1
Remove reset else branch
ButterscotchV Jun 15, 2026
ba5660b
Hardcode enable ServerGuards
ButterscotchV Jun 15, 2026
cf46ca9
Don't localize ports in GUI OSC
Erimelowo Jun 15, 2026
0755413
Finish TapDetection logic with config
Erimelowo Jun 17, 2026
2f5b2ea
Move VMCConfig + TapDetection solarxr
Erimelowo Jun 17, 2026
431774b
tap setupMode wip
Erimelowo Jun 17, 2026
fe3bee2
Mute ConvertLongToDuration warning
Erimelowo Jun 17, 2026
791ae07
TrackerAssignment missing parameter and VRCOSC main
Erimelowo Jun 17, 2026
f6d662a
Sync main into server-rewrite
loucass003 Jun 17, 2026
1763fe9
Sync gui, pnpm and labels from main
loucass003 Jun 17, 2026
d9338dc
Sync solarxr
loucass003 Jun 17, 2026
837316b
Sync solarxr again
loucass003 Jun 17, 2026
9101112
Refactor TapDetector and tap to assign
Erimelowo Jun 17, 2026
710088e
ResetManager wip + refactoring TapReset
Erimelowo Jun 18, 2026
2cf6c0b
Refactor TapDetection flow
Erimelowo Jun 18, 2026
8c78f1c
Finish ResetsManager logic
Erimelowo Jun 18, 2026
25a066d
Remove unneeded data from tracker reset actions
Erimelowo Jun 19, 2026
150c064
Sync flake with main
ImSapphire Jun 19, 2026
1e92eaf
Bump electron-builder to 26.15.0, improve Nix flake
ImSapphire Jun 18, 2026
2996858
Fix JAVA_HOME to make IntelliJ happy
ImSapphire Jun 18, 2026
33d84f1
Fix HID in flake devshell
ImSapphire Jun 19, 2026
71391e7
Sync .github and bindings-provider with main
ImSapphire Jun 19, 2026
c0cf2af
Remove feeder from Steam install code
ImSapphire Jun 19, 2026
a69c10d
Fix socket getting placed in XDG_CONFIG_HOME on Steam
ImSapphire Jun 19, 2026
28bedc1
Sync .gitmodules with main
ImSapphire Jun 19, 2026
5681c35
Switch to JDK 24 in CI
ImSapphire Jun 19, 2026
d7bdeaa
Port #1785
ImSapphire Jun 19, 2026
dd198d2
Port #1859
ImSapphire Jun 19, 2026
066a73c
Fix up GUI after merge(s)
ImSapphire Jun 19, 2026
0757935
Fix Android compilation
ImSapphire Jun 19, 2026
47638cc
Fix GUI on Android/non-Electron
ImSapphire Jun 19, 2026
dc2b47a
Don't catch CancellationException in ComputedSkeletonBehaviour
ImSapphire Jun 19, 2026
aa0d2e8
Get rid of some stray files left behind by merge
ImSapphire Jun 19, 2026
f202f96
Run lint on GUI
ImSapphire Jun 19, 2026
d1b1195
Run spotless
ImSapphire Jun 19, 2026
4686e91
Remove unused launch import
ImSapphire Jun 19, 2026
0723625
Fix test build
ImSapphire Jun 19, 2026
98ccc7c
Use sensible min and max for smoothing
Erimelowo Jun 19, 2026
2299997
Resets settings + delay from GUI
Erimelowo Jun 19, 2026
d0b361a
Merge branch 'main' into server-rewrite
ImSapphire Jun 21, 2026
0530ceb
Get rid of grgit
ImSapphire Jun 21, 2026
0bbe35b
Upgrade Gradle and AGP
ImSapphire Jun 21, 2026
11669d4
Explicitly set abbrev for git describe
ImSapphire Jun 21, 2026
71895de
same thing but for vite lol
ImSapphire Jun 22, 2026
9edc747
Whitelist HID devices for serial access, send serial device type to GUI
ImSapphire Jun 22, 2026
6575a11
Merge branch 'main' into server-rewrite
ImSapphire Jun 22, 2026
cdc0e21
Update for SolarXR rewrite
Erimelowo Jun 22, 2026
70eda4f
Read mag vector from HID and send to the GUI
ImSapphire Jun 23, 2026
ce762ba
Spotless
ImSapphire Jun 23, 2026
67fbf0f
Improving GUI settings layout
Erimelowo Jun 23, 2026
8358ca1
Update packaging instructions
Erimelowo Jun 23, 2026
a2c4c0f
WIP leg tweaks
ButterscotchV Jun 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 5 additions & 4 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Global code owner
* @Eirenliel

# Make everyone be able to approve SolarXR submodule changes
/solarxr-protocol @ButterscotchV @Erimelowo @loucass003

Expand All @@ -13,11 +16,11 @@

/gui/src/components/settings/ @Erimelowo @loucass003

# Electron part of the GUI
# Rust part of the GUI
/gui/electron/ @loucass003

# Some server code~
/server/ @ButterscotchV @loucass003 @Erimelowo
/server/ @ButterscotchV @Eirenliel @Erimelowo

/server/src/main/java/dev/slimevr/autobone/ @ButterscotchV
/server/src/main/java/dev/slimevr/poserecorder/ @ButterscotchV
Expand All @@ -27,8 +30,6 @@
/server/src/main/java/dev/slimevr/tracking/processor/ @Erimelowo
/server/src/main/java/dev/slimevr/filtering/ @Erimelowo

/bindings-provider/ @ImSapphire

# Linux files
*.nix @loucass003
/flake.lock @loucass003
Expand Down
123 changes: 24 additions & 99 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ jobs:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
matrix-cpp: ${{ steps.set-matrix.outputs.matrix-cpp }}
steps:
- id: set-matrix
shell: bash
Expand All @@ -26,44 +25,7 @@ jobs:
else
RESULT=$(echo "$BASE" | jq -c '.')
fi
RESULT_CPP=$(echo "$RESULT" | jq -c '[ .[] | select ( (.platform != "macos") and ( (.platform != "windows") or (.os | endswith("-arm") | not) ) ) ]')

echo "matrix={\"include\":$RESULT}" >> "$GITHUB_OUTPUT"
echo "matrix-cpp={\"include\":$RESULT_CPP}" >> "$GITHUB_OUTPUT"

build-bindings-provider:
name: Build bindings provider for ${{ matrix.os }}
needs: [setup-matrix]
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.setup-matrix.outputs.matrix-cpp) }}
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: recursive
- if: matrix.platform == 'linux'
name: Install GCC
uses: egor-tensin/setup-gcc@v2
with:
version: 16
- name: Get CMake
uses: lukka/get-cmake@latest
- name: Configure
run: cmake -S bindings-provider/ -B bindings-provider/build -DCMAKE_BUILD_TYPE=Release
- name: Build
run: cmake --build bindings-provider/build --config Release -j6
- name: Upload artifact
uses: actions/upload-artifact@v7
with:
name: bindings-provider-${{ matrix.platform }}-${{ matrix.os }}
path: |
bindings-provider/build/slimevr-bindings-provider
bindings-provider/build/libopenvr_api.so
bindings-provider/build/Release/SlimeVR-Bindings-Provider.exe
bindings-provider/build/openvr_api.dll

gui-checks:
name: Gui Checks
runs-on: ubuntu-latest
Expand All @@ -72,10 +34,8 @@ jobs:
uses: actions/checkout@v6
with:
submodules: recursive
- name: Get tags
run: git fetch --tags origin --recurse-submodules=no --force
- name: Setup PNPM
uses: pnpm/action-setup@v6
uses: pnpm/action-setup@v4
- name: Setup Node
uses: actions/setup-node@v6
with:
Expand All @@ -84,8 +44,8 @@ jobs:
- name: GUI Lint
run: pnpm i && cd gui && pnpm run lint

java-checks:
name: Java Checks
server-checks:
name: Server Checks
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand All @@ -98,9 +58,11 @@ jobs:
java-version: '17'
distribution: 'adopt'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v6
- name: Java Spotless Check
uses: gradle/actions/setup-gradle@v5
- name: Server Spotless Check
run: ./gradlew spotlessCheck --build-cache
- name: Server Detekt Lint
run: ./gradlew :server:detekt --build-cache


build-server-jar:
Expand All @@ -111,21 +73,19 @@ jobs:
uses: actions/checkout@v6
with:
submodules: recursive
- name: Get tags
run: git fetch --tags origin --recurse-submodules=no --force
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'adopt'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v6
uses: gradle/actions/setup-gradle@v5
- name: Build ShadowJar
run: ./gradlew :server:desktop:shadowJar --build-cache
- name: Test with Gradle
run: ./gradlew :server:desktop:test
- name: Upload Server Jar
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@v6
with:
name: server-jar
path: |
Expand All @@ -140,10 +100,8 @@ jobs:
uses: actions/checkout@v6
with:
submodules: recursive
- name: Get tags
run: git fetch --tags origin --recurse-submodules=no --force
- name: Setup PNPM
uses: pnpm/action-setup@v6
uses: pnpm/action-setup@v4
- name: Setup Node
uses: actions/setup-node@v6
with:
Expand All @@ -156,14 +114,14 @@ jobs:
- name: Tar GUI Dist
run: tar -czf slimevr-gui-dist.tar.gz -C gui/out .
- name: Upload GUI Dist
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@v6
with:
name: gui-dist
path: slimevr-gui-dist.tar.gz

package-desktop:
name: Package Desktop (${{ matrix.platform }} - ${{ matrix.os }})
needs: [setup-matrix, build-server-jar, build-gui-frontend, build-bindings-provider]
needs: [setup-matrix, build-server-jar, build-gui-frontend]
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.setup-matrix.outputs.matrix) }}
Expand All @@ -173,28 +131,20 @@ jobs:
uses: actions/checkout@v6
with:
submodules: recursive
- name: Get tags
run: git fetch --tags origin --recurse-submodules=no --force
- name: Setup PNPM
uses: pnpm/action-setup@v6
uses: pnpm/action-setup@v4
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: Download Server Jar
uses: actions/download-artifact@v8
uses: actions/download-artifact@v6
with:
name: server-jar
path: server
- if: contains(fromJson(needs.setup-matrix.outputs.matrix-cpp).include.*.os, matrix.os)
name: Download bindings provider artifact
uses: actions/download-artifact@v8
with:
name: bindings-provider-${{ matrix.platform }}-${{ matrix.os }}
path: bindings-provider/build/${{ matrix.platform == 'windows' && 'win' || 'linux' }}-${{ endsWith(matrix.os, '-arm') && 'arm64' || 'x64' }}
- name: Download GUI Dist
uses: actions/download-artifact@v8
uses: actions/download-artifact@v6
with:
name: gui-dist
- name: Extract GUI for Electron
Expand All @@ -208,15 +158,10 @@ jobs:
mkdir -p gui/dist/artifacts/linux/ \
gui/dist/artifacts/win \
gui/dist/artifacts/mac
VERSION=$(git --no-pager tag --sort -taggerdate --points-at HEAD | head -1)
[ -z "$VERSION" ] && VERSION="0.0.0"
VERSION="${VERSION#v}"
echo "Building version: $VERSION"
pnpm i
cd gui
pnpm i
pnpm exec electron-builder --${{ matrix.platform }} \
${{ matrix.platform == 'macos' && '--universal' || '' }} \
--config.extraMetadata.version="$VERSION" \
--publish never
- name: Collect and Rename Artifacts
shell: bash
Expand Down Expand Up @@ -244,7 +189,7 @@ jobs:
echo "Collected files:"
ls -lh "$DEST_DIR"
- name: Upload For Release
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@v6
with:
name: release-${{ matrix.platform }}-${{ matrix.os }}
path: release-out/*
Expand All @@ -258,17 +203,15 @@ jobs:
uses: actions/checkout@v6
with:
submodules: recursive
- name: Get tags
run: git fetch --tags origin --recurse-submodules=no --force
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'adopt'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v6
uses: gradle/actions/setup-gradle@v5
- name: Download GUI Dist
uses: actions/download-artifact@v8
uses: actions/download-artifact@v6
with:
name: gui-dist
- name: Extract GUI for Android
Expand All @@ -285,52 +228,34 @@ jobs:
- name: Prepare APK
run: cp server/android/build/outputs/apk/release/*.apk ./SlimeVR-android.apk
- name: Upload APK
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@v6
with:
name: release-android
path: SlimeVR-android.apk

- name: Build Google Play release bundle
if: startsWith(github.ref, 'refs/tags/')
run: ./gradlew :server:android:bundleRelease
env:
ANDROID_STORE_FILE: ${{ secrets.ANDROID_GPLAY_STORE_FILE }}
ANDROID_STORE_PASSWD: ${{ secrets.ANDROID_GPLAY_STORE_PASSWD }}
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_GPLAY_KEY_ALIAS }}
ANDROID_KEY_PASSWD: ${{ secrets.ANDROID_GPLAY_KEY_PASSWD }}

- name: Upload the Google Play artifact
uses: actions/upload-artifact@v7
if: startsWith(github.ref, 'refs/tags/')
with:
# Artifact name
name: 'SlimeVR-Android-GPDev' # optional, default is artifact
# A file, directory or wildcard pattern that describes what to upload
path: server/android/build/outputs/bundle/release/*

create-release:
name: Finalize Release Draft
needs: [package-desktop, bundle-android, build-server-jar, build-gui-frontend]
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
steps:
- name: Download All Release Artifacts
uses: actions/download-artifact@v8
uses: actions/download-artifact@v6
with:
pattern: release-*
path: release-out
merge-multiple: true
- name: Download Server Jar
uses: actions/download-artifact@v8
uses: actions/download-artifact@v6
with:
name: server-jar
path: server
- name: Download GUI Dist
uses: actions/download-artifact@v8
uses: actions/download-artifact@v6
with:
name: gui-dist
- name: Create GitHub Release
uses: softprops/action-gh-release@v3
uses: softprops/action-gh-release@v2
with:
draft: true
generate_release_notes: true
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/generate-update-manifest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@ jobs:
run: |
npx @slimevr/update-manifest-generator@latest

- uses: actions/upload-artifact@v7
- uses: actions/upload-artifact@v6
with:
name: "update-manifest.json"
path: ./update-manifest.json

- name: Upload update-manifest.json to release
uses: softprops/action-gh-release@v3
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ secrets.UPDATE_MANIFEST_RELEASE_TAG }}
files: ./update-manifest.json
Expand Down
6 changes: 4 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@
# Syncthing ignore file
.stignore

# Ignore .idea
.idea
# Ignore .idea, except shared project inspection profiles
.idea/*
!.idea/inspectionProfiles/
!.idea/inspectionProfiles/*.xml

# Ignore .fleet
.fleet
Expand Down
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
[submodule "solarxr-protocol"]
path = solarxr-protocol
url = https://github.com/SlimeVR/SolarXR-Protocol.git
[submodule "svr-bindings-provider/openvr"]
path = bindings-provider/openvr
url = https://github.com/ValveSoftware/openvr.git
30 changes: 30 additions & 0 deletions .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions .idea/inspectionProfiles/profiles_settings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading