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