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