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