-
-
Notifications
You must be signed in to change notification settings - Fork 24
/
release.nix
386 lines (354 loc) · 12.2 KB
/
release.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
{
package = import ./default.nix {};
changelog = {
# TODO: change the version number to the actual lorri versions, (and transfer the changelog to a real conventional changelog file, then update lorri self-upgrade (maybe use toml?))
# Find the current version number with `git log --pretty=%h | wc -l`
entries = [
{
version = 957;
changes = ''
Add support for Nix Flakes. Lorri will still prefer a shell.nix by
default, but if overridden or only a flake.nix is available, Lorri
will build a flake and use its default devShell.
'';
}
{
version = 956;
changes = ''
Delegate adding roots to the nix-daemon. This improves a number of
use cases, especially for new users.
'';
}
{
version = 955;
changes = ''
Improvements to the watcher code, including smoother debounce of
filesystem events. This provides more reliable builds, and fewer
unneeded ones.
'';
}
{
version = 954;
changes = ''
Better output from lorri info, including information about the
project, and details about how lorri is running.
'';
}
{
version = 953;
changes = ''
Always log to stderr.
'';
}
{
version = 952;
changes = ''
Fix systemd configuration: replace ProjectHome with ProjectSystem.
'';
}
{
version = 951;
changes = ''
Provide a better error message when the user tries to use flakes,
which we don’t support yet.
'';
}
{
version = 950;
changes = ''
Fix default `.envrc` generated by `lorri init`.
Add a fallback to direnv’s `use nix` in case lorri is not installed.
'';
}
{
version = 949;
changes = ''
Fix the behaviour of the `--verbose` flag’s logging output.
Some messages were logged but not printed.
'';
}
{
version = 900;
changes = ''
Add a `lorri gc` command to allow the gc to operate on old or removed
projects.
'';
}
{
version = 889;
changes = ''
Fix another file descriptor leak in the daemon.
'';
}
{
version = 886;
changes = ''
Various fixes to lorri internal stream-events after daemon socket
protocol rewrite. It would hang and leak file descriptors in the
daemon.
'';
}
{
version = 881;
changes = ''
Fix watcher not starting if the first nix build fails.
We were not actually watching the nix file, only indirectly picking
it up from the first nix build; so if that failed, we’d not watch any file.
Now lorri will always add the `shell.nix` to the watchlist,
ensuring it triggers a rebuild as soon as it is fixed again.
'';
}
{
version = 872;
changes = ''
Add support for builtins.filterSource, refine builtins.readDir
The filter of filterSource is only respected for direct children of
the source root. For example, if you use nix-gitignore, .git is not
watched.
builtins.readDir'ed paths are now not watched recursively, which should
greatly reduce inotiy resource consumption.
'';
}
{
version = 739;
changes = ''
Rewrite the internal daemon socket protocol.
This should be a purely internal change, but if you have been using
`lorri internal stream-events` in your scripts, the json output might
have changed. Since the command is internal and not yet stable,
not much time was spent keeping it compatible, so beware.
The `--socket-address` command to `lorri ping` was removed for now,
since only having it for this command doesn’t make much sense, it
looks like it was originally introduced for debugging purposes.
In the long run we could add a `LORRI_SOCKET` environment variable.
'';
}
{
version = 723;
changes = ''
Fix `lorri direnv` triggering an unconditional rebuild every time it is run.
After fixing up the build loop people suddenly started noticing that
lorri was evaluating every time something ran `lorri direnv`, which
could potentially be every time the user switched between buffers in
the editor.
This is not the intended behaviour, since we should run an
unconditional build only the first time the project is added to the
watcher, and after rely on the watcher to notify us of any file
changes (or the user running `lorri internal ping` to force a
rebuild).
'';
}
{
version = 702;
changes = ''
Fix the build loop.
Previously, any change (for example a direnv ping or a change in the nix files)
would add a new build invocation to the queue, and the builds would all be done
one after the other.
However, a new build will always use the *newest* state of the files anyway,
so the CPU time spent on all the other builds will be wasted (and hog your processor).
Now lorri will only
1. finish the current build (if running)
2. schedule at maximum one additional build if requested
This should improve the resource use drastically in some situations.
'';
}
{
version = 676;
changes = ''
Make `lorri daemon` exit with exit code 0 instead of 130/143 on
SIGINT or SIGTERM.
'';
}
{
version = 655;
changes = ''
Add `lorri self-upgrade branch` sub-subcommand.
This enables us to point users to a branch name,
in order to test out fixes from repository branches.
'';
}
{
version = 630;
changes = ''
Make the `lorri internal stream-events` Varlink events public, with sum-style types.
'';
}
{
version = 626;
changes = ''
Added manpage for lorri(1).
'';
}
{
version = 581;
changes = ''
Fix `lorri shell` for zsh. ZDOTDIR is loaded correctly.
'';
}
{
version = 572;
changes = ''
`lorri daemon` got a `--extra-nix-options` flag to pass further options
to nix as a JSON object, or at least a subset.
`builders` and `substituters` is supported for now.
'';
}
{
version = 568;
changes = ''
Added the `$IN_LORRI_SHELL` environment variable to allow
differentiation between `nix-shell` and `lorri shell`. The variable is
set to the path of the currently-evaluated shell file.
'';
}
{
version = 534;
changes = ''
Rename `lorri internal` commands for consistency:
- `start_user_shell` -> `start-user-shell`
- `stream_events` -> `stream-events`
'';
}
{
version = 518;
changes = ''
Internal subcommands is now visible for all users inside the internal
subcommand. Example `lorri internal stream_events` instead of `lorri internal__stream_events`.
'';
}
{
version = 517;
changes = ''
- Fix issue with spaces in PATH entries
'';
}
{
version = 510;
changes = ''
- The shell.nix template used by `lorri init` was changed to take
`pkgs` as an argument with import of `<nixpkgs>` used as the
default value.
'';
}
{
version = 476;
changes = ''
Introduces internal subcommand `lorri internal__stream_events`
The subcommand emits a stream of JSON objects representing build
events, suitable for use in `jq | xargs` style scripts. Useful, for
instance, to feed libnotify or to decorate a shell prompt.
'';
}
{
version = 467;
changes = ''
- Rename internal subcommand `lorri ping_` to `lorri internal__ping`
- Rename internal subcommand `lorri start_user_shell_` to
`lorri internal__start_user_shell`
'';
}
{
version = 450;
changes = ''
- Re-introduce `lorri shell`, which builds a project environment and
launches a shell in it with no direnv setup required.
'';
}
{
version = 309;
changes = ''
- The deprecated `lorri shell` command was removed.
- Fix problem with non-UTF8 build output, arbitrary bytes are now fine.
- Add `--shell-file` option to `info`, `watch` and `direnv`.
- `daemon`:
- Panic when any thread panics.
Before the daemon would just hang doing nothing.
- `direnv`:
- Print info messages when daemon is not running
and/or project has not yet been evaluated.
- Take `PWD`, `OLDPWD` and `SHELL` from user environment
instead of shell file context.
- Set `IN_NIX_SHELL` to `impure`.
- Fixes SSL certificates being set to bogus path.
- `watch`:
- Add `--once` option to exit after one build.
- Watcher logic:
- Emulate Nix’s `default.nix` behaviour instead of watching
the parent directory recursively.
- Build logic:
- Split `nix-instantiate` and `nix-build`, to provide
fine-grained status events.
'';
}
{
version = 223;
changes = ''
- Running lorri on a project where the nix-shell dependencies
are already cached (e.g. by running `nix-shell` directly before)
is a completely local operation now (no binary cache is queried).
- `lorri build` was a no-op, so it was removed
'';
}
{
version = 171;
changes = ''
gc_root dirs move from `~/.cache/lorri` to `~/.cache/lorri/gc_roots`.
You can delete every file in `~/.cache/lorri`.
'';
}
{
version = 132;
changes = ''
Version #130 claimed to add Go support through GOPATH and
the appended environment variables, however this wasn't
true.
This version does, actually, do that.
We also fixed a bug where appended environment variables
would include a leading delimiter even if it wasn't
previously set.
'';
}
{
version = 130;
changes = ''
`lorri watch` now supports executing shellHooks.
- shellHooks run inside `lorri watch`, and not in `direnv`
This means they will execute only once, while inside the
build sandbox.
shellHooks are not to be used for starting services or
printing text to the CLI, as these actions will not
execute when the shell is entered.
- Environment variables which are appended to the
environment with Nixpkgs'
addToSearchPathWithCustomDelimiter function will
automatically be appended to the user's environment when
entering the lorri shell.
Notably, this means Go support.
Many functions in Nixpkgs use
addtoSearchPathWithCustomDelimiter, including:
- addToSearchPath
- addPythonPath
- R libraries
among others.
Overall, this should allow a much more "nix-shell"-like
experience.
'';
}
{
version = 129;
changes = ''
`lorri watch` now supports Vim's method of writing to files.
Previously, the watch behavior would support a maximum of
three reloads (#66).
'';
}
{
version = 59;
changes = ''
New: self-upgrade command.
'';
}
];
};
}