5 @anchor{Release 1_29_0}
6 @section Release 1.29.0
9 Fix possible error when two always-ed targets are run simultaneously.
12 @anchor{Release 1_28_0}
13 @section Release 1.28.0
16 Do not remove @file{.lock} files, that leads to possible races
17 between running targets. Although @command{nncp-cleanup lock}
18 can be used to cleanup.
20 Updated dependant libraries.
23 @anchor{Release 1_27_1}
24 @section Release 1.27.1
27 Fixed lack of @file{.redo.}-prefix in temporary file names.
30 @anchor{Release 1_27_0}
31 @section Release 1.27.0
34 Improved out-of-date check and @file{.do} files search performance,
35 because of caching their results.
38 @anchor{Release 1_26_0}
39 @section Release 1.26.0
42 Debug output contained colour-related attribute even if
43 @env{$NO_COLOR=1} was set.
45 Updated dependant libraries.
48 @anchor{Release 1_25_0}
49 @section Release 1.25.0
52 Target's lock file requires a token from the jobserver now. So
53 amount of simultaneously opened lock files depends on job slots
57 @anchor{Release 1_24_0}
58 @section Release 1.24.0
61 @command{redo-cleanup tmp} also removes temporarily (@code{$3})
65 @anchor{Release 1_23_0}
66 @section Release 1.23.0
69 @command{redo-ifchange}'s @option{-f} option forces each target
70 rebuilding. Comparing to @command{redo}, it will parallelize the
73 Inode's number is also stored as dependency information, just to
74 prevent possible @code{ctime} collision of two files.
76 Performance optimization: do not use target's temporary output file
77 at all, if its hash equals to already existing target's one. Just
78 touch existing target file instead.
81 @anchor{Release 1_22_0}
82 @section Release 1.22.0
85 @code{flock} locks replaced with POSIX @code{fcntl} ones.
86 They could be more portable.
88 @command{redo-depfix} command appeared, that traverses through all
89 @file{.redo} directories and their dependency files, checks if
90 corresponding targets has the same content but different
91 @code{ctime}/@code{mtime} values and rewrites dependencies with that
92 updated inode information.
94 With @env{$REDO_STOP_IF_MODIFIED=1} environment variable redo will
95 stop and fail if it meet externally modified file. By default user
96 is only warned about it, but building continues for convenience.
99 @anchor{Release 1_21_0}
100 @section Release 1.21.0
103 @env{$REDO_INODE_NO_TRUST} is replaced with @env{$REDO_INODE_TRUST}
104 environment variable, that takes either @code{none}, or @code{ctime}
105 (the default one), or @code{mtime} (new one). Check documentation's
106 separate page about that option.
109 @anchor{Release 1_20_0}
110 @section Release 1.20.0
113 Print warning message if both ifcreate and ifchange records were
114 discovered after the target is done.
117 @anchor{Release 1_19_0}
118 @section Release 1.19.0
121 Skip target itself, when searching for corresponding @file{.do}
122 file. For example @file{default.do} must use @file{../default.do}
126 @anchor{Release 1_18_0}
127 @section Release 1.18.0
130 Fix regression of known OODs passing since 1.3.0, that leads to
131 rebuilding of already built targets.
134 @anchor{Release 1_17_0}
135 @section Release 1.17.0
138 If @command{redo*} process is killed, then it sends @code{SIGTERM}
139 to all his children too, properly terminating the whole job queue.
142 @anchor{Release 1_16_0}
143 @section Release 1.16.0
146 Unexistent targets are considered always out-of-date, as it should be.
148 Do not panic if @env{$REDO_LOGS=1} and we were unable to start the command.
151 @anchor{Release 1_15_0}
152 @section Release 1.15.0
155 Explicitly check if @code{$1} target is touched and then fail.
156 Previously we check if @code{$1} was only altered.
159 @anchor{Release 1_14_0}
160 @section Release 1.14.0
163 Fixed @command{redo-ifcreate}'s targets proper relative paths to the target.
166 @anchor{Release 1_13_0}
167 @section Release 1.13.0
170 Use @file{.log-rec} extension, instead of @file{.log.rec}, that
171 won't collide with already existing @file{.log} and @file{.rec} in
172 @file{.redo} directory.
175 @anchor{Release 1_12_0}
176 @section Release 1.12.0
179 Fix possible lack of success finish message printing if any of
183 @anchor{Release 1_11_0}
184 @section Release 1.11.0
187 Fix nasty bug with incorrect @file{.redo/tgt.rec} files renaming.
190 @anchor{Release 1_10_0}
191 @section Release 1.10.0
194 @command{redo-cleanup} now also cleans @file{.redo/tgt.log.rec} files.
196 Recursive logs do not require @file{.redo/tgt.rec} existence anymore.
199 @anchor{Release 1_9_0}
200 @section Release 1.9.0
203 Do not enable command line options not applicable to the command.
204 For example @option{-j} option is only applicable to @command{redo}
205 and @command{redo-ifchange} commands.
208 @item @option{-dry-run} option is renamed to @option{-n}
209 @item @option{-logs} option is renamed to @option{-k}
210 @item @option{-silent} option is renamed to @option{-s}
213 When @code{stderr} logs are kept, all environment variables, working
214 directory, command line arguments, start/finish times, duration,
215 participated PIDs, return codes are saved in corresponding
216 @file{.redo/tgt.log.rec} file. Some of them can be viewed with
217 @option{-c} option to @command{redo-log}.
219 @command{redo-log}'s @option{-r} option allows recursive, indented
220 viewing of the whole redo commands invocations for the given target
224 @anchor{Release 1_8_0}
225 @section Release 1.8.0
228 Fixed possibly wrong relative path record of the dependency, when
229 redo commands are run in different directory from the @file{.do}.
231 Fixed possible failing in @command{redo-sources} if no @file{.dep}
235 @anchor{Release 1_7_0}
236 @section Release 1.7.0
239 Optional compatibility (through @env{$REDO_MAKE=@{bmake|gmake@}})
240 with either NetBSD's bmake or GNU Make jobserver protocols, being
241 able to tightly integrate @command{goredo} with the @command{make}.
244 @anchor{Release 1_6_0}
245 @section Release 1.6.0
248 @command{redo-affects} command appeared, that shows all targets that
249 will be affected by changing the specified ones.
252 @anchor{Release 1_5_0}
253 @section Release 1.5.0
256 @command{redo-ood}, @command{redo-sources} and
257 @command{redo-targets} can optionally take list of targets to apply
258 the command on, to narrow the result.
260 @command{redo-sources} mistakenly missed @file{.do} files in the output.
262 @command{redo-sources} now recursively searches for all source
263 files, not the "first" depth level ones.
266 @anchor{Release 1_4_1}
267 @section Release 1.4.1
270 Even more simpler statusline cleaning function.
273 @anchor{Release 1_4_0}
274 @section Release 1.4.0
277 Fixed proper @option{-xx} and @env{$REDO_TRACE} workability, that
278 previously was not applied to all targets.
280 Simpler statusline cleaning function, does not leading to whitespace
281 junk after long lines.
283 Updated dependant libraries.
286 @anchor{Release 1_3_0}
287 @section Release 1.3.0
290 Experimental @command{redo-sources}, @command{redo-targets} and
291 @command{redo-ood} commands.
293 Repetitive OOD determination optimization: pass all already known to
294 be OOD targets to redoing targets.
297 @anchor{Release 1_2_0}
298 @section Release 1.2.0
301 Dependency files @file{.dep} extension changed to @file{.rec}, to
302 reflect its recfile format nature and editors file type better
305 Reduce number of file descriptors kept open (1 instead of 4) while
306 waiting for job slot token.
309 @anchor{Release 1_1_0}
310 @section Release 1.1.0
313 @command{redo-cleanup} has @option{-dry-run} option.
316 @anchor{Release 1_0_0}
317 @section Release 1.0.0
320 @code{Size} is stored in the state, for faster OOD detection.
321 Previous @command{goredo} state files won't work.
323 Setting of @env{$REDO_INODE_NO_TRUST} environment variable brings no
324 trust to file inode's information (except for its size), forcing its
327 @command{redo-whichdo} resembles @code{apenwarr/redo}'s one behaviour more.
330 @anchor{Release 0_12_3}
331 @section Release 0.12.3
334 Use an updated @code{lukechampine.com/blake3} with possibly working
338 @anchor{Release 0_12_2}
339 @section Release 0.12.2
342 Try to fix failing @code{lukechampine.com/blake3} on arm64 macOS.
344 Fixed tests permissions in the tarball.
347 @anchor{Release 0_12_1}
348 @section Release 0.12.1
351 Tarball uses @file{vendor} directory without @env{$GOPATH}
352 overriding. @command{goredo} and its dependencies anyway uses Go
353 1.12+ versions, that have @file{vendor}-ing support.
356 @anchor{Release 0_12_0}
357 @section Release 0.12.0
360 Do not forget to save even output-less target as a dependency.
362 @option{-debug} option renamed to shorter @option{-d}.
365 @anchor{Release 0_11_0}
366 @section Release 0.11.0
369 Previously @env{$REDO_JOBS} overrided even explicitly specified
370 @option{-j} option. Fix that behaviour -- command line options must
371 precede environment variables.
372 @item @url{https://github.com/BLAKE3-team/BLAKE3, BLAKE3} replaces
373 BLAKE2b hashing algorithm for even better performance.
376 @anchor{Release 0_10_0}
377 @section Release 0.10.0
379 @item Initial tarballed release.