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