diff --git a/.gitignore b/.gitignore index 07d69d2..9c88c4a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .pre-commit-config.yaml .direnv -result \ No newline at end of file +result +template/flake.lock \ No newline at end of file diff --git a/template/flake.lock b/template/flake.lock new file mode 100644 index 0000000..d1f6d78 --- /dev/null +++ b/template/flake.lock @@ -0,0 +1,159 @@ +{ + "nodes": { + "devshell-lib": { + "inputs": { + "git-hooks": "git-hooks", + "nixpkgs": [ + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1772603902, + "narHash": "sha256-GN5EC9m0flWDuc6qaB6QoIBD73yFnhl2PBIYXzSTGeQ=", + "ref": "v0.0.2", + "rev": "db4ed150e01e2f9245e668077245447d0089163f", + "revCount": 15, + "type": "git", + "url": "https://git.dgren.dev/eric/nix-flake-lib" + }, + "original": { + "ref": "v0.0.2", + "type": "git", + "url": "https://git.dgren.dev/eric/nix-flake-lib" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "NixOS", + "repo": "flake-compat", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "flake-compat", + "type": "github" + } + }, + "git-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1772024342, + "narHash": "sha256-+eXlIc4/7dE6EcPs9a2DaSY3fTA9AE526hGqkNID3Wg=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "6e34e97ed9788b17796ee43ccdbaf871a5c2b476", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "devshell-lib", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1770073757, + "narHash": "sha256-Vy+G+F+3E/Tl+GMNgiHl9Pah2DgShmIUBJXmbiQPHbI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "47472570b1e607482890801aeaf29bfb749884f6", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1770107345, + "narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "4533d9293756b63904b7238acb84ac8fe4c8c2c4", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1772542754, + "narHash": "sha256-WGV2hy+VIeQsYXpsLjdr4GvHv5eECMISX1zKLTedhdg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "8c809a146a140c5c8806f13399592dbcb1bb5dc4", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "devshell-lib": "devshell-lib", + "nixpkgs": "nixpkgs_3" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1770228511, + "narHash": "sha256-wQ6NJSuFqAEmIg2VMnLdCnUc0b7vslUohqqGGD+Fyxk=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "337a4fe074be1042a35086f15481d763b8ddc0e7", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/template/flake.nix b/template/flake.nix index 6975e32..0cb9224 100644 --- a/template/flake.nix +++ b/template/flake.nix @@ -4,7 +4,7 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; - devshell-lib.url = "git+https://git.dgren.dev/eric/nix-flake-lib"; + devshell-lib.url = "git+https://git.dgren.dev/eric/nix-flake-lib?ref=v0.0.2"; devshell-lib.inputs.nixpkgs.follows = "nixpkgs"; }; @@ -96,5 +96,50 @@ ); formatter = forAllSystems (system: (devshell-lib.lib.mkDevShell { inherit system; }).formatter); + + # Optional: release command (nix run .#release) + # + # The release script always updates VERSION first, then: + # 1) runs release steps in order (file writes and scripts) + # 2) runs postVersion hook + # 3) formats, stages, commits, tags, and pushes + # + # Runtime env vars available in release.run/postVersion: + # BASE_VERSION, CHANNEL, PRERELEASE_NUM, FULL_VERSION, FULL_TAG + # + # packages = forAllSystems ( + # system: + # { + # release = devshell-lib.lib.mkRelease { + # inherit system; + # + # release = [ + # { + # file = "src/version.ts"; + # content = '' + # export const APP_VERSION = "$FULL_VERSION" as const; + # ''; + # } + # { + # file = "internal/version/version.go"; + # content = '' + # package version + # + # const Version = "$FULL_VERSION" + # ''; + # } + # { + # run = '' + # sed -E -i "s#^([[:space:]]*my-lib\\.url = \")github:org/my-lib[^"]*(\";)#\\1github:org/my-lib?ref=$FULL_TAG\\2#" "$ROOT_DIR/flake.nix" + # ''; + # } + # ]; + # + # postVersion = '' + # echo "Released $FULL_TAG" + # ''; + # }; + # } + # ); }; }