forked from uncrustify/uncrustify
-
Notifications
You must be signed in to change notification settings - Fork 0
/
release-steps.txt
125 lines (98 loc) · 4.03 KB
/
release-steps.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
2017-11-21 for Version 0.66.1
Release steps.
Just in case I don't do a release for a while and forget what to do... =)
Change the date at the first line of this document.
1. Make sure CI (continuous integration - Travis and AppVeyor) has passed.
This should ensure all tests pass and building
(including cross-compiling) for Windows works.
2. Update documentation for the release
2a. Update the version number and rebuild (make sure the option CMAKE_BUILD_TYPE is set to Release).
Replace the old version with the new version everywhere except in ChangeLog.
Specific files to update:
ChangeLog
CMakeLists.txt
At lines under "# Generate uncrustify_version.h"
(Check the value of "CURRENT_VERSION", such as "Uncrustify-0.66_f")
documentation/htdocs/index.html
At line <li>Highly configurable
TODO: (automat for this) Change the values of <options> and version.
package.json
At line "version" the number
At line "preinstall"
At line "url"
README.md
At line * highly configurable
TODO: (automat for this) Change the values of options and version.
2b. Update the option count in documentation/htdocs/index.html
Use script/count_the_options.sh to count the options.
Check the number of options at ./tests/cli/Output/help.txt
2d. Update the man file, if any command-line options have changed.
2e. Update the ChangeLog to indicate the release date
2f. (optional) Generate a commit.log
$ git log > commit.log
3. Make sure there are no modified files in the workspace.
Check in all the changes you just made.
$ git commit <all the files created above>
$ git push --repo=https://github.com/uncrustify/uncrustify.git
(use an admin)
4. Create a GIT tag and push it
4a.
$ git tag -a uncrustify-0.nn -m uncrustify-0.nn
Push to the server
$ git push --tags --repo=https://github.com/uncrustify/uncrustify.git
(use an admin)
4b. Update the config files
$ cd build
$ # remove the old file
$ rm uncrustify_version.h
$ # to be sure to generate a new one with the new version
$ cmake ..
$ make
$ ctest
6. Build for windows via mingw (save the zip file)
Make sure the compiler mingw-w64 is installed.
$ mkdir buildwin-32
$ cd buildwin-32
$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw32.cmake -DCMAKE_EXE_LINKER_FLAGS="-static -s" ..
$ make
$ cpack
$ mkdir buildwin-64
$ cd buildwin-64
$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw64.cmake -DCMAKE_EXE_LINKER_FLAGS="-static -s" ..
$ make
$ cpack
5. The source tarball is available from the release on GitHub, or to build it here use
$ # generate the config files
$ scripts/update-defaults.sh
$ git commit -m "make default files" -a \
documentation/htdocs/config.txt \
documentation/htdocs/default.cfg \
etc/defaults.cfg \
etc/uigui_uncrustify.ini \
release-steps.txt
$ git archive -o uncrustify-0.nn.tar.gz `git rev-parse HEAD`
Test it somewhere else
7. Update the web page files
$ cd uncrustify-$UNC_REL/
Login as admin under:
https://sourceforge.net/projects/uncrustify/
change to "Files"
https://sourceforge.net/projects/uncrustify/files/?source=navbar
change to "uncrustify"
https://sourceforge.net/projects/uncrustify/files/uncrustify/
"Add Folder"
<Name of a new folder, i.e. uncrustify-0.nn>
change to "uncrustify-0.nn"
https://sourceforge.net/projects/uncrustify/files/uncrustify/uncrustify-0.nn/
"Add File"
Select files, or drag & drop files here.
README.md
uncrustify-0.nn.tar.gz
buildwin-32/uncrustify-0.nn-win32.zip
buildwin-64/uncrustify-0.nn-win64.zip
"Done"
$ scp -r documentation/htdocs/* ChangeLog USER,[email protected]:htdocs/
8. Use the web interface (file manager) to create the release folder and
upload the files to sourceforge.
9. (optional) Create a news item
10. (optional) Update freshmeat.net project