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