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