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