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