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