From ae6c7142dd0c58eadcda2676a53f348b7c8efbe9 Mon Sep 17 00:00:00 2001 From: 0xda157 Date: Wed, 29 Apr 2026 19:40:13 -0700 Subject: [PATCH 1/9] flake.lock: update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flake lock file updates: • Updated input 'nixpkgs': 'github:nixos/nixpkgs/fbcf476f790d8a217c3eab4e12033dc4a0f6d23c?narHash=sha256-wNO3%2BKs2jZJ4nTHMuks%2BcxAiVBGNuEBXsT29Bz6HASo%3D' (2025-08-14) → 'github:nixos/nixpkgs/1c3fe55ad329cbcb28471bb30f05c9827f724c76?narHash=sha256-bxrdOn8SCOv8tN4JbTF/TXq7kjo9ag4M%2BC8yzzIRYbE%3D' (2026-04-27) --- fission/flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fission/flake.lock b/fission/flake.lock index ab5f11367e..bbfee60198 100644 --- a/fission/flake.lock +++ b/fission/flake.lock @@ -2,11 +2,11 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1755186698, - "narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=", + "lastModified": 1777268161, + "narHash": "sha256-bxrdOn8SCOv8tN4JbTF/TXq7kjo9ag4M+C8yzzIRYbE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "fbcf476f790d8a217c3eab4e12033dc4a0f6d23c", + "rev": "1c3fe55ad329cbcb28471bb30f05c9827f724c76", "type": "github" }, "original": { From 902f7382e3b0216965367783fa1017d41bebf625 Mon Sep 17 00:00:00 2001 From: 0xda157 Date: Wed, 29 Apr 2026 19:51:34 -0700 Subject: [PATCH 2/9] chore(nix): add node, bun, and git-lfs to dev shell --- fission/flake.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fission/flake.nix b/fission/flake.nix index 71d3f45ab4..e528f98e60 100644 --- a/fission/flake.nix +++ b/fission/flake.nix @@ -19,6 +19,9 @@ devShells = forEachSupportedSystem (pkgs: { default = pkgs.mkShell { nativeBuildInputs = with pkgs; [ + nodejs + bun + git-lfs playwright-driver.browsers ]; From 9d776fb4ccb75fb8a981634dd02a74d1f02bca2a Mon Sep 17 00:00:00 2001 From: 0xda157 Date: Wed, 29 Apr 2026 20:29:26 -0700 Subject: [PATCH 3/9] chore(nix): move flake to top-level --- fission/flake.lock => flake.lock | 0 fission/flake.nix => flake.nix | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename fission/flake.lock => flake.lock (100%) rename fission/flake.nix => flake.nix (96%) diff --git a/fission/flake.lock b/flake.lock similarity index 100% rename from fission/flake.lock rename to flake.lock diff --git a/fission/flake.nix b/flake.nix similarity index 96% rename from fission/flake.nix rename to flake.nix index e528f98e60..1ef94b4d54 100644 --- a/fission/flake.nix +++ b/flake.nix @@ -17,7 +17,7 @@ in { devShells = forEachSupportedSystem (pkgs: { - default = pkgs.mkShell { + fission = pkgs.mkShell { nativeBuildInputs = with pkgs; [ nodejs bun From c1750269a5ed92b1470c6160bdda5d8ea4044050 Mon Sep 17 00:00:00 2001 From: 0xda157 Date: Wed, 29 Apr 2026 20:34:52 -0700 Subject: [PATCH 4/9] chore(nix): add dev shell for exporter --- flake.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/flake.nix b/flake.nix index 1ef94b4d54..612b1b7765 100644 --- a/flake.nix +++ b/flake.nix @@ -30,6 +30,14 @@ PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS = true; }; }; + exporter = pkgs.mkShell { + packages = with pkgs; [ + python3 + black + isort + bun + ]; + }; }); formatter = forEachSupportedSystem (pkgs: pkgs.nixfmt-tree); From c1a4df05bbb05f4955865e6562048de0ea04fdf6 Mon Sep 17 00:00:00 2001 From: 0xda157 Date: Wed, 29 Apr 2026 20:39:13 -0700 Subject: [PATCH 5/9] chore: use /usr/bin/env bash --- installer/exporter/OSX/Scripts/preinstall | 2 +- installer/exporter/OSX/build.sh | 2 +- protocols/proto_compile.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/installer/exporter/OSX/Scripts/preinstall b/installer/exporter/OSX/Scripts/preinstall index 014f372637..e6a2456c21 100755 --- a/installer/exporter/OSX/Scripts/preinstall +++ b/installer/exporter/OSX/Scripts/preinstall @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash FUSION_ADDIN_LOCATION=~/Library/Application\ Support/Autodesk/ApplicationPlugins/ diff --git a/installer/exporter/OSX/build.sh b/installer/exporter/OSX/build.sh index 9b13e2d29a..93896d514b 100755 --- a/installer/exporter/OSX/build.sh +++ b/installer/exporter/OSX/build.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash FUSION_ADDIN_LOCATION=~/Library/Application\ Support/Autodesk/ApplicationPlugins/ EXPORTER_SOURCE_DIR=../../../exporter/SynthesisFusionAddin/ diff --git a/protocols/proto_compile.sh b/protocols/proto_compile.sh index 589880d7f4..2c319d5796 100755 --- a/protocols/proto_compile.sh +++ b/protocols/proto_compile.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash if ! [ -d ../api/Api/Gen/ ] then mkdir ../api/Api/Gen/ From 7acc86f24cc361cddfe5d7354a236be7c88e4794 Mon Sep 17 00:00:00 2001 From: 0xda157 Date: Wed, 29 Apr 2026 20:46:22 -0700 Subject: [PATCH 6/9] chore: add direnv for nix shells --- .gitignore | 3 ++- exporter/.envrc | 3 +++ fission/.envrc | 3 +++ multiplayer/.envrc | 3 +++ 4 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 exporter/.envrc create mode 100644 fission/.envrc create mode 100644 multiplayer/.envrc diff --git a/.gitignore b/.gitignore index bdcb57b628..903449744b 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ renderer/ .DS_Store *.pkg *.exe -.idea \ No newline at end of file +.idea +**/.direnv diff --git a/exporter/.envrc b/exporter/.envrc new file mode 100644 index 0000000000..6ea2921ca0 --- /dev/null +++ b/exporter/.envrc @@ -0,0 +1,3 @@ +if command -v nix &>/dev/null; then + use flake .#exporter +fi diff --git a/fission/.envrc b/fission/.envrc new file mode 100644 index 0000000000..71aeecdbba --- /dev/null +++ b/fission/.envrc @@ -0,0 +1,3 @@ +if command -v nix &>/dev/null; then + use flake .#fission +fi diff --git a/multiplayer/.envrc b/multiplayer/.envrc new file mode 100644 index 0000000000..71aeecdbba --- /dev/null +++ b/multiplayer/.envrc @@ -0,0 +1,3 @@ +if command -v nix &>/dev/null; then + use flake .#fission +fi From e7134fe4df2ce9740fa75b8015fcbabe8ae3f5d3 Mon Sep 17 00:00:00 2001 From: 0xda157 Date: Wed, 29 Apr 2026 20:59:12 -0700 Subject: [PATCH 7/9] chore(ci): add checks for nix flake --- .github/workflows/NixFlakeCheck.yml | 28 ++++++++++++++++++++++++++++ flake.nix | 3 +++ 2 files changed, 31 insertions(+) create mode 100644 .github/workflows/NixFlakeCheck.yml diff --git a/.github/workflows/NixFlakeCheck.yml b/.github/workflows/NixFlakeCheck.yml new file mode 100644 index 0000000000..72fcd4a87e --- /dev/null +++ b/.github/workflows/NixFlakeCheck.yml @@ -0,0 +1,28 @@ +--- +name: Nix Flake - Check + +on: + workflow_dispatch: {} + push: + branches: [ prod, dev ] + pull_request: + branches: [ prod, dev ] + +jobs: + flake-check: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v6 + + - uses: cachix/install-nix-action@v31 + + - run: nix flake check + + formatting-check: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v6 + + - uses: cachix/install-nix-action@v31 + + - run: nix fmt -- --ci diff --git a/flake.nix b/flake.nix index 612b1b7765..55241c75cd 100644 --- a/flake.nix +++ b/flake.nix @@ -41,5 +41,8 @@ }); formatter = forEachSupportedSystem (pkgs: pkgs.nixfmt-tree); + + # Build all devShells, instead of just verifying they are deviations + checks = forEachSupportedSystem (pkgs: inputs.self.devShells.${pkgs.stdenv.hostPlatform.system}); }; } From 1305c8b308415329d3a96a693453d0a9e041ee99 Mon Sep 17 00:00:00 2001 From: 0xda157 Date: Tue, 12 May 2026 11:40:15 -0700 Subject: [PATCH 8/9] chore(nix): set default devShell to fission --- flake.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 55241c75cd..5515ea04ca 100644 --- a/flake.nix +++ b/flake.nix @@ -4,7 +4,7 @@ inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; outputs = - inputs: + { self, nixpkgs }: let supportedSystems = [ "x86_64-linux" @@ -13,10 +13,11 @@ "aarch64-darwin" ]; forEachSupportedSystem = - f: inputs.nixpkgs.lib.genAttrs supportedSystems (system: f inputs.nixpkgs.legacyPackages.${system}); + f: nixpkgs.lib.genAttrs supportedSystems (system: f nixpkgs.legacyPackages.${system}); in { devShells = forEachSupportedSystem (pkgs: { + default = self.devShells.${pkgs.stdenv.hostPlatform.system}.fission; fission = pkgs.mkShell { nativeBuildInputs = with pkgs; [ nodejs @@ -43,6 +44,6 @@ formatter = forEachSupportedSystem (pkgs: pkgs.nixfmt-tree); # Build all devShells, instead of just verifying they are deviations - checks = forEachSupportedSystem (pkgs: inputs.self.devShells.${pkgs.stdenv.hostPlatform.system}); + checks = forEachSupportedSystem (pkgs: self.devShells.${pkgs.stdenv.hostPlatform.system}); }; } From 0211df11e798b477d9c6a75afe75167356602f40 Mon Sep 17 00:00:00 2001 From: 0xda157 Date: Tue, 12 May 2026 11:47:34 -0700 Subject: [PATCH 9/9] chore(contributing.md): add development with nix section --- CONTRIBUTING.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 849ff17e3f..c6409fd311 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,6 +23,14 @@ Be sure to fill out the pull request template accordingly to make reviewing your # How to Contribute +### Development with Nix + +It's entirely possible to contribute to Synthesis without using Nix, but some may +prefer to use it. In order to use Nix with synthesis, you must first [install nix](https://nixos.org/download/), +[enable flakes](https://wiki.nixos.org/wiki/Flakes#Setup), then you can enter +one of shells with `nix develop` (e.g. `nix develop .#syntehsis`). You can also +use [direnv](https://direnv.net/) to automatically enter into the relevant dev-shell. + ### Found a bug? Have an idea for a feature? Please [contact us](#Contact-Us) to let us know about the issue or feature!