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