forked from uncrustify/uncrustify
-
Notifications
You must be signed in to change notification settings - Fork 0
/
release-steps.txt
129 lines (102 loc) · 4.28 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
126
127
128
129
2018-11-04 for Version 0.68
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.68_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 (major.minor.patch, must include .patch)
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 .
Check the number of options at ./tests/cli/output/help.txt
or use uncrustify --help .
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)
Test the build of 32-bit and 64-bit version before going on.
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
$ # make the name of the zip-file shorter
$ mv uncrustify-Uncrustify-0.67-win64.zip uncrustify-0.67-win64.zip
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
$ # use the git gui command to commit or use the following:
$ git commit -m "make default files" \
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