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