Import Upstream version 20180207
[hcoop/debian/mlton.git] / doc / guide / src / ReleaseChecklist.adoc
1 ReleaseChecklist
2 ================
3
4 == Advance preparation for release ==
5
6 * Update `./CHANGELOG.adoc`.
7 ** Write entries for missing notable commits.
8 ** Write summary of changes from previous release.
9 ** Update with estimated release date.
10 * Update `./README.adoc`.
11 ** Check features and description.
12 * Update `man/{mlton,mlprof}.1`.
13 ** Check compile-time and run-time options in `man/mlton.1`.
14 ** Check options in `man/mlprof.1`.
15 ** Update with estimated release date.
16 * Update `doc/guide`.
17 // ** Check <:OrphanedPages:> and <:WantedPages:>.
18 ** Synchronize <:Features:> page with `./README.adoc`.
19 ** Update <:Credits:> page with acknowledgements.
20 ** Create *ReleaseYYYYMM??* page (i.e., forthcoming release) based on *ReleaseXXXXLLCC* (i.e., previous release).
21 *** Update summary from `./CHANGELOG.adoc`.
22 *** Update links to estimated release date.
23 ** Create *BugsYYYYMM??* page based on *BugsXXXXLLCC*.
24 *** Update links to estimated release date.
25 ** Spell check pages.
26 * Ensure that all updates are pushed to `master` branch of <!ViewGitProj(mlton)>.
27
28 == Prepare sources for tagging ==
29
30 * Update `./CHANGELOG.adoc`.
31 ** Update with proper release date.
32 * Update `man/{mlton,mlprof}.1`.
33 ** Update with proper release date.
34 * Update `doc/guide`.
35 ** Rename *ReleaseYYYYMM??* to *ReleaseYYYYMMDD* with proper release date.
36 *** Update links with proper release date.
37 ** Rename *BugsYYYYMM??* to *BugsYYYYMMDD* with proper release date.
38 *** Update links with proper release date.
39 ** Update *ReleaseXXXXLLCC*.
40 *** Change intro to "`This is an archived public release of MLton, version XXXXLLCC.`"
41 ** Update <:Home:> with note of new release.
42 *** Change `What's new?` text to `Please try out our new release, <:ReleaseYYYYMMDD:MLton YYYYMMDD>`.
43 *** Update `Download` link with proper release date.
44 ** Update <:Releases:> with new release.
45 * Ensure that all updates are pushed to `master` branch of <!ViewGitProj(mlton)>.
46
47 == Tag sources ==
48
49 * Shell commands:
50 +
51 ----
52 git clone http://github.com/MLton/mlton mlton.git
53 cd mlton.git
54 git checkout master
55 git tag -a -m "Tagging YYYYMMDD release" on-YYYYMMDD-release master
56 git push origin on-YYYYMMDD-release
57 ----
58
59 == Packaging ==
60
61 === SourceForge FRS ===
62
63 * Create *YYYYMMDD* directory:
64 +
65 -----
66 sftp user@frs.sourceforge.net:/home/frs/project/mlton/mlton
67 sftp> mkdir YYYYMMDD
68 sftp> quit
69 -----
70
71 === Source release ===
72
73 * Create `mlton-YYYYMMDD.src.tgz`:
74 +
75 ----
76 git clone http://github.com/MLton/mlton mlton
77 cd mlton
78 git checkout on-YYYYMMDD-release
79 make MLTON_VERSION=YYYYMMDD source-release
80 cd ..
81 ----
82 +
83 or
84 +
85 ----
86 wget https://github.com/MLton/mlton/archive/on-YYYYMMDD-release.tar.gz
87 tar xzvf on-YYYYMMDD-release.tar.gz
88 cd mlton-on-YYYYMMDD-release
89 make MLTON_VERSION=YYYYMMDD source-release
90 cd ..
91 ----
92
93 * Upload `mlton-YYYYMMDD.src.tgz`:
94 +
95 -----
96 scp mlton-YYYYMMDD.src.tgz user@frs.sourceforge.net:/home/frs/project/mlton/mlton/YYYYMMDD/
97 -----
98
99 * Update *ReleaseYYYYMMDD* with `mlton-YYYYMMDD.src.tgz` link.
100
101 === Binary releases ===
102
103 * Build and create `mlton-YYYYMMDD-1.ARCH-OS.tgz`:
104 +
105 ----
106 wget http://sourceforge.net/projects/mlton/files/mlton/YYYYMMDD/mlton-YYYYMMDD.src.tgz
107 tar xzvf mlton-YYYYMMDD.src.tgz
108 cd mlton-YYYYMMDD
109 make binary-release
110 cd ..
111 ----
112
113 * Upload `mlton-YYYYMMDD-1.ARCH-OS.tgz`:
114 +
115 -----
116 scp mlton-YYYYMMDD-1.ARCH-OS.tgz user@frs.sourceforge.net:/home/frs/project/mlton/mlton/YYYYMMDD/
117 -----
118
119 * Update *ReleaseYYYYMMDD* with `mlton-YYYYMMDD-1.ARCH-OS.tgz` link.
120
121 == Website ==
122
123 * `guide/YYYYMMDD` gets a copy of `doc/guide/localhost`.
124 * Shell commands:
125 +
126 ----
127 wget http://sourceforge.net/projects/mlton/files/mlton/YYYYMMDD/mlton-YYYYMMDD.src.tgz
128 tar xzvf mlton-YYYYMMDD.src.tgz
129 cd mlton-YYYYMMDD
130 cd doc/guide
131 cp -prf localhost YYYYMMDD
132 tar czvf guide-YYYYMMDD.tgz YYYYMMDD
133 rsync -avzP --delete -e ssh YYYYMMDD user@web.sourceforge.net:/home/project-web/mlton/htdocs/guide/
134 rsync -avzP --delete -e ssh guide-YYYYMMDD.tgz user@web.sourceforge.net:/home/project-web/mlton/htdocs/guide/
135 ----
136
137 == Announce release ==
138
139 * Mail announcement to:
140 ** mailto:MLton-devel@mlton.org[`MLton-devel@mlton.org`]
141 ** mailto:MLton-user@mlton.org[`MLton-user@mlton.org`]
142
143 == Misc. ==
144
145 * Generate new <:Performance:> numbers.