From 502f637c8f306fe52cea681095c8094c4db14826 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20J=C3=B6rg?= Date: Sun, 25 Jan 2026 09:14:39 +0100 Subject: [PATCH] devel: Remove devcontainer and use_nix in direnv Start divide and conquer migration to gitea actions. --- .devcontainer/Dockerfile | 32 ----------- .devcontainer/devcontainer.json | 11 ---- .devcontainer/settings.vscode.json | 3 -- .envrc | 9 +--- .gitattributes | 5 ++ .gitea/workflows/build.yaml | 24 +++++++++ LICENSE | 2 +- default.nix | 3 +- nix/sources.json | 56 ++++++++----------- src/default.nix | 8 +-- src/deps.json | 87 ++++++++++++++++++++++++++++++ 11 files changed, 143 insertions(+), 97 deletions(-) delete mode 100644 .devcontainer/Dockerfile delete mode 100644 .devcontainer/devcontainer.json delete mode 100644 .devcontainer/settings.vscode.json create mode 100644 .gitattributes create mode 100644 .gitea/workflows/build.yaml create mode 100644 src/deps.json diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile deleted file mode 100644 index 4b17ca6..0000000 --- a/.devcontainer/Dockerfile +++ /dev/null @@ -1,32 +0,0 @@ -FROM mcr.microsoft.com/dotnet/sdk:10.0 - -# Bun version -ARG BUN_INSTALL=/usr/local -ARG BUN_VERSION=bun-v1.2.16 - -# Install node, 7zip, yarn, git, process tools -RUN apt-get update \ - && apt-get install -y p7zip-full git procps ssh-client unzip - -# Install Bun -RUN set -eux; \ - curl -fsSL https://bun.sh/install > /usr/local/bin/install-bun \ - && chmod +x /usr/local/bin/install-bun \ - && /usr/local/bin/install-bun $BUN_VERSION debug-info - -ENV BUN_INSTALL=/usr/local - -# Clean up -RUN apt-get autoremove -y \ - && apt-get clean -y \ - && rm -rf /var/lib/apt/lists/* - -# Trouble brewing -RUN rm /etc/ssl/openssl.cnf - -# Add dotnet tools to path to pick up fake and paket installation -ENV PATH="/root/.dotnet/tools:${PATH}" - -# Copy endpoint specific user settings into container to specify -# .NET Core should be used as the runtime. -COPY settings.vscode.json /root/.vscode-remote/data/Machine/settings.json \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json deleted file mode 100644 index 7c2c1d7..0000000 --- a/.devcontainer/devcontainer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "SAFE", - "dockerFile": "Dockerfile", - "appPort": [8080, 8085], - "extensions": [ - "ionide.ionide-fsharp", - "ms-dotnettools.csharp", - "editorconfig.editorconfig", - "msjsdiag.debugger-for-chrome" - ] -} \ No newline at end of file diff --git a/.devcontainer/settings.vscode.json b/.devcontainer/settings.vscode.json deleted file mode 100644 index 5b238fa..0000000 --- a/.devcontainer/settings.vscode.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "FSharp.fsacRuntime":"netcore" -} \ No newline at end of file diff --git a/.envrc b/.envrc index 82b2b9e..d229f47 100644 --- a/.envrc +++ b/.envrc @@ -1,9 +1,4 @@ #!/usr/bin/env bash # the shebang is ignored, but nice for editors - -if type -P lorri &>/dev/null; then - eval "$(lorri direnv)" -else - echo 'while direnv evaluated .envrc, could not find the command "lorri" [https://github.com/nix-community/lorri]' - use nix -fi +dotenv_if_exists +use nix diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..854c852 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +# The lines below force F# highlighting for common F# source file extensions. +*.fs linguist-language=F# +*.fsi linguist-language=FSharp +*.fsx linguist-language=FSharp +*.fsscript linguist-language=FSharp diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml new file mode 100644 index 0000000..b4a2353 --- /dev/null +++ b/.gitea/workflows/build.yaml @@ -0,0 +1,24 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/github-workflow.json +name: Build + +on: + push: + branches: [main] + pull_request: + branches: [main] + +env: + DOTNET_NOLOGO: true + DOTNET_CLI_TELEMETRY_OPTOUT: true + DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true + NUGET_XMLDOC_MODE: "" + DOTNET_MULTILEVEL_LOOKUP: 0 + +jobs: + build: + runs-on: nix + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Build + run: nix build -f . diff --git a/LICENSE b/LICENSE index 83581e2..bb43949 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2020 Serit Tromsø AS +Copyright (c) 2026 Oceanbox AS Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/default.nix b/default.nix index cb96545..77167e2 100644 --- a/default.nix +++ b/default.nix @@ -2,7 +2,6 @@ sources ? import ./nix, system ? builtins.currentSystem, pkgs ? import sources.nixpkgs { inherit system; }, - nix-utils ? import sources.nix-utils { }, }: let version = @@ -16,7 +15,6 @@ let dotnet-runtime = pkgs.dotnetCorePackages.runtime_10_0; geojson = pkgs.callPackage ./src { - inherit (nix-utils.output.lib.nuget) deps; inherit dotnet-sdk dotnet-runtime @@ -44,6 +42,7 @@ in fantomas fsautocomplete dotnet-sdk + nuget-to-json ]; NPINS_DIRECTORY = "nix"; diff --git a/nix/sources.json b/nix/sources.json index c1a2f30..4285e4d 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -1,36 +1,24 @@ { - "pins": { - "nix-utils": { - "type": "Git", - "repository": { - "type": "Git", - "url": "https://git.sr.ht/~mrtz/nix-utils" - }, - "branch": "trunk", - "submodules": false, - "revision": "098f594425d2b9dde0657becad0f6498d074f8b3", - "url": null, - "hash": "0hh52w1fkpr1xx6j8cjm6g88j2352yv2ysqm1q51j59y6f583vyb" - }, - "nixpkgs": { - "type": "Channel", - "name": "nixpkgs-unstable", - "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre909321.677fbe97984e/nixexprs.tar.xz", - "hash": "0i4jyr0xv8i90gxil1s36yqas4qfnp52bwr02fdx90chp31kchzv" - }, - "pre-commit": { - "type": "Git", - "repository": { - "type": "GitHub", - "owner": "cachix", - "repo": "git-hooks.nix" - }, - "branch": "master", - "submodules": false, - "revision": "548fc44fca28a5e81c5d6b846e555e6b9c2a5a3c", - "url": "https://github.com/cachix/git-hooks.nix/archive/548fc44fca28a5e81c5d6b846e555e6b9c2a5a3c.tar.gz", - "hash": "055laj9rhlh0dcdhdp0jzv82xh0zp6jf58h274xqqmj3vhyal55f" - } + "pins": { + "nixpkgs": { + "type": "Channel", + "name": "nixpkgs-unstable", + "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre909321.677fbe97984e/nixexprs.tar.xz", + "hash": "0i4jyr0xv8i90gxil1s36yqas4qfnp52bwr02fdx90chp31kchzv" }, - "version": 5 -} \ No newline at end of file + "pre-commit": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "cachix", + "repo": "git-hooks.nix" + }, + "branch": "master", + "submodules": false, + "revision": "548fc44fca28a5e81c5d6b846e555e6b9c2a5a3c", + "url": "https://github.com/cachix/git-hooks.nix/archive/548fc44fca28a5e81c5d6b846e555e6b9c2a5a3c.tar.gz", + "hash": "055laj9rhlh0dcdhdp0jzv82xh0zp6jf58h274xqqmj3vhyal55f" + } + }, + "version": 5 +} diff --git a/src/default.nix b/src/default.nix index 669c8bf..6646678 100644 --- a/src/default.nix +++ b/src/default.nix @@ -1,6 +1,4 @@ { - deps, - pkgs, dotnet-sdk, nix-gitignore, dotnet-runtime, @@ -18,11 +16,7 @@ buildDotnetModule { projectFile = "src/Oceanbox.GeoJson.fsproj"; dotnetRestoreFlags = "--force-evaluate"; - nugetDeps = deps { - inherit pkgs name; - lockfiles = [ ./packages.lock.json ]; - }; - + nugetDeps = ./deps.json; packNupkg = true; doCheck = false; } diff --git a/src/deps.json b/src/deps.json new file mode 100644 index 0000000..ac273af --- /dev/null +++ b/src/deps.json @@ -0,0 +1,87 @@ +[ + { + "pname": "Fable.Core", + "version": "3.1.6", + "hash": "sha256-QRmb28K6jgOyYFGfiv+HXBPidtpfyCEvaNwDqi4U0+o=" + }, + { + "pname": "Fable.Core", + "version": "3.6.2", + "hash": "sha256-boMLJxbOmSg9FiVKXpPoiMJN7rfVgfOuKOoZCA3pgEM=" + }, + { + "pname": "FSharp.Core", + "version": "10.0.101", + "hash": "sha256-i7crdE0/u+/mFCD1rNFc/iT5TFr8Dae9dNpVRmbpSbY=" + }, + { + "pname": "FSharp.Data", + "version": "6.4.0", + "hash": "sha256-8/iQA6anTybzseyvsvFV33jVVwrnYiKG1iqgwkqNeRc=" + }, + { + "pname": "FSharp.Data.Csv.Core", + "version": "6.4.0", + "hash": "sha256-jcw/6uDN0he/PhhopEvTydy2X13Xt3g3kKuVdt+8+oY=" + }, + { + "pname": "FSharp.Data.Html.Core", + "version": "6.4.0", + "hash": "sha256-HeljybTU019Z7HxFoErPM/HIAm32pJiKQM+kSyt63xw=" + }, + { + "pname": "FSharp.Data.Http", + "version": "6.4.0", + "hash": "sha256-Zn4dZCb46vr8LYR5donzeistFPSO8YYiXUU3Iqo+vKg=" + }, + { + "pname": "FSharp.Data.Json.Core", + "version": "6.4.0", + "hash": "sha256-dVhcVzUi//PFFFIML/5SWKrileeQ6IOd1VlGyEptaw0=" + }, + { + "pname": "FSharp.Data.Runtime.Utilities", + "version": "6.4.0", + "hash": "sha256-nD4U7mwZtFEUcD9XvPxhpot8FNl2YyhiLpjpjmFNAO0=" + }, + { + "pname": "FSharp.Data.WorldBank.Core", + "version": "6.4.0", + "hash": "sha256-ea2CZyHisqa1MnF70TBKfcMl6+W90MnLJ5Ctgjfk9SM=" + }, + { + "pname": "FSharp.Data.Xml.Core", + "version": "6.4.0", + "hash": "sha256-6eZWKdNjKMqufyOYolTximIS41gipBUNMKNn3HEiYw0=" + }, + { + "pname": "FSharpPlus", + "version": "1.6.1", + "hash": "sha256-MGwxfDTg6gJiS88yiqi1OGJk5WmaAFkVniniwF9Ilkc=" + }, + { + "pname": "Microsoft.NETCore.Platforms", + "version": "1.1.0", + "hash": "sha256-FeM40ktcObQJk4nMYShB61H/E8B7tIKfl9ObJ0IOcCM=" + }, + { + "pname": "NETStandard.Library", + "version": "2.0.3", + "hash": "sha256-Prh2RPebz/s8AzHb2sPHg3Jl8s31inv9k+Qxd293ybo=" + }, + { + "pname": "Newtonsoft.Json", + "version": "13.0.1", + "hash": "sha256-K2tSVW4n4beRPzPu3rlVaBEMdGvWSv/3Q1fxaDh4Mjo=" + }, + { + "pname": "Thoth.Json", + "version": "10.2.0", + "hash": "sha256-H1Fy0pI/bqzgDcltBI/UNum8mW4Ano1Vp8BSYY+U55k=" + }, + { + "pname": "Thoth.Json.Net", + "version": "12.0.0", + "hash": "sha256-1JlFBF6nIS5P80Kb/mpgI8gBtSy0V1OCGAK2Hzhdg30=" + } +]