]> Cypherpunks.ru repositories - goredo.git/blob - doc/news.texi
Unify news indentation
[goredo.git] / doc / news.texi
1 @node News
2 @cindex news
3 @unnumbered News
4
5 @anchor{Release 2_1_0}
6 @section Release 2.1.0
7 @itemize
8 @item
9     Mistakenly path to @file{.do} file was not absolute and OS can
10     refuse to run it because it is not in @env{$PATH}.
11 @end itemize
12
13 @anchor{Release 2_0_0}
14 @section Release 2.0.0
15 @itemize
16 @item
17     Huge quantity of performance optimisations.
18
19 @item
20     Fixed possible unexpected lock file closing.
21
22 @item
23     When resulting target has the same contents, it does not replace
24     already existing one. That was done previously. But now it also
25     copies the file's mode flags to the target (for example making it
26     executable).
27
28 @item
29     If @command{redo-*} command runs under control of another
30     (top-level) redo, then it does not parse the flags as options and
31     treat each argument as a target, allowing passing the targets with
32     dashes in the beginning.
33
34 @item
35     Prevented possible concurrent stderr writing by multiple running targets.
36
37 @item
38     @command{redo-depfix} command now always rewrites dependency files
39     and calculates checksums of the files.
40
41 @item
42     Own binary format is used for dependency files (@file{.dep}),
43     instead of recfile (@file{.rec}) one. It is several times smaller
44     and much faster to parse. You must run @command{redo-depfix} to
45     convert all existing @file{.redo/*.rec} files to that binary format.
46
47 @item
48     @command{redo-dep2rec} command appeared, that can convert
49     @file{.dep} to recfile on stdout.
50
51 @end itemize
52
53 @anchor{Release 1_32_0}
54 @section Release 1.32.0
55 @itemize
56 @item
57     Omit printing of the @code{resource deadlock avoided} warning when
58     trying to take the lock.
59 @end itemize
60
61 @anchor{Release 1_31_0}
62 @section Release 1.31.0
63 @itemize
64 @item
65     Fixed possible race when target can be built more than once.
66 @item
67     Print out finished targets much more quickly.
68 @end itemize
69
70 @anchor{Release 1_30_0}
71 @section Release 1.30.0
72 @itemize
73 @item
74     Fixed wrong OOD-cache value of source file dependency.
75     Targets could be rebuilt without any reason.
76 @end itemize
77
78 @anchor{Release 1_29_0}
79 @section Release 1.29.0
80 @itemize
81 @item
82     Fix possible error when two always-ed targets are run simultaneously.
83 @item
84     Updated dependant libraries.
85 @end itemize
86
87 @anchor{Release 1_28_0}
88 @section Release 1.28.0
89 @itemize
90 @item
91     Do not remove @file{.lock} files, that leads to possible races
92     between running targets. Although @command{nncp-cleanup lock}
93     can be used to cleanup.
94 @item
95     Updated dependant libraries.
96 @end itemize
97
98 @anchor{Release 1_27_1}
99 @section Release 1.27.1
100 @itemize
101 @item
102     Fixed lack of @file{.redo.}-prefix in temporary file names.
103 @end itemize
104
105 @anchor{Release 1_27_0}
106 @section Release 1.27.0
107 @itemize
108 @item
109     Improved out-of-date check and @file{.do} files search performance,
110     because of caching their results.
111 @end itemize
112
113 @anchor{Release 1_26_0}
114 @section Release 1.26.0
115 @itemize
116 @item
117     Debug output contained colour-related attribute even if
118     @env{$NO_COLOR=1} was set.
119 @item
120     Updated dependant libraries.
121 @end itemize
122
123 @anchor{Release 1_25_0}
124 @section Release 1.25.0
125 @itemize
126 @item
127     Target's lock file requires a token from the jobserver now. So
128     amount of simultaneously opened lock files depends on job slots
129     available.
130 @end itemize
131
132 @anchor{Release 1_24_0}
133 @section Release 1.24.0
134 @itemize
135 @item
136     @command{redo-cleanup tmp} also removes temporarily (@code{$3})
137     created directories.
138 @end itemize
139
140 @anchor{Release 1_23_0}
141 @section Release 1.23.0
142 @itemize
143 @item
144     @command{redo-ifchange}'s @option{-f} option forces each target
145     rebuilding. Comparing to @command{redo}, it will parallelize the
146     process.
147 @item
148     Inode's number is also stored as dependency information, just to
149     prevent possible @code{ctime} collision of two files.
150 @item
151     Performance optimization: do not use target's temporary output file
152     at all, if its hash equals to already existing target's one. Just
153     touch existing target file instead.
154 @end itemize
155
156 @anchor{Release 1_22_0}
157 @section Release 1.22.0
158 @itemize
159 @item
160     @code{flock} locks replaced with POSIX @code{fcntl} ones.
161     They could be more portable.
162 @item
163     @command{redo-depfix} command appeared, that traverses through all
164     @file{.redo} directories and their dependency files, checks if
165     corresponding targets has the same content but different
166     @code{ctime}/@code{mtime} values and rewrites dependencies with that
167     updated inode information.
168 @item
169     With @env{$REDO_STOP_IF_MODIFIED=1} environment variable redo will
170     stop and fail if it meet externally modified file. By default user
171     is only warned about it, but building continues for convenience.
172 @end itemize
173
174 @anchor{Release 1_21_0}
175 @section Release 1.21.0
176 @itemize
177 @item
178     @env{$REDO_INODE_NO_TRUST} is replaced with @env{$REDO_INODE_TRUST}
179     environment variable, that takes either @code{none}, or @code{ctime}
180     (the default one), or @code{mtime} (new one). Check documentation's
181     separate page about that option.
182 @end itemize
183
184 @anchor{Release 1_20_0}
185 @section Release 1.20.0
186 @itemize
187 @item
188     Print warning message if both ifcreate and ifchange records were
189     discovered after the target is done.
190 @end itemize
191
192 @anchor{Release 1_19_0}
193 @section Release 1.19.0
194 @itemize
195 @item
196     Skip target itself, when searching for corresponding @file{.do}
197     file. For example @file{default.do} must use @file{../default.do}
198     instead of the self.
199 @end itemize
200
201 @anchor{Release 1_18_0}
202 @section Release 1.18.0
203 @itemize
204 @item
205     Fix regression of known OODs passing since 1.3.0, that leads to
206     rebuilding of already built targets.
207 @end itemize
208
209 @anchor{Release 1_17_0}
210 @section Release 1.17.0
211 @itemize
212 @item
213     If @command{redo*} process is killed, then it sends @code{SIGTERM}
214     to all his children too, properly terminating the whole job queue.
215 @end itemize
216
217 @anchor{Release 1_16_0}
218 @section Release 1.16.0
219 @itemize
220 @item
221     Unexistent targets are considered always out-of-date, as it should be.
222 @item
223     Do not panic if @env{$REDO_LOGS=1} and we were unable to start the command.
224 @end itemize
225
226 @anchor{Release 1_15_0}
227 @section Release 1.15.0
228 @itemize
229 @item
230     Explicitly check if @code{$1} target is touched and then fail.
231     Previously we check if @code{$1} was only altered.
232 @end itemize
233
234 @anchor{Release 1_14_0}
235 @section Release 1.14.0
236 @itemize
237 @item
238     Fixed @command{redo-ifcreate}'s targets proper relative paths to the target.
239 @end itemize
240
241 @anchor{Release 1_13_0}
242 @section Release 1.13.0
243 @itemize
244 @item
245     Use @file{.log-rec} extension, instead of @file{.log.rec}, that
246     won't collide with already existing @file{.log} and @file{.rec} in
247     @file{.redo} directory.
248 @end itemize
249
250 @anchor{Release 1_12_0}
251 @section Release 1.12.0
252 @itemize
253 @item
254     Fix possible lack of success finish message printing if any of
255     targets fail.
256 @end itemize
257
258 @anchor{Release 1_11_0}
259 @section Release 1.11.0
260 @itemize
261 @item
262     Fix nasty bug with incorrect @file{.redo/tgt.rec} files renaming.
263 @end itemize
264
265 @anchor{Release 1_10_0}
266 @section Release 1.10.0
267 @itemize
268 @item
269     @command{redo-cleanup} now also cleans @file{.redo/tgt.log.rec} files.
270 @item
271     Recursive logs do not require @file{.redo/tgt.rec} existence anymore.
272 @end itemize
273
274 @anchor{Release 1_9_0}
275 @section Release 1.9.0
276 @itemize
277 @item
278     Do not enable command line options not applicable to the command.
279     For example @option{-j} option is only applicable to @command{redo}
280     and @command{redo-ifchange} commands.
281 @item
282     @itemize
283     @item @option{-dry-run} option is renamed to @option{-n}
284     @item @option{-logs} option is renamed to @option{-k}
285     @item @option{-silent} option is renamed to @option{-s}
286     @end itemize
287 @item
288     When @code{stderr} logs are kept, all environment variables, working
289     directory, command line arguments, start/finish times, duration,
290     participated PIDs, return codes are saved in corresponding
291     @file{.redo/tgt.log.rec} file. Some of them can be viewed with
292     @option{-c} option to @command{redo-log}.
293 @item
294     @command{redo-log}'s @option{-r} option allows recursive, indented
295     viewing of the whole redo commands invocations for the given target
296     in serialized way.
297 @end itemize
298
299 @anchor{Release 1_8_0}
300 @section Release 1.8.0
301 @itemize
302 @item
303     Fixed possibly wrong relative path record of the dependency, when
304     redo commands are run in different directory from the @file{.do}.
305 @item
306     Fixed possible failing in @command{redo-sources} if no @file{.dep}
307     is found.
308 @end itemize
309
310 @anchor{Release 1_7_0}
311 @section Release 1.7.0
312 @itemize
313 @item
314     Optional compatibility (through @env{$REDO_MAKE=@{bmake|gmake@}})
315     with either NetBSD's bmake or GNU Make jobserver protocols, being
316     able to tightly integrate @command{goredo} with the @command{make}.
317 @end itemize
318
319 @anchor{Release 1_6_0}
320 @section Release 1.6.0
321 @itemize
322 @item
323     @command{redo-affects} command appeared, that shows all targets that
324     will be affected by changing the specified ones.
325 @end itemize
326
327 @anchor{Release 1_5_0}
328 @section Release 1.5.0
329 @itemize
330 @item
331     @command{redo-ood}, @command{redo-sources} and
332     @command{redo-targets} can optionally take list of targets to apply
333     the command on, to narrow the result.
334 @item
335     @command{redo-sources} mistakenly missed @file{.do} files in the output.
336 @item
337     @command{redo-sources} now recursively searches for all source
338     files, not the "first" depth level ones.
339 @end itemize
340
341 @anchor{Release 1_4_1}
342 @section Release 1.4.1
343 @itemize
344 @item
345     Even more simpler statusline cleaning function.
346 @end itemize
347
348 @anchor{Release 1_4_0}
349 @section Release 1.4.0
350 @itemize
351 @item
352     Fixed proper @option{-xx} and @env{$REDO_TRACE} workability, that
353     previously was not applied to all targets.
354 @item
355     Simpler statusline cleaning function, does not leading to whitespace
356     junk after long lines.
357 @item
358     Updated dependant libraries.
359 @end itemize
360
361 @anchor{Release 1_3_0}
362 @section Release 1.3.0
363 @itemize
364 @item
365     Experimental @command{redo-sources}, @command{redo-targets} and
366     @command{redo-ood} commands.
367 @item
368     Repetitive OOD determination optimization: pass all already known to
369     be OOD targets to redoing targets.
370 @end itemize
371
372 @anchor{Release 1_2_0}
373 @section Release 1.2.0
374 @itemize
375 @item
376     Dependency files @file{.dep} extension changed to @file{.rec}, to
377     reflect its recfile format nature and editors file type better
378     determination.
379 @item
380     Reduce number of file descriptors kept open (1 instead of 4) while
381     waiting for job slot token.
382 @end itemize
383
384 @anchor{Release 1_1_0}
385 @section Release 1.1.0
386 @itemize
387 @item
388     @command{redo-cleanup} has @option{-dry-run} option.
389 @end itemize
390
391 @anchor{Release 1_0_0}
392 @section Release 1.0.0
393 @itemize
394 @item
395     @code{Size} is stored in the state, for faster OOD detection.
396     Previous @command{goredo} state files won't work.
397 @item
398     Setting of @env{$REDO_INODE_NO_TRUST} environment variable brings no
399     trust to file inode's information (except for its size), forcing its
400     checksum checking.
401 @item
402     @command{redo-whichdo} resembles @code{apenwarr/redo}'s one behaviour more.
403 @end itemize
404
405 @anchor{Release 0_12_3}
406 @section Release 0.12.3
407 @itemize
408 @item
409     Use an updated @code{lukechampine.com/blake3} with possibly working
410     arm64 macOS fix.
411 @end itemize
412
413 @anchor{Release 0_12_2}
414 @section Release 0.12.2
415 @itemize
416 @item
417     Try to fix failing @code{lukechampine.com/blake3} on arm64 macOS.
418 @item
419     Fixed tests permissions in the tarball.
420 @end itemize
421
422 @anchor{Release 0_12_1}
423 @section Release 0.12.1
424 @itemize
425 @item
426     Tarball uses @file{vendor} directory without @env{$GOPATH}
427     overriding. @command{goredo} and its dependencies anyway uses Go
428     1.12+ versions, that have @file{vendor}-ing support.
429 @end itemize
430
431 @anchor{Release 0_12_0}
432 @section Release 0.12.0
433 @itemize
434 @item
435     Do not forget to save even output-less target as a dependency.
436 @item
437     @option{-debug} option renamed to shorter @option{-d}.
438 @end itemize
439
440 @anchor{Release 0_11_0}
441 @section Release 0.11.0
442 @itemize
443 @item
444     Previously @env{$REDO_JOBS} overrided even explicitly specified
445     @option{-j} option. Fix that behaviour -- command line options must
446     precede environment variables.
447 @item @url{https://github.com/BLAKE3-team/BLAKE3, BLAKE3} replaces
448     BLAKE2b hashing algorithm for even better performance.
449 @end itemize
450
451 @anchor{Release 0_10_0}
452 @section Release 0.10.0
453 @itemize
454 @item Initial tarballed release.
455 @end itemize