2 files changed,
+19,
-17
+17,
-14
1@@ -24,7 +24,7 @@ inputs:
2 secrets:
3 url: git+https://git.kilimanjaro.io/secrets
4 devkit:
5- url: path:../devkit # sibling-repo layout, or a git+https URL
6+ url: git+https://git.kilimanjaro.io/devkit
7 flake: false
8 imports:
9 - devkit
10@@ -34,16 +34,21 @@ That's the whole wiring. A project's own `devenv.nix` only needs its
11 project-specific packages/env; devkit's `enterShell` is concatenated with the
12 project's.
13
14-## Live updates (why `path:`)
15+Each tool is added only when its input is declared. Disable one with, e.g.,
16+`devkit.bug.enable = false;` in `devenv.nix` (used by a project that ships its
17+own wrapper, like sovrn).
18
19-With a `path:` input, edits to `devenv.nix` take effect on the **next**
20-`devenv shell` — no `devenv update`. (Verified on devenv 2.4.0.)
21+## Updating
22
23-## Promoting to a shared git input
24+Changes are pinned per project in `devenv.lock`:
25
26-When the module stabilizes, push it to `git+https://git.kilimanjaro.io/devenv-base`
27-and switch each project's `devkit.url` to that. Then changes are pulled with
28-`devenv update devkit` per project (pinned in `devenv.lock`, reproducible).
29+```sh
30+devenv update devkit
31+```
32+
33+For live, unpinned edits while iterating on devkit, temporarily point `devkit.url`
34+at a sibling clone (`url: path:../devkit`); edits then take effect on the next
35+`devenv shell` with no update.
36
37 ## New project scaffold
38
39@@ -52,16 +57,14 @@ affects `devenv shell`/`test`/`build`. Use the Nix flake template instead:
40
41 ```sh
42 mkdir ~/projects/newthing && cd ~/projects/newthing
43-nix flake init -t path:/home/btburke/projects/devkit # copies devenv.nix + devenv.yaml (+ .envrc)
44+nix flake init -t git+https://git.kilimanjaro.io/devkit
45 ```
46
47-(Once pushed: `nix flake init -t git+https://git.kilimanjaro.io/devenv-base`.)
48-
49-The scaffold's `devenv.yaml` uses `path:../devkit`, so the new project must be
50-a sibling of devkit under `~/projects` — adjust otherwise.
51+(Local clone: `nix flake init -t path:/home/btburke/projects/devkit`.)
52
53 ## Gotchas
54
55 - Not for the tool repos themselves (`bug`, `secrets`, `local-code-review`):
56 importing devkit there would be circular.
57-- devkit's own `devenv.yaml` is only for standalone use in this directory.
58+- devkit's own `devenv.yaml` is only for standalone use in this directory; it is
59+ ignored when devkit is imported (devenv#2205).
+2,
-3
1@@ -1,6 +1,5 @@
2-# New-project scaffold. Copy alongside devenv.nix.
3+# New-project scaffold. Copied by `nix flake init -t git+https://git.kilimanjaro.io/devkit`.
4 #
5-# `path:../devkit` assumes the project is a sibling of devkit under ~/projects.
6 # devenv#2205: the three tool inputs must be declared here (devkit's own
7 # devenv.yaml is not evaluated when imported).
8 inputs:
9@@ -13,7 +12,7 @@ inputs:
10 secrets:
11 url: git+https://git.kilimanjaro.io/secrets
12 devkit:
13- url: path:../devkit
14+ url: git+https://git.kilimanjaro.io/devkit
15 flake: false
16 imports:
17 - devkit