cleanroom implementation of a chess engine. doesn't work :)

change flake (?), update ci to use nix

+103 -27
+9 -12
.tangled/workflows/deploy.yaml
··· 5 5 dependencies: 6 6 nixpkgs: 7 7 - nix 8 - - cargo 9 - - rustc 10 - - rustfmt 11 - - clippy 12 - 13 8 steps: 14 - - name: "lint & fmt" 15 - command: | 16 - cargo clippy 17 - cargo fmt --check 18 - - name: test 19 - command: | 20 - cargo test 9 + - name: build 10 + command: nix build 11 + #- name: "lint & fmt" 12 + # command: | 13 + # cargo clippy 14 + # cargo fmt --check 15 + #- name: test 16 + # command: | 17 + # cargo test
+61
flake.lock
··· 21 21 "type": "github" 22 22 } 23 23 }, 24 + "fenix_2": { 25 + "inputs": { 26 + "nixpkgs": [ 27 + "naersk", 28 + "nixpkgs" 29 + ], 30 + "rust-analyzer-src": "rust-analyzer-src_2" 31 + }, 32 + "locked": { 33 + "lastModified": 1752475459, 34 + "narHash": "sha256-z6QEu4ZFuHiqdOPbYss4/Q8B0BFhacR8ts6jO/F/aOU=", 35 + "owner": "nix-community", 36 + "repo": "fenix", 37 + "rev": "bf0d6f70f4c9a9cf8845f992105652173f4b617f", 38 + "type": "github" 39 + }, 40 + "original": { 41 + "owner": "nix-community", 42 + "repo": "fenix", 43 + "type": "github" 44 + } 45 + }, 24 46 "flake-utils": { 25 47 "inputs": { 26 48 "systems": "systems" ··· 39 61 "type": "github" 40 62 } 41 63 }, 64 + "naersk": { 65 + "inputs": { 66 + "fenix": "fenix_2", 67 + "nixpkgs": [ 68 + "nixpkgs" 69 + ] 70 + }, 71 + "locked": { 72 + "lastModified": 1752689277, 73 + "narHash": "sha256-uldUBFkZe/E7qbvxa3mH1ItrWZyT6w1dBKJQF/3ZSsc=", 74 + "owner": "nix-community", 75 + "repo": "naersk", 76 + "rev": "0e72363d0938b0208d6c646d10649164c43f4d64", 77 + "type": "github" 78 + }, 79 + "original": { 80 + "owner": "nix-community", 81 + "repo": "naersk", 82 + "type": "github" 83 + } 84 + }, 42 85 "nixpkgs": { 43 86 "locked": { 44 87 "lastModified": 1751741127, ··· 59 102 "inputs": { 60 103 "fenix": "fenix", 61 104 "flake-utils": "flake-utils", 105 + "naersk": "naersk", 62 106 "nixpkgs": "nixpkgs" 63 107 } 64 108 }, ··· 70 114 "owner": "rust-lang", 71 115 "repo": "rust-analyzer", 72 116 "rev": "2d518c73d9a9de0dc96d013db7fd98b964f3a7de", 117 + "type": "github" 118 + }, 119 + "original": { 120 + "owner": "rust-lang", 121 + "ref": "nightly", 122 + "repo": "rust-analyzer", 123 + "type": "github" 124 + } 125 + }, 126 + "rust-analyzer-src_2": { 127 + "flake": false, 128 + "locked": { 129 + "lastModified": 1752428706, 130 + "narHash": "sha256-EJcdxw3aXfP8Ex1Nm3s0awyH9egQvB2Gu+QEnJn2Sfg=", 131 + "owner": "rust-lang", 132 + "repo": "rust-analyzer", 133 + "rev": "591e3b7624be97e4443ea7b5542c191311aa141d", 73 134 "type": "github" 74 135 }, 75 136 "original": {
+33 -15
flake.nix
··· 6 6 url = "github:nix-community/fenix"; 7 7 inputs.nixpkgs.follows = "nixpkgs"; 8 8 }; 9 - #naersk = { 10 - # url = "github:nix-community/naersk"; 11 - # inputs.nixpkgs.follows = "nixpkgs"; 12 - #}; 9 + naersk = { 10 + url = "github:nix-community/naersk"; 11 + inputs.nixpkgs.follows = "nixpkgs"; 12 + }; 13 13 }; 14 14 15 - outputs = { self, flake-utils, fenix, nixpkgs }: 15 + outputs = { self, flake-utils, fenix, naersk, nixpkgs }: 16 16 flake-utils.lib.eachDefaultSystem (system: 17 17 let 18 18 pkgs = (import nixpkgs) { 19 19 inherit system; 20 20 }; 21 21 22 - #toolchain = fenix.packages.${system}.stable; 22 + toolchain = fenix.packages.${system}.stable.toolchain; 23 23 24 - #naersk' = naersk.lib.${system}.override { 25 - # rustc = toolchain.rustc; 26 - # cargo = toolchain.cargo; 27 - #}; 24 + naersk' = naersk.lib.${system}.override { 25 + rustc = toolchain; 26 + cargo = toolchain; 27 + }; 28 28 29 29 in { 30 30 # For `nix build` & `nix run`: 31 - #defaultPackage = naersk'.buildPackage { 32 - # src = ./.; 33 - #}; 31 + packages.default = naersk'.buildPackage { 32 + src = ./.; 33 + }; 34 + 35 + formatter = toolchain; 36 + 37 + checks = { 38 + build = self.packages.${system}.default; 39 + #fmt = pkgs.runCommand "fmt-check" { buildInputs = [ toolchain ]; } '' 40 + # cargo fmt --check 41 + # touch $out 42 + #''; 43 + #clippy = pkgs.runCommand "clippy-check" { buildInputs = [ toolchain ]; } '' 44 + # cargo clippy 45 + # touch $out 46 + #''; 47 + #tests = pkgs.runCommand "tests" { buildInputs = [ toolchain ]; } '' 48 + # cargo test 49 + # touch $out 50 + #''; 51 + }; 34 52 35 53 # For `nix develop` (optional, can be skipped): 36 - devShell = pkgs.mkShell { 37 - nativeBuildInputs = [ fenix.packages.${system}.stable.toolchain ]; 54 + devShells.default = pkgs.mkShell { 55 + buildInputs = [ toolchain ]; 38 56 }; 39 57 } 40 58 );