diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index be6f524..2351a50 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "fantomas": { - "version": "6.0.3", + "version": "6.3.4", "commands": [ "fantomas" ] diff --git a/.editorconfig b/.editorconfig index 27a9645..2543fde 100644 --- a/.editorconfig +++ b/.editorconfig @@ -2,7 +2,6 @@ root=true [*] charset=utf-8 -end_of_line=crlf trim_trailing_whitespace=true insert_final_newline=true indent_style=space diff --git a/CipherSuite.Test/CipherSuite.Test.fsproj b/CipherSuite.Test/CipherSuite.Test.fsproj index 664e4ef..6ac2112 100644 --- a/CipherSuite.Test/CipherSuite.Test.fsproj +++ b/CipherSuite.Test/CipherSuite.Test.fsproj @@ -1,29 +1,29 @@ - - - - net7.0 - false - - - - - - - - - - - - - - - - - - - - - - - - + + + + net8.0 + false + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CipherSuite/CipherSuite.fsproj b/CipherSuite/CipherSuite.fsproj index 063bd72..36bba67 100644 --- a/CipherSuite/CipherSuite.fsproj +++ b/CipherSuite/CipherSuite.fsproj @@ -1,7 +1,7 @@ - + - net7.0 + net8.0 true true diff --git a/flake.lock b/flake.lock index 64315a4..14bcd88 100644 --- a/flake.lock +++ b/flake.lock @@ -1,12 +1,15 @@ { "nodes": { "flake-utils": { + "inputs": { + "systems": "systems" + }, "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -17,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1671548329, - "narHash": "sha256-OrC6R6zihRjFqdKFF3/vD3bkz44poONSII8ncre1Wh0=", + "lastModified": 1717112898, + "narHash": "sha256-7R2ZvOnvd9h8fDd65p0JnB7wXfUvreox3xFdYWd1BnY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ba6ba2b90096dc49f448aa4d4d783b5081b1cc87", + "rev": "6132b0f6e344ce2fe34fc051b72fb46e34f668e0", "type": "github" }, "original": { @@ -35,6 +38,21 @@ "flake-utils": "flake-utils", "nixpkgs": "nixpkgs" } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index c830d23..e6c8a70 100644 --- a/flake.nix +++ b/flake.nix @@ -7,7 +7,6 @@ }; outputs = { - self, nixpkgs, flake-utils, ... @@ -17,8 +16,8 @@ projectFile = "./CipherSuite/CipherSuite.fsproj"; testProjectFile = "./CipherSuite.Test/CipherSuite.Test.fsproj"; pname = "dotnet-cipher-suite"; - dotnet-sdk = pkgs.dotnet-sdk_7; - dotnet-runtime = pkgs.dotnetCorePackages.runtime_7_0; + dotnet-sdk = pkgs.dotnet-sdk_8; + dotnet-runtime = pkgs.dotnetCorePackages.runtime_8_0; version = "0.1"; dotnetTool = toolName: toolVersion: sha256: pkgs.stdenvNoCC.mkDerivation rec { @@ -41,45 +40,17 @@ }; in { packages = { - fantomas = dotnetTool "fantomas" (builtins.fromJSON (builtins.readFile ./.config/dotnet-tools.json)).tools.fantomas.version "sha256-zYSF53RPbGEQt1ZBcHVYqEPHrFlmI1Ty3GQPW1uxPWw="; - 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; - }; - })); + 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; default = pkgs.buildDotnetModule { - pname = pname; + inherit pname version projectFile testProjectFile dotnet-sdk dotnet-runtime; name = "cipher-suite"; - version = version; src = ./.; - projectFile = projectFile; nugetDeps = ./nix/deps.nix; doCheck = true; - dotnet-sdk = dotnet-sdk; - dotnet-runtime = dotnet-runtime; }; }; devShell = pkgs.mkShell { - buildInputs = with pkgs; [ - (with dotnetCorePackages; - combinePackages [ - dotnet-sdk_7 - dotnetPackages.Nuget - ]) - ]; + buildInputs = [dotnet-sdk]; packages = [ pkgs.alejandra pkgs.nodePackages.markdown-link-check diff --git a/nix/deps.nix b/nix/deps.nix index e1ffa21..7316306 100644 --- a/nix/deps.nix +++ b/nix/deps.nix @@ -1,21 +1,51 @@ # 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 = "coverlet.collector"; version = "6.0.0"; sha256 = "12j34vrkmph8lspbafnqmfnj2qvysz1jcrks2khw798s6dwv0j90"; }) + (fetchNuGet { + pname = "fantomas"; + version = "6.3.4"; + sha256 = "1bf57pzvl0i1bgic2vf08mqlzzbd5kys1ip9klrhm4f155ksm9fm"; + }) (fetchNuGet { pname = "FSharp.Core"; - version = "7.0.0"; - sha256 = "1pgk3qk9p1s53wvja17744x4bf7zs3a3wf0dmxi66w1w06z7i85x"; + version = "8.0.300"; + sha256 = "158xxr9hnhz2ibyzzp2d249angvxfc58ifflm4g3hz8qx9zxaq04"; }) (fetchNuGet { pname = "FsUnit"; version = "5.3.0"; sha256 = "0fqjada5fysqfhqsxj9dxc849dckfn1256ra9yafx9w7npihaffa"; }) + (fetchNuGet { + pname = "Microsoft.AspNetCore.App.Ref"; + version = "7.0.19"; + sha256 = "19pjhnx49srxp1qwknc390gapc44019wy4adz9caxpryw0ch4l1x"; + }) + (fetchNuGet { + pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; + version = "7.0.19"; + sha256 = "0i8mhcy09lmjqhzqmwvp0n5qkizdqin3vap206b2ad28yl6963wz"; + }) + (fetchNuGet { + pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; + version = "7.0.19"; + sha256 = "1zypq8jgk9z3kn3mmkdijvc9h65iyy7gaif9p0vhnylmvvm89jzp"; + }) + (fetchNuGet { + pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; + version = "7.0.19"; + sha256 = "1dqilsqwwymy7fq2pnvjggn5mfvizqsisla0c36w53mg6xx7vn78"; + }) + (fetchNuGet { + pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; + version = "7.0.19"; + sha256 = "1jmg7sxjnsmaa7ag6bgyhndlhvibswcmnrw0n6sr6crw2y0in2a3"; + }) (fetchNuGet { pname = "Microsoft.Build.Tasks.Git"; version = "1.1.1"; @@ -31,6 +61,51 @@ version = "17.6.0"; sha256 = "1bnwpwg7k72z06027ip4yi222863r8sv14ck9nj8h64ckiw2r256"; }) + (fetchNuGet { + pname = "Microsoft.NETCore.App.Host.linux-arm64"; + version = "7.0.19"; + sha256 = "1dv4vk07a7kj53sk1nf63h51swzk9yl4j7jdvkc5w2v0z5a186hm"; + }) + (fetchNuGet { + pname = "Microsoft.NETCore.App.Host.linux-x64"; + version = "7.0.19"; + sha256 = "0jcfmaq4ckcpywwxm1ack9xa001aic8pn85ggglidxgcfdr6mpzd"; + }) + (fetchNuGet { + pname = "Microsoft.NETCore.App.Host.osx-arm64"; + version = "7.0.19"; + sha256 = "0xyc0mdd7nnmc9wjzq8nxwrqagmiqxds8qwghr2rgxw55b9slc33"; + }) + (fetchNuGet { + pname = "Microsoft.NETCore.App.Host.osx-x64"; + version = "7.0.19"; + sha256 = "1srx048x6nv88s308bfn2vsg9gyqvzmgn4xlzknm9yr89c5pm96q"; + }) + (fetchNuGet { + pname = "Microsoft.NETCore.App.Ref"; + version = "7.0.19"; + sha256 = "1z9zfzccqn6yh9mcqrkiidjagzmnk4blrralzb8q0b7mnf1b1ww9"; + }) + (fetchNuGet { + pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; + version = "7.0.19"; + sha256 = "0m30aykrzl48i8589qn8z89hm9p1yl71cdigv1f09fmwb7c6jfm3"; + }) + (fetchNuGet { + pname = "Microsoft.NETCore.App.Runtime.linux-x64"; + version = "7.0.19"; + sha256 = "12zgh8pvbdl99zs0rq5ajbl91r976i47hdrrvxl2hbsxl2ws3brs"; + }) + (fetchNuGet { + pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; + version = "7.0.19"; + sha256 = "08gs703rz3agmisy3vsdnyv5lyc32qb8kvfljzszbyqlaf5cxhd1"; + }) + (fetchNuGet { + pname = "Microsoft.NETCore.App.Runtime.osx-x64"; + version = "7.0.19"; + sha256 = "1lwnwxscza5m7pk83fwjz5r9kms3ybag2rl07f3gqp3b203iyyxx"; + }) (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; diff --git a/nix/fetchDeps.sh b/nix/fetchDeps.sh deleted file mode 100644 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"