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

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