OILS / devtools / release-version.sh View on Github | oils.pub

1212 lines, 870 significant
1#!/usr/bin/env bash
2#
3# Usage:
4# ./release-version.sh <function name>
5
6set -o nounset
7set -o pipefail
8set -o errexit
9
10source test/common.sh # html-head
11
12# NOTE: Left to right evaluation would be nice on this!
13#
14# Rewrite in YSH:
15#
16# sys.stdin.read() | sub( / "\x00" { any* } "\x01" /, html_escape) | write
17escape-segments() {
18 python -c '
19import cgi, re, sys
20
21print re.sub(
22 r"\x00(.*)\x01",
23 lambda match: cgi.escape(match.group(1)),
24 sys.stdin.read())
25'
26}
27
28# TODO: It would be nice to have a column of bugs fixed / addressed!
29
30_git-changelog-body() {
31 local prev_branch=$1
32 local cur_branch=$2
33 shift 2
34
35 # - a trick for HTML escaping (avoid XSS): surround %s with unlikely bytes,
36 # \x00 and \x01. Then pipe Python to escape.
37 # --reverse makes it go in forward chronlogical order.
38
39 # %x00 generates the byte \x00
40 local format='<tr>
41 <td><a class="checksum"
42 href="https://github.com/oils-for-unix/oils/commit/%H">%h</a>
43 </td>
44 <td class="date">%ad</td>
45 <td>%x00%an%x01</td>
46 <td class="subject">%x00%s%x01</td>
47 </tr>'
48 git log \
49 $prev_branch..$cur_branch \
50 --reverse \
51 --pretty="format:$format" \
52 --date=short \
53 "$@" \
54 | escape-segments
55}
56
57_git-changelog-header() {
58 local prev_branch=$1
59 local cur_branch=$2
60
61 html-head --title "Commits Between Branches $prev_branch and $cur_branch" \
62 'web/base.css' 'web/changelog.css'
63
64 cat <<EOF
65 <body class="width60">
66 <h3>Commits Between Branches <code>$prev_branch</code> and
67 <code>$cur_branch</code></h3>
68 <table>
69 <colgroup>
70 <col>
71 <col>
72 <col>
73 <!-- prevent long commits from causing wrapping in other cells -->
74 <col style="width: 40em">
75 </colgroup>
76EOF
77# Doesn't seem necessary now.
78# <thead>
79# <tr>
80# <td>Commit</td>
81# <td>Date</td>
82# <td>Description</td>
83# </tr>
84# </thead>
85}
86
87_git-changelog() {
88 _git-changelog-header "$@"
89 _git-changelog-body "$@"
90 echo '
91 </table>
92 </body>
93</html>
94'
95}
96
97git-shortlog-html() {
98 local prev_branch=${1:-release/0.36.0}
99 local cur_branch=${2:-release/0.37.0}
100
101 echo '<pre>'
102
103 # TODO: make your own shortlog in HTML. git shortlog doesn't support %x00
104 # Use git log and
105 # %x00 and %x01 for segments that should be HTML-escaped
106 # %x02 and %x03 for the author KEY, which we'll get sections from
107 # This can go in devtools/git_shortlog.py or devtools/git.py
108
109 local format='
110<a class="checksum"
111 href="https://github.com/oils-for-unix/oils/commit/%H">%h</a>
112<span class="date">%ad</span>
113%x00%an%x01
114%x00%s%x01
115 '
116 local format='
117%an %h %H %s
118 '
119 git log \
120 --pretty="format:$format" \
121 --date=short \
122 $prev_branch..$cur_branch #| escape-segments
123
124 echo '</pre>'
125}
126
127test-git-shortlog-html() {
128 local out=_tmp/shortlog.html
129 git-shortlog-html > $out
130 echo "Wrote $out"
131}
132
133git-changelog-0.1() {
134 local version='0.1.0'
135 _git-changelog release/0.0.0 release/0.1.0 \
136 > ../oilshell.org__deploy/release/$version/changelog.html
137}
138
139git-changelog-0.2.alpha1() {
140 _git-changelog release/0.1.0 release/0.2.alpha1 \
141 > _release/VERSION/changelog.html
142}
143
144git-changelog-0.2.0() {
145 _git-changelog release/0.1.0 release/0.2.0 \
146 > _release/VERSION/changelog.html
147}
148
149git-changelog-0.3.alpha1() {
150 _git-changelog release/0.2.0 release/0.3.alpha1 \
151 > _release/VERSION/changelog.html
152}
153
154git-changelog-0.3.0() {
155 _git-changelog release/0.2.0 release/0.3.0 \
156 > _release/VERSION/changelog.html
157}
158
159git-changelog-0.4.0() {
160 _git-changelog release/0.3.0 release/0.4.0 \
161 > _release/VERSION/changelog.html
162}
163
164git-changelog-0.5.alpha1() {
165 _git-changelog release/0.4.0 release/0.5.alpha1 \
166 > _release/VERSION/changelog.html
167}
168
169# Alpha release logs are relative to last minor release
170git-changelog-0.5.alpha2() {
171 _git-changelog release/0.5.alpha1 release/0.5.alpha2 \
172 > _release/VERSION/changelog.html
173}
174
175git-changelog-0.5.alpha3() {
176 _git-changelog release/0.5.alpha2 release/0.5.alpha3 \
177 > _release/VERSION/changelog.html
178}
179
180# Hm if you're not releasing on the same machine as the previous release, the
181# branch needs origin/ on the front? Is this the best way to do it?
182# NOTE: 'git branch -a' shows all branches.
183
184git-changelog-0.5.0() {
185 # NOTE: release/0.5 branch should be sync'd up with master squashes.
186 _git-changelog origin/release/0.5.alpha3 release/0.5.0 \
187 > _release/VERSION/changelog.html
188}
189
190git-changelog-0.6.pre1() {
191 _git-changelog origin/release/0.5.0 release/0.6.pre1 \
192 > _release/VERSION/changelog.html
193}
194
195git-changelog-0.6.pre2() {
196 _git-changelog origin/release/0.6.pre1 release/0.6.pre2 \
197 > _release/VERSION/changelog.html
198}
199
200git-changelog-0.6.pre3() {
201 _git-changelog origin/release/0.6.pre2 release/0.6.pre3 \
202 > _release/VERSION/changelog.html
203}
204
205git-changelog-0.6.pre4() {
206 _git-changelog origin/release/0.6.pre3 release/0.6.pre4 \
207 > _release/VERSION/changelog.html
208}
209
210git-changelog-0.6.pre5() {
211 _git-changelog origin/release/0.6.pre4 release/0.6.pre5 \
212 > _release/VERSION/changelog.html
213}
214
215git-changelog-0.6.pre6() {
216 _git-changelog origin/release/0.6.pre5 release/0.6.pre6 \
217 > _release/VERSION/changelog.html
218}
219
220git-changelog-0.6.pre7() {
221 _git-changelog origin/release/0.6.pre6 release/0.6.pre7 \
222 > _release/VERSION/changelog.html
223}
224
225git-changelog-0.6.pre8() {
226 _git-changelog origin/release/0.6.pre7 release/0.6.pre8 \
227 > _release/VERSION/changelog.html
228}
229
230git-changelog-0.6.pre9() {
231 _git-changelog origin/release/0.6.pre8 release/0.6.pre9 \
232 > _release/VERSION/changelog.html
233}
234
235git-changelog-0.6.pre10() {
236 _git-changelog origin/release/0.6.pre9 release/0.6.pre10 \
237 > _release/VERSION/changelog.html
238}
239
240git-changelog-0.6.pre11() {
241 _git-changelog origin/release/0.6.pre10 release/0.6.pre11 \
242 > _release/VERSION/changelog.html
243}
244
245git-changelog-0.6.pre12() {
246 _git-changelog origin/release/0.6.pre11 release/0.6.pre12 \
247 > _release/VERSION/changelog.html
248}
249
250git-changelog-0.6.pre13() {
251 _git-changelog origin/release/0.6.pre12 release/0.6.pre13 \
252 > _release/VERSION/changelog.html
253}
254
255git-changelog-0.6.pre14() {
256 _git-changelog origin/release/0.6.pre13 release/0.6.pre14 \
257 > _release/VERSION/changelog.html
258}
259
260git-changelog-0.6.pre15() {
261 _git-changelog origin/release/0.6.pre14 release/0.6.pre15 \
262 > _release/VERSION/changelog.html
263}
264
265git-changelog-0.6.pre16() {
266 _git-changelog origin/release/0.6.pre15 release/0.6.pre16 \
267 > _release/VERSION/changelog.html
268}
269
270git-changelog-0.6.pre17() {
271 _git-changelog origin/release/0.6.pre16 release/0.6.pre17 \
272 > _release/VERSION/changelog.html
273}
274
275git-changelog-0.6.pre18() {
276 _git-changelog origin/release/0.6.pre17 release/0.6.pre18 \
277 > _release/VERSION/changelog.html
278}
279
280git-changelog-0.6.pre19() {
281 _git-changelog origin/release/0.6.pre18 release/0.6.pre19 \
282 > _release/VERSION/changelog.html
283}
284
285git-changelog-0.6.pre20() {
286 _git-changelog origin/release/0.6.pre19 release/0.6.pre20 \
287 > _release/VERSION/changelog.html
288}
289
290git-changelog-0.6.pre21() {
291 _git-changelog origin/release/0.6.pre20 release/0.6.pre21 \
292 > _release/VERSION/changelog.html
293}
294
295git-changelog-0.6.pre22() {
296 _git-changelog origin/release/0.6.pre21 release/0.6.pre22 \
297 > _release/VERSION/changelog.html
298}
299
300git-changelog-0.6.pre23() {
301 _git-changelog origin/release/0.6.pre22 release/0.6.pre23 \
302 > _release/VERSION/changelog.html
303}
304
305git-changelog-0.6.0() {
306 _git-changelog origin/release/0.6.pre23 release/0.6.0 \
307 > _release/VERSION/changelog.html
308}
309
310git-changelog-0.7.pre1() {
311 _git-changelog origin/release/0.6.0 release/0.7.pre1 \
312 > _release/VERSION/changelog.html
313}
314
315git-changelog-0.7.pre2() {
316 _git-changelog origin/release/0.7.pre1 release/0.7.pre2 \
317 > _release/VERSION/changelog.html
318}
319
320git-changelog-0.7.pre3() {
321 _git-changelog origin/release/0.7.pre2 release/0.7.pre3 \
322 > _release/VERSION/changelog.html
323}
324
325git-changelog-0.7.pre4() {
326 _git-changelog origin/release/0.7.pre3 release/0.7.pre4 \
327 > _release/VERSION/changelog.html
328}
329
330git-changelog-0.7.pre5() {
331 _git-changelog origin/release/0.7.pre4 release/0.7.pre5 \
332 > _release/VERSION/changelog.html
333}
334
335git-changelog-0.7.pre6() {
336 _git-changelog origin/release/0.7.pre5 release/0.7.pre6 \
337 > _release/VERSION/changelog.html
338}
339
340git-changelog-0.7.pre7() {
341 _git-changelog origin/release/0.7.pre6 release/0.7.pre7 \
342 > _release/VERSION/changelog.html
343}
344
345git-changelog-0.7.pre8() {
346 _git-changelog origin/release/0.7.pre7 release/0.7.pre8 \
347 > _release/VERSION/changelog.html
348}
349
350git-changelog-0.7.pre9() {
351 _git-changelog origin/release/0.7.pre8 release/0.7.pre9 \
352 > _release/VERSION/changelog.html
353}
354
355git-changelog-0.7.pre10() {
356 _git-changelog origin/release/0.7.pre9 release/0.7.pre10 \
357 > _release/VERSION/changelog.html
358}
359
360git-changelog-0.7.pre11() {
361 _git-changelog origin/release/0.7.pre10 release/0.7.pre11 \
362 > _release/VERSION/changelog.html
363}
364
365git-changelog-0.7.0() {
366 _git-changelog origin/release/0.7.pre11 release/0.7.0 \
367 > _release/VERSION/changelog.html
368}
369
370git-changelog-0.8.pre1() {
371 _git-changelog origin/release/0.7.0 release/0.8.pre1 \
372 > _release/VERSION/changelog.html
373}
374
375git-changelog-0.8.pre2() {
376 _git-changelog origin/release/0.8.pre1 release/0.8.pre2 \
377 > _release/VERSION/changelog.html
378}
379
380git-changelog-0.8.pre3() {
381 _git-changelog origin/release/0.8.pre2 release/0.8.pre3 \
382 > _release/VERSION/changelog.html
383}
384
385git-changelog-0.8.pre4() {
386 _git-changelog origin/release/0.8.pre3 release/0.8.pre4 \
387 > _release/VERSION/changelog.html
388}
389
390git-changelog-0.8.pre5() {
391 _git-changelog origin/release/0.8.pre4 release/0.8.pre5 \
392 > _release/VERSION/changelog.html
393}
394
395git-changelog-0.8.pre6() {
396 _git-changelog origin/release/0.8.pre5 release/0.8.pre6 \
397 > _release/VERSION/changelog.html
398}
399
400git-changelog-0.8.pre7() {
401 _git-changelog origin/release/0.8.pre6 release/0.8.pre7 \
402 > _release/VERSION/changelog.html
403}
404
405git-changelog-0.8.pre8() {
406 _git-changelog origin/release/0.8.pre7 release/0.8.pre8 \
407 > _release/VERSION/changelog.html
408}
409
410git-changelog-0.8.pre9() {
411 _git-changelog origin/release/0.8.pre8 release/0.8.pre9 \
412 > _release/VERSION/changelog.html
413}
414
415git-changelog-0.8.pre10() {
416 _git-changelog origin/release/0.8.pre9 release/0.8.pre10 \
417 > _release/VERSION/changelog.html
418}
419
420git-changelog-0.8.pre11() {
421 _git-changelog origin/release/0.8.pre10 release/0.8.pre11 \
422 > _release/VERSION/changelog.html
423}
424
425git-changelog-0.8.0() {
426 _git-changelog origin/release/0.8.pre11 release/0.8.0 \
427 > _release/VERSION/changelog.html
428}
429
430git-changelog-0.8.1() {
431 _git-changelog origin/release/0.8.0 release/0.8.1 \
432 > _release/VERSION/changelog.html
433}
434
435git-changelog-0.8.2() {
436 _git-changelog origin/release/0.8.1 release/0.8.2 \
437 > _release/VERSION/changelog.html
438}
439
440git-changelog-0.8.3() {
441 _git-changelog origin/release/0.8.2 release/0.8.3 \
442 > _release/VERSION/changelog.html
443}
444
445git-changelog-0.8.4() {
446 _git-changelog origin/release/0.8.3 release/0.8.4 \
447 > _release/VERSION/changelog.html
448}
449
450git-changelog-0.8.5() {
451 _git-changelog origin/release/0.8.4 release/0.8.5 \
452 > _release/VERSION/changelog.html
453}
454
455git-changelog-0.8.6() {
456 _git-changelog origin/release/0.8.5 release/0.8.6 \
457 > _release/VERSION/changelog.html
458}
459
460git-changelog-0.8.7() {
461 _git-changelog origin/release/0.8.6 release/0.8.7 \
462 > _release/VERSION/changelog.html
463}
464
465git-changelog-0.8.8() {
466 _git-changelog origin/release/0.8.7 release/0.8.8 \
467 > _release/VERSION/changelog.html
468}
469
470git-changelog-0.8.9() {
471 _git-changelog origin/release/0.8.8 release/0.8.9 \
472 > _release/VERSION/changelog.html
473}
474
475git-changelog-0.8.10() {
476 _git-changelog origin/release/0.8.9 release/0.8.10 \
477 > _release/VERSION/changelog.html
478}
479
480git-changelog-0.8.11() {
481 _git-changelog origin/release/0.8.10 release/0.8.11 \
482 > _release/VERSION/changelog.html
483}
484
485git-changelog-0.8.12() {
486 _git-changelog origin/release/0.8.11 release/0.8.12 \
487 > _release/VERSION/changelog.html
488}
489
490git-changelog-0.9.0() {
491 _git-changelog origin/release/0.8.12 release/0.9.0 \
492 > _release/VERSION/changelog.html
493}
494
495git-changelog-0.9.1() {
496 _git-changelog origin/release/0.9.0 release/0.9.1 \
497 > _release/VERSION/changelog.html
498}
499
500git-changelog-0.9.3() {
501 _git-changelog origin/release/0.9.2 release/0.9.3 \
502 > _release/VERSION/changelog.html
503}
504
505git-changelog-0.9.4() {
506 _git-changelog origin/release/0.9.3 release/0.9.4 \
507 > _release/VERSION/changelog.html
508}
509
510git-changelog-0.9.5() {
511 _git-changelog origin/release/0.9.4 release/0.9.5 \
512 > _release/VERSION/changelog.html
513}
514
515git-changelog-0.9.6() {
516 _git-changelog origin/release/0.9.5 release/0.9.6 \
517 > _release/VERSION/changelog.html
518}
519
520git-changelog-0.9.7() {
521 _git-changelog origin/release/0.9.6 release/0.9.7 \
522 > _release/VERSION/changelog.html
523}
524
525git-changelog-0.9.8() {
526 _git-changelog origin/release/0.9.7 release/0.9.8 \
527 > _release/VERSION/changelog.html
528}
529
530git-changelog-0.9.9() {
531 _git-changelog origin/release/0.9.8 release/0.9.9 \
532 > _release/VERSION/changelog.html
533}
534
535git-changelog-0.10.0() {
536 _git-changelog origin/release/0.9.9 release/0.10.0 \
537 > _release/VERSION/changelog.html
538}
539
540git-changelog-0.10.1() {
541 _git-changelog origin/release/0.10.0 release/0.10.1 \
542 > _release/VERSION/changelog.html
543}
544
545git-changelog-0.11.0() {
546 _git-changelog origin/release/0.10.1 release/0.11.0 \
547 > _release/VERSION/changelog.html
548}
549
550git-changelog-0.12.0() {
551 _git-changelog origin/release/0.11.0 release/0.12.0 \
552 > _release/VERSION/changelog.html
553}
554
555git-changelog-0.12.3() {
556 _git-changelog origin/release/0.12.0 release/0.12.3 \
557 > _release/VERSION/changelog.html
558}
559
560git-changelog-0.12.4() {
561 _git-changelog origin/release/0.12.3 release/0.12.4 \
562 > _release/VERSION/changelog.html
563}
564
565git-changelog-0.12.5() {
566 _git-changelog origin/release/0.12.4 release/0.12.5 \
567 > _release/VERSION/changelog.html
568}
569
570git-changelog-0.12.6() {
571 _git-changelog origin/release/0.12.5 release/0.12.6 \
572 > _release/VERSION/changelog.html
573}
574
575git-changelog-0.12.7() {
576 _git-changelog origin/release/0.12.6 release/0.12.7 \
577 > _release/VERSION/changelog.html
578}
579
580git-changelog-0.12.8() {
581 _git-changelog origin/release/0.12.7 release/0.12.8 \
582 > _release/VERSION/changelog.html
583}
584
585git-changelog-0.12.9() {
586 _git-changelog origin/release/0.12.8 release/0.12.9 \
587 > _release/VERSION/changelog.html
588}
589
590git-changelog-0.13.0() {
591 _git-changelog origin/release/0.12.9 release/0.13.0 \
592 > _release/VERSION/changelog.html
593}
594
595git-changelog-0.13.1() {
596 _git-changelog origin/release/0.13.0 release/0.13.1 \
597 > _release/VERSION/changelog.html
598}
599
600git-changelog-0.14.0() {
601 _git-changelog origin/release/0.13.1 release/0.14.0 \
602 > _release/VERSION/changelog.html
603}
604
605git-changelog-0.14.1() {
606 _git-changelog origin/release/0.14.0 release/0.14.1 \
607 > _release/VERSION/changelog.html
608}
609
610git-changelog-0.14.2() {
611 _git-changelog origin/release/0.14.1 release/0.14.2 \
612 > _release/VERSION/changelog.html
613}
614
615git-changelog-0.15.0() {
616 _git-changelog origin/release/0.14.2 release/0.15.0 \
617 > _release/VERSION/changelog.html
618}
619
620git-changelog-0.16.0() {
621 _git-changelog origin/release/0.15.0 release/0.16.0 \
622 > _release/VERSION/changelog.html
623}
624
625git-changelog-0.17.0() {
626 _git-changelog origin/release/0.16.0 release/0.17.0 \
627 > _release/VERSION/changelog.html
628}
629
630git-changelog-0.18.0() {
631 _git-changelog origin/release/0.17.0 release/0.18.0 \
632 > _release/VERSION/changelog.html
633}
634
635git-changelog-0.19.0() {
636 _git-changelog origin/release/0.18.0 release/0.19.0 \
637 > _release/VERSION/changelog.html
638}
639
640git-changelog-0.20.0() {
641 _git-changelog origin/release/0.19.0 release/0.20.0 \
642 > _release/VERSION/changelog.html
643}
644
645git-changelog-0.21.0() {
646 _git-changelog origin/release/0.20.0 release/0.21.0 \
647 > _release/VERSION/changelog.html
648}
649
650git-changelog-0.22.0() {
651 _git-changelog origin/release/0.21.0 release/0.22.0 \
652 > _release/VERSION/changelog.html
653}
654
655git-changelog-0.23.0() {
656 _git-changelog origin/release/0.22.0 release/0.23.0 \
657 > _release/VERSION/changelog.html
658}
659
660git-changelog-0.24.0() {
661 _git-changelog origin/release/0.23.0 release/0.24.0 \
662 > _release/VERSION/changelog.html
663}
664
665git-changelog-0.25.0() {
666 _git-changelog origin/release/0.24.0 release/0.25.0 \
667 > _release/VERSION/changelog.html
668}
669
670git-changelog-0.26.0() {
671 _git-changelog origin/release/0.25.0 release/0.26.0 \
672 > _release/VERSION/changelog.html
673}
674
675git-changelog-0.27.0() {
676 _git-changelog origin/release/0.26.0 release/0.27.0 \
677 > _release/VERSION/changelog.html
678}
679
680git-changelog-0.28.0() {
681 _git-changelog origin/release/0.27.0 release/0.28.0 \
682 > _release/VERSION/changelog.html
683}
684
685git-changelog-0.29.0() {
686 _git-changelog origin/release/0.28.0 release/0.29.0 \
687 > _release/VERSION/changelog.html
688}
689
690git-changelog-0.30.0() {
691 _git-changelog origin/release/0.29.0 release/0.30.0 \
692 > _release/VERSION/changelog.html
693}
694
695git-changelog-0.31.0() {
696 _git-changelog origin/release/0.30.0 release/0.31.0 \
697 > _release/VERSION/changelog.html
698}
699
700git-changelog-0.32.0() {
701 _git-changelog origin/release/0.31.0 release/0.32.0 \
702 > _release/VERSION/changelog.html
703}
704
705git-changelog-0.33.0() {
706 _git-changelog origin/release/0.32.0 release/0.33.0 \
707 > _release/VERSION/changelog.html
708}
709
710git-changelog-0.34.0() {
711 _git-changelog origin/release/0.33.0 release/0.34.0 \
712 > _release/VERSION/changelog.html
713}
714
715git-changelog-0.35.0() {
716 _git-changelog origin/release/0.34.0 release/0.35.0 \
717 > _release/VERSION/changelog.html
718}
719
720git-changelog-0.36.0() {
721 _git-changelog origin/release/0.35.0 release/0.36.0 \
722 > _release/VERSION/changelog.html
723}
724
725git-changelog-0.37.0() {
726 _git-changelog origin/release/0.36.0 release/0.37.0 \
727 > _release/VERSION/changelog.html
728}
729
730# For announcement.html
731html-redirect() {
732 local url=$1
733 cat <<EOF
734<!DOCTYPE html>
735<html>
736 <head>
737 <meta http-equiv="refresh" content="0; url=$url" />
738 </head>
739 <body>
740 <p>Redirect to<a href="$url">$url</a></p>
741 </body>
742</html>
743EOF
744}
745
746no-announcement() {
747 html-head --title 'No announcement'
748 cat <<EOF
749 <body>
750 <p>No announcement for this release. Previous announcements are tagged
751 with #<a href="/blog/tags.html?tag=oils-release#oils-release">oils-release</a>.
752 </p>
753 </body>
754</html>
755EOF
756}
757
758write-no-announcement() {
759 no-announcement > _release/VERSION/announcement.html
760}
761
762readonly SITE_DEPLOY_DIR='../../oilshell/oilshell.org__deploy'
763
764announcement-0.0() {
765 html-redirect '/blog/2017/07/23.html' \
766 > ../oilshell.org__deploy/release/0.0.0/announcement.html
767}
768
769announcement-0.1() {
770 local version='0.1.0'
771 html-redirect '/blog/2017/09/09.html' \
772 > ../oilshell.org__deploy/release/$version/announcement.html
773}
774
775announcement-0.2() {
776 html-redirect '/blog/2017/11/10.html' > _release/VERSION/announcement.html
777}
778
779announcement-0.3() {
780 html-redirect '/blog/2017/12/22.html' > _release/VERSION/announcement.html
781 #no-announcement > _release/VERSION/announcement.html
782}
783
784announcement-0.4() {
785 html-redirect '/blog/2018/02/03.html' > _release/VERSION/announcement.html
786}
787
788announcement-0.5.alpha3() {
789 html-redirect '/blog/2018/04/30.html' > _release/VERSION/announcement.html
790}
791
792announcement-0.5() {
793 html-redirect '/blog/2018/07/12.html' > _release/VERSION/announcement.html
794}
795
796announcement-0.6.pre1() {
797 html-redirect '/blog/2018/08/15.html' > _release/VERSION/announcement.html
798}
799
800announcement-0.6.pre2() {
801 html-redirect '/blog/2018/08/19.html' > _release/VERSION/announcement.html
802}
803
804announcement-0.6.pre3() {
805 write-no-announcement
806}
807
808announcement-0.6.pre4() {
809 write-no-announcement
810}
811
812announcement-0.6.pre5() {
813 html-redirect '/blog/2018/10/11.html' > $SITE_DEPLOY_DIR/release/0.6.pre5/announcement.html
814}
815
816announcement-0.6.pre6() {
817 no-announcement > $SITE_DEPLOY_DIR/release/0.6.pre6/announcement.html
818}
819
820announcement-0.6.pre7() {
821 write-no-announcement
822}
823
824announcement-0.6.pre8() {
825 html-redirect '/blog/2018/11/15.html' > $SITE_DEPLOY_DIR/release/0.6.pre8/announcement.html
826}
827
828announcement-0.6.pre9() {
829 write-no-announcement
830}
831
832announcement-0.6.pre10() {
833 write-no-announcement
834}
835
836announcement-0.6.pre11() {
837 html-redirect '/blog/2018/12/16.html' > $SITE_DEPLOY_DIR/release/0.6.pre11/announcement.html
838}
839
840announcement-0.6.pre12() {
841 html-redirect '/blog/2019/01/18.html' > $SITE_DEPLOY_DIR/release/0.6.pre12/announcement.html
842}
843
844announcement-0.6.pre13() {
845 html-redirect '/blog/2019/02/05.html' > $SITE_DEPLOY_DIR/release/0.6.pre13/announcement.html
846}
847
848announcement-0.6.pre14() {
849 html-redirect '/blog/2019/02/18.html' > $SITE_DEPLOY_DIR/release/0.6.pre14/announcement.html
850}
851
852announcement-0.6.pre15() {
853 html-redirect '/blog/2019/02/18.html' > $SITE_DEPLOY_DIR/release/0.6.pre15/announcement.html
854}
855
856announcement-0.6.pre16-to-22() {
857 for i in {16..22}; do
858 html-redirect '/blog/2019/06/13.html' > $SITE_DEPLOY_DIR/release/0.6.pre$i/announcement.html
859 done
860}
861
862announcement-0.6.pre23() {
863 html-redirect '/blog/2019/07/19.html' > $SITE_DEPLOY_DIR/release/0.6.pre23/announcement.html
864}
865
866announcement-0.6.0() {
867 html-redirect '/blog/2019/07/19.html' > $SITE_DEPLOY_DIR/release/0.6.0/announcement.html
868}
869
870announcement-0.7.pre1() {
871 html-redirect '/blog/2019/07/19.html' > $SITE_DEPLOY_DIR/release/0.7.pre1/announcement.html
872}
873
874announcement-0.7.pre2() {
875 write-no-announcement
876}
877
878announcement-0.7.pre3() {
879 write-no-announcement
880}
881
882announcement-0.7.pre4() {
883 write-no-announcement
884}
885
886announcement-0.7.pre5() {
887 write-no-announcement
888}
889
890announcement-0.7.pre6() {
891 html-redirect '/blog/2016/12/09.html' > $SITE_DEPLOY_DIR/release/0.7.pre6/announcement.html
892}
893
894announcement-0.7.pre7() {
895 html-redirect '/blog/2019/12/09.html' > $SITE_DEPLOY_DIR/release/0.7.pre7/announcement.html
896}
897
898announcement-0.7.pre8() {
899 html-redirect '/blog/2019/12/09.html' > $SITE_DEPLOY_DIR/release/0.7.pre8/announcement.html
900}
901
902announcement-0.7.pre9() {
903 html-redirect '/blog/2019/12/09.html' > $SITE_DEPLOY_DIR/release/0.7.pre9/announcement.html
904}
905
906announcement-0.7.pre10() {
907 write-no-announcement
908}
909
910announcement-0.7.pre11() {
911 write-no-announcement
912}
913
914announcement-0.7.0() {
915 html-redirect '/blog/2020/02/recap.html' > $SITE_DEPLOY_DIR/release/0.7.0/announcement.html
916}
917
918announcement-0.8.pre1() {
919 html-redirect '/blog/2020/02/recap.html' > $SITE_DEPLOY_DIR/release/0.8.pre1/announcement.html
920}
921
922announcement-0.8.pre2() {
923 html-redirect '/blog/2020/03/release-metrics.html' > $SITE_DEPLOY_DIR/release/0.8.pre2/announcement.html
924}
925
926announcement-0.8.pre3() {
927 html-redirect '/blog/2020/03/release-0.8.pre3.html' > $SITE_DEPLOY_DIR/release/0.8.pre3/announcement.html
928}
929
930announcement-0.8.pre4() {
931 html-redirect '/blog/2020/04/release-0.8.pre4.html' > $SITE_DEPLOY_DIR/release/0.8.pre4/announcement.html
932}
933
934announcement-0.8.pre5() {
935 html-redirect '/blog/2020/05/translation-progress.html' > $SITE_DEPLOY_DIR/release/0.8.pre5/announcement.html
936}
937
938announcement-0.8.pre6() {
939 html-redirect '/blog/2020/06/release-0.8.pre6.html' > $SITE_DEPLOY_DIR/release/0.8.pre6/announcement.html
940}
941
942announcement-0.8.pre7() {
943 write-no-announcement
944}
945
946announcement-0.8.pre8() {
947 write-no-announcement
948}
949
950announcement-0.8.pre9() {
951 write-no-announcement
952}
953
954announcement-0.8.pre10() {
955 write-no-announcement
956}
957
958announcement-0.8.pre11() {
959 write-no-announcement
960}
961
962announcement-0.8.0() {
963 write-no-announcement
964}
965
966announcement-0.8.1() {
967 write-no-announcement
968}
969
970announcement-0.8.2() {
971 write-no-announcement
972}
973
974announcement-0.8.3() {
975 write-no-announcement
976}
977
978announcement-0.8.4() {
979 write-no-announcement
980}
981
982announcement-0.8.5() {
983 write-no-announcement
984}
985
986announcement-0.8.6() {
987 write-no-announcement
988}
989
990announcement-0.8.7() {
991 write-no-announcement
992}
993
994announcement-0.8.8() {
995 write-no-announcement
996}
997
998announcement-0.8.9() {
999 write-no-announcement
1000}
1001
1002announcement-0.8.10() {
1003 write-no-announcement
1004}
1005
1006announcement-0.8.11() {
1007 write-no-announcement
1008}
1009
1010announcement-0.8.12() {
1011 write-no-announcement
1012}
1013
1014announcement-0.9.0() {
1015 write-no-announcement
1016}
1017
1018announcement-0.9.1() {
1019 write-no-announcement
1020}
1021
1022announcement-0.9.3() {
1023 write-no-announcement
1024}
1025
1026announcement-0.9.4() {
1027 write-no-announcement
1028}
1029
1030announcement-0.9.5() {
1031 write-no-announcement
1032}
1033
1034announcement-0.9.6() {
1035 write-no-announcement
1036}
1037
1038announcement-0.9.7() {
1039 write-no-announcement
1040}
1041
1042announcement-0.9.8() {
1043 write-no-announcement
1044}
1045
1046announcement-0.9.9() {
1047 write-no-announcement
1048}
1049
1050announcement-0.10.0() {
1051 write-no-announcement
1052}
1053
1054announcement-0.10.1() {
1055 write-no-announcement
1056}
1057
1058announcement-0.11.0() {
1059 write-no-announcement
1060}
1061
1062announcement-0.12.0() {
1063 write-no-announcement
1064}
1065
1066announcement-0.12.3() {
1067 write-no-announcement
1068}
1069
1070announcement-0.12.4() {
1071 write-no-announcement
1072}
1073
1074announcement-0.12.5() {
1075 write-no-announcement
1076}
1077
1078announcement-0.12.6() {
1079 write-no-announcement
1080}
1081
1082announcement-0.12.7() {
1083 html-redirect '/blog/2022/10/garbage-collector.html' > $SITE_DEPLOY_DIR/release/0.12.7/announcement.html
1084}
1085
1086announcement-0.12.8() {
1087 write-no-announcement
1088}
1089
1090announcement-0.12.9() {
1091 write-no-announcement
1092}
1093
1094announcement-0.13.0() {
1095 write-no-announcement
1096}
1097
1098announcement-0.13.1() {
1099 write-no-announcement
1100}
1101
1102announcement-0.14.0() {
1103 write-no-announcement
1104}
1105
1106announcement-0.14.1() {
1107 write-no-announcement
1108}
1109
1110announcement-0.14.2() {
1111 html-redirect '/blog/2023/03/release-0.14.2.html' > $SITE_DEPLOY_DIR/release/0.14.2/announcement.html
1112}
1113
1114announcement-0.15.0() {
1115 html-redirect '/blog/2023/05/release-0.15.0.html' > $SITE_DEPLOY_DIR/release/0.15.0/announcement.html
1116}
1117
1118announcement-0.16.0() {
1119 html-redirect '/blog/2023/06/release-0.16.0.html' > $SITE_DEPLOY_DIR/release/0.16.0/announcement.html
1120}
1121
1122announcement-0.17.0() {
1123 html-redirect '/blog/2023/08/release-0.17.0.html' > $SITE_DEPLOY_DIR/release/0.17.0/announcement.html
1124}
1125
1126announcement-0.18.0() {
1127 html-redirect '/blog/2023/09/release-0.18.0.html' > $SITE_DEPLOY_DIR/release/0.18.0/announcement.html
1128}
1129
1130announcement-0.19.0() {
1131 html-redirect '/blog/2024/01/release-0.19.0.html' > $SITE_DEPLOY_DIR/release/0.19.0/announcement.html
1132}
1133
1134announcement-0.20.0() {
1135 html-redirect '/blog/2024/02/release-0.20.0.html' > $SITE_DEPLOY_DIR/release/0.20.0/announcement.html
1136}
1137
1138announcement-0.21.0() {
1139 html-redirect '/blog/2024/03/release-0.21.0.html' > $SITE_DEPLOY_DIR/release/0.21.0/announcement.html
1140}
1141
1142announcement-0.22.0() {
1143 html-redirect '/blog/2024/06/release-0.22.0.html' > $SITE_DEPLOY_DIR/release/0.22.0/announcement.html
1144}
1145
1146announcement-0.23.0() {
1147 html-redirect '/blog/2024/11/release-0.23.0.html' > $SITE_DEPLOY_DIR/release/0.23.0/announcement.html
1148}
1149
1150announcement-0.24.0() {
1151 html-redirect '/blog/2025/01/release-0.24.0.html' > $SITE_DEPLOY_DIR/release/0.24.0/announcement.html
1152}
1153
1154announcement-0.25.0() {
1155 write-no-announcement
1156}
1157
1158announcement-0.26.0() {
1159 write-no-announcement
1160}
1161
1162announcement-0.27.0() {
1163 write-no-announcement
1164}
1165
1166announcement-0.28.0() {
1167 write-no-announcement
1168}
1169
1170announcement-0.29.0() {
1171 write-no-announcement
1172}
1173
1174announcement-0.30.0() {
1175 write-no-announcement
1176}
1177
1178announcement-0.31.0() {
1179 write-no-announcement
1180}
1181
1182announcement-0.32.0() {
1183 write-no-announcement
1184}
1185
1186announcement-0.33.0() {
1187 write-no-announcement
1188}
1189
1190announcement-0.34.0() {
1191 write-no-announcement
1192}
1193
1194announcement-0.35.0() {
1195 write-no-announcement
1196}
1197
1198announcement-0.36.0() {
1199 write-no-announcement
1200}
1201
1202announcement-0.37.0() {
1203 write-no-announcement
1204}
1205
1206blog-redirect() {
1207 html-redirect 'making-plans.html' > $SITE_DEPLOY_DIR/blog/2020/01/11.html
1208}
1209
1210if test $(basename $0) = 'release-version.sh'; then
1211 "$@"
1212fi