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