diff --git a/.envrc b/.envrc index 3550a30f2..5bf8fc159 100644 --- a/.envrc +++ b/.envrc @@ -1 +1,3 @@ -use flake +source_url "https://raw.githubusercontent.com/cachix/devenv/95f329d49a8a5289d31e0982652f7058a189bfca/direnvrc" "sha256-d+8cBpDfDBj41inrADaJt+bDWhOktwslgoP5YiGJ1v0=" + +use devenv \ No newline at end of file diff --git a/.gitignore b/.gitignore index 671232683..26d497d3e 100644 --- a/.gitignore +++ b/.gitignore @@ -28,4 +28,13 @@ vendor/ os-packages/ mage_output_file.go mage-static -.direnv/ + +# Devenv +.devenv* +devenv.local.nix + +# direnv +.direnv + +# pre-commit +.pre-commit-config.yaml diff --git a/devenv.lock b/devenv.lock new file mode 100644 index 000000000..bbdd100a4 --- /dev/null +++ b/devenv.lock @@ -0,0 +1,139 @@ +{ + "nodes": { + "devenv": { + "locked": { + "dir": "src/modules", + "lastModified": 1723409744, + "owner": "cachix", + "repo": "devenv", + "rev": "116159a4bfeaa79662f4c39dbfaf2fce6a5737f7", + "treeHash": "ccbae63055f83e669996a88a3cbb4ef69febd002", + "type": "github" + }, + "original": { + "dir": "src/modules", + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "treeHash": "2addb7b71a20a25ea74feeaf5c2f6a6b30898ecb", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "treeHash": "ca14199cabdfe1a06a7b1654c76ed49100a689f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1716977621, + "owner": "cachix", + "repo": "devenv-nixpkgs", + "rev": "4267e705586473d3e5c8d50299e71503f16a6fb6", + "treeHash": "6d9f1f7ca0faf1bc2eeb397c78a49623260d3412", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "rolling", + "repo": "devenv-nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1723282977, + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a781ff33ae258bbcfd4ed6e673860c3e923bf2cc", + "treeHash": "75cf71293251c603e56d6076098346b4128b2ec8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-unstable": { + "locked": { + "lastModified": 1723175592, + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5e0ca22929f3342b19569b21b2f3462f053e497b", + "treeHash": "a6b38d5232ae0ae0c666c37f5ec9620c14f30369", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1723202784, + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "c7012d0c18567c889b948781bc74a501e92275d1", + "treeHash": "0016d5d748d61d3bfaa69d3c02abff74740a46b7", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "root": { + "inputs": { + "devenv": "devenv", + "nixpkgs": "nixpkgs", + "nixpkgs-unstable": "nixpkgs-unstable", + "pre-commit-hooks": "pre-commit-hooks" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/devenv.nix b/devenv.nix new file mode 100644 index 000000000..d20e6e256 --- /dev/null +++ b/devenv.nix @@ -0,0 +1,30 @@ +{ pkgs, lib, config, inputs, ... }: + +let + pkgs-unstable = import inputs.nixpkgs-unstable { system = pkgs.stdenv.system; }; +in { + packages = with pkgs; [ + # General tools + git-cliff + # Frontend tools + cypress + # API tools + golangci-lint mage + # Desktop + electron + ]; + + languages = { + javascript = { + enable = true; + pnpm = { + enable = true; + package = pkgs-unstable.pnpm; + }; + }; + + go = { + enable = true; + }; + }; +} diff --git a/devenv.yaml b/devenv.yaml new file mode 100644 index 000000000..ca369f328 --- /dev/null +++ b/devenv.yaml @@ -0,0 +1,17 @@ +# yaml-language-server: $schema=https://devenv.sh/devenv.schema.json +inputs: + nixpkgs: + url: github:cachix/devenv-nixpkgs/rolling + nixpkgs-unstable: + url: github:NixOS/nixpkgs/nixos-unstable + +# If you're using non-OSS software, you can set allowUnfree to true. +allowUnfree: true + +# If you're willing to use a package that's vulnerable +# permittedInsecurePackages: +# - "openssl-1.1.1w" + +# If you have more than one devenv you can merge them +#imports: +# - ./backend diff --git a/flake.lock b/flake.lock deleted file mode 100644 index 6e333b889..000000000 --- a/flake.lock +++ /dev/null @@ -1,25 +0,0 @@ -{ - "nodes": { - "nixpkgs": { - "locked": { - "lastModified": 1722957468, - "narHash": "sha256-SQ0TCC4aklOhN/OzcztrKqDLY8SjpIZcyvTulzhDXs0=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "2a13929e1f191b3690dd2f2db13098b04adb9043", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "type": "indirect" - } - }, - "root": { - "inputs": { - "nixpkgs": "nixpkgs" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/flake.nix b/flake.nix deleted file mode 100644 index d0995344d..000000000 --- a/flake.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - description = "Vikunja dev environment"; - - outputs = { self, nixpkgs }: - let pkgs = nixpkgs.legacyPackages.x86_64-linux; - in { - defaultPackage.x86_64-linux = - pkgs.mkShell { buildInputs = with pkgs; [ - # General tools - git-cliff - # Frontend tools - pnpm cypress - # API tools - go golangci-lint mage - # Desktop - electron - ]; - }; - }; -} diff --git a/frontend/package.json b/frontend/package.json index c63cb74a0..9c7410255 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -13,7 +13,7 @@ }, "homepage": "https://vikunja.io/", "funding": "https://opencollective.com/vikunja", - "packageManager": "pnpm@9.5.0", + "packageManager": "pnpm@9.6.0", "keywords": [ "todo", "productivity",