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