From a29133a443f2f3d4c38181e28d19005d64b1d94c Mon Sep 17 00:00:00 2001 From: patrick Date: Fri, 31 May 2024 23:49:34 +0000 Subject: [PATCH] Simplify flake (#12) Co-authored-by: Smaug123 <3138005+Smaug123@users.noreply.github.com> Reviewed-on: https://gitea.patrickstevens.co.uk/patrick/puregym-unofficial-dotnet/pulls/12 --- .config/dotnet-tools.json | 2 +- .fantomasignore | 1 + PureGym.Test/PureGym.Test.fsproj | 2 +- PureGym.Test/TestJson.fs | 5 + flake.lock | 12 +-- flake.nix | 30 +----- nix/deps.nix | 162 +++++++------------------------ nix/fetchDeps.sh | 73 -------------- 8 files changed, 54 insertions(+), 233 deletions(-) create mode 100644 .fantomasignore delete mode 100755 nix/fetchDeps.sh diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 2a80148..2351a50 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "fantomas": { - "version": "6.2.0", + "version": "6.3.4", "commands": [ "fantomas" ] diff --git a/.fantomasignore b/.fantomasignore new file mode 100644 index 0000000..9b42106 --- /dev/null +++ b/.fantomasignore @@ -0,0 +1 @@ +.direnv/ diff --git a/PureGym.Test/PureGym.Test.fsproj b/PureGym.Test/PureGym.Test.fsproj index 1624b9b..ccb86d2 100644 --- a/PureGym.Test/PureGym.Test.fsproj +++ b/PureGym.Test/PureGym.Test.fsproj @@ -14,7 +14,7 @@ - + diff --git a/PureGym.Test/TestJson.fs b/PureGym.Test/TestJson.fs index 1e97558..f706433 100644 --- a/PureGym.Test/TestJson.fs +++ b/PureGym.Test/TestJson.fs @@ -1,7 +1,12 @@ namespace PureGym.Test open System +open System.IO +open System.Reflection.Metadata +open System.Reflection.PortableExecutable +open System.Text.Json open System.Text.Json.Nodes +open System.Text.Json.Serialization open NUnit.Framework open FsUnitTyped open PureGym diff --git a/flake.lock b/flake.lock index e0fb3ff..a2e89bf 100644 --- a/flake.lock +++ b/flake.lock @@ -5,11 +5,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1701680307, - "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1703792911, - "narHash": "sha256-BzCq3IiOlTghYtgPngIUnJDeGlRdz4RJGyS9faONrOE=", + "lastModified": 1717189619, + "narHash": "sha256-oPvX7QAu/7R+OOXPeXMj9qTm7fo1+S1Yw34ed+GI+WA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "1d17e304ac93dde75178d7ad47abbecc0357c937", + "rev": "ee19df781051348c4b1aaf895779ab47f50b7c26", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 61e31c6..4b02ce2 100644 --- a/flake.nix +++ b/flake.nix @@ -6,7 +6,7 @@ }; }; - outputs = inputs @ { + outputs = { self, nixpkgs, flake-utils, @@ -39,38 +39,16 @@ runHook postInstall ''; }; - fantomas = dotnetTool "fantomas" (builtins.fromJSON (builtins.readFile ./.config/dotnet-tools.json)).tools.fantomas.version "sha256-83RodORaC3rkYfbFMHsYLEtl0+8+akZXcKoSJdgwuUo="; + fantomas = dotnetTool "fantomas" (builtins.fromJSON (builtins.readFile ./.config/dotnet-tools.json)).tools.fantomas.version (builtins.head (builtins.filter (elem: elem.pname == "fantomas") ((import ./nix/deps.nix) {fetchNuGet = x: x;}))).sha256; in { packages = { fantomas = fantomas; - fetchDeps = let - flags = []; - runtimeIds = ["win-x64"] ++ map (system: pkgs.dotnetCorePackages.systemToDotnetRid system) dotnet-sdk.meta.platforms; - in - pkgs.writeShellScriptBin "fetch-${pname}-deps" (builtins.readFile (pkgs.substituteAll { - src = ./nix/fetchDeps.sh; - pname = pname; - binPath = pkgs.lib.makeBinPath [pkgs.coreutils dotnet-sdk (pkgs.nuget-to-nix.override {inherit dotnet-sdk;})]; - projectFiles = toString (pkgs.lib.toList projectFile); - testProjectFiles = toString (pkgs.lib.toList testProjectFile); - rids = pkgs.lib.concatStringsSep "\" \"" runtimeIds; - packages = dotnet-sdk.packages; - storeSrc = pkgs.srcOnly { - src = ./.; - pname = pname; - version = version; - }; - })); default = pkgs.buildDotnetModule { - pname = pname; + inherit pname version projectFile testProjectFile dotnet-sdk dotnet-runtime; name = "puregym"; - version = version; src = ./.; - projectFile = projectFile; - nugetDeps = ./nix/deps.nix; + nugetDeps = ./nix/deps.nix; # `nix build .#default.passthru.fetch-deps && ./result` and put the result here doCheck = true; - dotnet-sdk = dotnet-sdk; - dotnet-runtime = dotnet-runtime; }; }; apps = { diff --git a/nix/deps.nix b/nix/deps.nix index ec682d2..29fc652 100644 --- a/nix/deps.nix +++ b/nix/deps.nix @@ -1,11 +1,6 @@ # This file was automatically generated by passthru.fetch-deps. -# Please don't edit it manually, your changes might get overwritten! +# Please dont edit it manually, your changes might get overwritten! {fetchNuGet}: [ - (fetchNuGet { - pname = "fantomas"; - version = "6.2.0"; - sha256 = "sha256-83RodORaC3rkYfbFMHsYLEtl0+8+akZXcKoSJdgwuUo="; - }) (fetchNuGet { pname = "ApiSurface"; version = "4.0.12"; @@ -21,6 +16,11 @@ version = "3.2.0"; sha256 = "1qxpv8v10p5wn162lzdm193gdl6c5f81zadj8h889dprlnj3g8yr"; }) + (fetchNuGet { + pname = "fantomas"; + version = "6.3.4"; + sha256 = "1bf57pzvl0i1bgic2vf08mqlzzbd5kys1ip9klrhm4f155ksm9fm"; + }) (fetchNuGet { pname = "Fastenshtein"; version = "1.0.0.8"; @@ -28,19 +28,14 @@ }) (fetchNuGet { pname = "FsCheck"; - version = "2.16.6"; - sha256 = "176rwky6b5rk8dzldiz4068p7m9c5y9ygzbhadrs14jkl94pc56n"; + version = "3.0.0-rc1"; + sha256 = "0s7ks13gwdzzjpzqqshyg72q8max3b6a7yb91jkzyg597m7anrwk"; }) (fetchNuGet { pname = "FSharp.Core"; version = "6.0.1"; sha256 = "0qks2aadkhsffg9a6xq954ll9xacnph852avd7ljh9n2g6vj06qj"; }) - (fetchNuGet { - pname = "FSharp.Core"; - version = "8.0.100"; - sha256 = "06z3vg8yj7i83x6gmnzl2lka1bp4hzc07h6mrydpilxswnmy2a0l"; - }) (fetchNuGet { pname = "FsUnit"; version = "5.6.1"; @@ -48,58 +43,28 @@ }) (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; - version = "6.0.25"; - sha256 = "1vrmqn5j6ibwkqasbf7x7n4w5jdclnz3giymiwvym2wa0y5zc59q"; + version = "6.0.30"; + sha256 = "17k3l8xd5bsyk69bm5q4nxbpb4i0izw1kzmzi7j3p8pmm9prgrpy"; }) (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; - version = "6.0.25"; - sha256 = "0mgcs4si7mwd0f555s1vg17pf4nqfaijd1pci359l1pgrmv70rrg"; - }) - (fetchNuGet { - pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; - version = "8.0.0"; - sha256 = "05y1xb5fw8lzvb4si77a5qwfwfz1855crqbphrwky6x9llivbhkx"; + version = "6.0.30"; + sha256 = "1n4v5przbrjhzj01b6qijpdc2jbsxr66ijvd0483qxh4s0b4jppr"; }) (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; - version = "6.0.25"; - sha256 = "0wvzhqhlmlbnpa18qp8m3wcrlcgj3ckvp3iv2n7g8vb60c3238aq"; - }) - (fetchNuGet { - pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; - version = "8.0.0"; - sha256 = "18zdbcb2bn7wy1dp14z5jyqiiwr9rkad1lcb158r5ikjfq1rg5iw"; + version = "6.0.30"; + sha256 = "18v0l07q74m5xxaf6y6dkmr6and8ivya0nslffnr4djrxcbiygdr"; }) (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; - version = "6.0.25"; - sha256 = "1pywgvb8ck1d5aadmijd5s3z6yclchd9pa6dsahijmm55ibplx36"; - }) - (fetchNuGet { - pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; - version = "8.0.0"; - sha256 = "1nbxzmj6cnccylxis67c54c0ik38ma4rwdvgg6sxd6r04219maqm"; + version = "6.0.30"; + sha256 = "0p53lyqmr5n2ym202pbgmsd9b9aa6jar7ic04dcq86h2g77r5jqk"; }) (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; - version = "6.0.25"; - sha256 = "1zlf0w7i6r02719dv3nw4jy14sa0rs53i89an5alz5qmywdy3f1d"; - }) - (fetchNuGet { - pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; - version = "8.0.0"; - sha256 = "1wqkbjd1ywv9w397l7rsb89mijc5n0hv7jq9h09xfz6wn9qsp152"; - }) - (fetchNuGet { - pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; - version = "6.0.25"; - sha256 = "1fbsnm4056cpd4avgpi5sq05m1yd9k4x229ckxpr4q7yc94sncwy"; - }) - (fetchNuGet { - pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; - version = "8.0.0"; - sha256 = "08vlmswmiyp2nxlr9d77716hk7kz7h9x5bl8wh76xzbj5id1xlb2"; + version = "6.0.30"; + sha256 = "009srl8vazkjnd93xr6k1m353spbki9gn1yzp4zgazgbrini6rqc"; }) (fetchNuGet { pname = "Microsoft.CodeCoverage"; @@ -113,103 +78,48 @@ }) (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; - version = "6.0.25"; - sha256 = "052388yjivzkfllkss0nljbzmjx787jqdjsbb6ls855sp6wh9xfd"; - }) - (fetchNuGet { - pname = "Microsoft.NETCore.App.Host.linux-arm64"; - version = "8.0.0"; - sha256 = "0bpg3v9dnalz7yh7lsgriw9rnm9jx37mqhhvf7snznb3sfk7rgwb"; + version = "6.0.30"; + sha256 = "0l3gjhmnjd5n67w83smqyhmfcwzszafjgcbq8kdwxiwwh2m6nh2i"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; - version = "6.0.25"; - sha256 = "103xy6kncjwbbchfnpqvsjpjy92x3dralcg9pw939jp0dwggwarz"; - }) - (fetchNuGet { - pname = "Microsoft.NETCore.App.Host.linux-x64"; - version = "8.0.0"; - sha256 = "1c7l68bm05d94x5wk1y33mnd4v8m196vyprgrzqnh94yrqy6fkf7"; + version = "6.0.30"; + sha256 = "0ss3108c2h7afypvliyqixv4dll60sq9iwqy90k1p132znpszrmb"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; - version = "6.0.25"; - sha256 = "13m14pdx5xfxky07xgxf6hjd7g9l4k6k40wvp9znhvn27pa0wdxv"; + version = "6.0.30"; + sha256 = "08k5v35mvcs712kb0vcfjd1dsas5rgwrmv8rn87mzjb2p6ajl3n3"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; - version = "6.0.25"; - sha256 = "132pgjhv42mqzx4007sd59bkds0fwsv5xaz07y2yffbn3lzr228k"; - }) - (fetchNuGet { - pname = "Microsoft.NETCore.App.Host.osx-x64"; - version = "8.0.0"; - sha256 = "0jmzf58vv45j0hqlxq8yalpjwi328vp2mjr3h0pdg0qr143iivnr"; - }) - (fetchNuGet { - pname = "Microsoft.NETCore.App.Host.win-x64"; - version = "6.0.25"; - sha256 = "039433rm4w37h9qri11v3lrpddpz7zcly9kq8vmk6w1ixzlqwf01"; - }) - (fetchNuGet { - pname = "Microsoft.NETCore.App.Host.win-x64"; - version = "8.0.0"; - sha256 = "1n8yr13df2f6jhxpfazs6rxahfqm18fhjvfm16g5d60c3za1hwnk"; + version = "6.0.30"; + sha256 = "02x38c68xan8hlr59mindcl4rcx49bbh4bibh6fw1l4rrijb38lw"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; - version = "6.0.25"; - sha256 = "0jfhmfxpx1h4f3axgf60gc8d4cnlvbb853400kag6nk0875hr0x1"; + version = "6.0.30"; + sha256 = "1wqqjhhlqz4dmijcx3kg3hnwq0s0jzqsddaksskzhq8avr4ziy18"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; - version = "6.0.25"; - sha256 = "0jpcmva1l8z36r4phz055l7fz9s6z8pv8pqc4ia69mhhgvr0ks7y"; - }) - (fetchNuGet { - pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; - version = "8.0.0"; - sha256 = "0gwqmkmr7jy3sjh9gha82amlry41gp8nwswy2iqfw54f28db63n7"; + version = "6.0.30"; + sha256 = "0xfhcig3gj3986rxp3dhnd8hvnj4nvyhz1fz7kpx342d3g53wb37"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; - version = "6.0.25"; - sha256 = "012jml0bqxbspahf1j4bvvd91pz85hsbcyhq00gxczcazhxpkhz4"; - }) - (fetchNuGet { - pname = "Microsoft.NETCore.App.Runtime.linux-x64"; - version = "8.0.0"; - sha256 = "042cjvnwrrjs3mw5q8q5kinh0cwkks33i3n1vyifaid2jbr3wlc0"; + version = "6.0.30"; + sha256 = "1s81sj8lnb8szqawxh3vc8wi815ln12cyhrl3f7hwcpay57xgswx"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; - version = "6.0.25"; - sha256 = "0wgwxpyy1n550sw7npjg69zpxknwn0ay30m2qybvqb5mj857qzxi"; - }) - (fetchNuGet { - pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; - version = "8.0.0"; - sha256 = "06ndp4wh1cap01dql3nixka4g56bf6ipmqys7xaxvg4xisf79x8d"; + version = "6.0.30"; + sha256 = "0s71k92daakzwish65gmn4nniy6bf2hv34c0sb6m1hv3criqxmp4"; }) (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; - version = "6.0.25"; - sha256 = "08vr7c5bg5x3w35l54z1azif7ysfc2yiyz50ip1dl0mpqywvlswr"; - }) - (fetchNuGet { - pname = "Microsoft.NETCore.App.Runtime.osx-x64"; - version = "8.0.0"; - sha256 = "1kh5bnaf6h9mr4swcalrp304625frjiw6mlz1052rxwzsdq98a96"; - }) - (fetchNuGet { - pname = "Microsoft.NETCore.App.Runtime.win-x64"; - version = "6.0.25"; - sha256 = "03snpmx204xvc9668riisvvdjjgdqhwj7yjp85w5lh8j8ygrqkif"; - }) - (fetchNuGet { - pname = "Microsoft.NETCore.App.Runtime.win-x64"; - version = "8.0.0"; - sha256 = "054icf5jjnwnswrnv1r05x3pfjvacbz6g3dj8caar1zp53k49rkk"; + version = "6.0.30"; + sha256 = "0xybqg2wd240r1nm2vrbn2qbfqfnqsmxn1012zzwjn17wa2si9a1"; }) (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; diff --git a/nix/fetchDeps.sh b/nix/fetchDeps.sh deleted file mode 100755 index e15b822..0000000 --- a/nix/fetchDeps.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/bash - -# This file was adapted from -# https://github.com/NixOS/nixpkgs/blob/b981d811453ab84fb3ea593a9b33b960f1ab9147/pkgs/build-support/dotnet/build-dotnet-module/default.nix#L173 -set -euo pipefail -export PATH="@binPath@" -for arg in "$@"; do - case "$arg" in - --keep-sources|-k) - keepSources=1 - shift - ;; - --help|-h) - echo "usage: $0 [--keep-sources] [--help] " - echo " The path to write the lockfile to. A temporary file is used if this is not set" - echo " --keep-sources Don't remove temporary directories upon exit, useful for debugging" - echo " --help Show this help message" - exit - ;; - esac -done -tmp=$(mktemp -td "@pname@-tmp-XXXXXX") -export tmp -HOME=$tmp/home -exitTrap() { - test -n "${ranTrap-}" && return - ranTrap=1 - if test -n "${keepSources-}"; then - echo -e "Path to the source: $tmp/src\nPath to the fake home: $tmp/home" - else - rm -rf "$tmp" - fi - # Since mktemp is used this will be empty if the script didnt succesfully complete - if ! test -s "$depsFile"; then - rm -rf "$depsFile" - fi -} -trap exitTrap EXIT INT TERM -dotnetRestore() { - local -r project="${1-}" - local -r rid="$2" - dotnet restore "${project-}" \ - -p:ContinuousIntegrationBuild=true \ - -p:Deterministic=true \ - --packages "$tmp/nuget_pkgs" \ - --runtime "$rid" \ - --no-cache \ - --force -} -declare -a projectFiles=( @projectFiles@ ) -declare -a testProjectFiles=( @testProjectFiles@ ) -export DOTNET_NOLOGO=1 -export DOTNET_CLI_TELEMETRY_OPTOUT=1 -depsFile=$(realpath "${1:-$(mktemp -t "@pname@-deps-XXXXXX.nix")}") -mkdir -p "$tmp/nuget_pkgs" -storeSrc="@storeSrc@" -src="$tmp/src" -cp -rT "$storeSrc" "$src" -chmod -R +w "$src" -cd "$src" -echo "Restoring project..." -rids=("@rids@") -for rid in "${rids[@]}"; do - (( ${#projectFiles[@]} == 0 )) && dotnetRestore "" "$rid" - for project in "${projectFiles[@]-}" "${testProjectFiles[@]-}"; do - dotnetRestore "$project" "$rid" - done -done -echo "Successfully restored project" -echo "Writing lockfile..." -echo -e "# This file was automatically generated by passthru.fetch-deps.\n# Please don't edit it manually, your changes might get overwritten!\n" > "$depsFile" -nuget-to-nix "$tmp/nuget_pkgs" "@packages@" >> "$depsFile" -echo "Successfully wrote lockfile to $depsFile"