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