3.1.0-dev
[phpmyadmin/crack.git] / scripts / create-release.sh
blob7be33ca6eb2506a169c3d2da74e893f9fb969f93
1 #!/bin/sh
3 # $Id$
4 # vim: expandtab sw=4 ts=4 sts=4:
6 # 2005-09-13, lem9@users.sourceforge.net
7 # - no longer create a config.default.php from config.inc.php
9 # 2005-06-12, lem9@users.sourceforge.net
10 # - cvs server name changed to cvs, because cvs1 no longer works from
11 # shell.sourceforge.net
13 # 2003-08-23, nijel@users.sourceforge.net:
14 # - support for creating snapshots outside sourceforge:
15 # * cvs server name can be read from environment variable cvsserver
16 # * do not change to directories as used on sourceforge if $2 is local
18 # 2003-08-13, nijel@users.sourceforge.net:
19 # - config.default -> config.default.php
21 # 2004-08-09, lem9@users.sourceforge.net:
22 # - remember to create a new bug tracking group
24 # 2004-06-07 rabus@users.sourceforge.net
25 # - create backup config file
27 # 2004-04-29, lem9@users.sourceforge.net:
28 # - keep only the previous cvs directory created
30 # 2004-04-16, lem9@users.sourceforge.net:
31 # - daily snapshot when called with first parameter "snapshot"
32 # - remove directory used for the checkout
34 # 2003-11-18, nijel@users.sourceforge.net:
35 # - switch php3 -> php
37 # 2003-10-10, nijel@users.sourceforge.net:
38 # - cvsserver set on just one place to ease testing
39 # - echoes md5 sums to include on download page
41 # 2003-06-22, robbat2@users.sourceforge.net:
42 # - Moved to using updatedocs.sh for updating documentation
43 # - Make tarring faster by re-arranging ops
45 # 2003-01-17, rabus@users.sourceforge.net:
46 # - Changed the CVS hostname to cvs1 because cvs1.sourceforge.net is now blocked
47 # for the SF shell servers, too. Note: The script now works on the SF shell
48 # servers ONLY!
50 # 2002-11-22, rabus@users.sourceforge.net:
51 # - changed the CVS server dns to cvs1.sourceforge.net
52 # (cvs.phpmyadmin.sourceforge.net does not work at the SF shell anymore).
54 # 2002-10-03, rabus@users.sourceforge.net:
55 # - more detailed instructions
57 # 2002-09-08, robbat2@users.sourceforge.net:
58 # - Tweaked final instruction list
60 # 2002-06-17, lem9@users.sourceforge.net:
61 # - I option to tar for bzip2 is deprecated, use j
63 # 2002-27-04, loic@phpmyadmin.net:
64 # - added the cvs branch feature
66 # 2001-08-08, swix@users.sourceforge.net:
67 # - created script
68 # - added release todo list
71 KITS="all-languages-utf-8-only all-languages english"
72 COMPRESSIONS="zip-7z tbz tgz 7z"
74 if [ $# = 0 ]
75 then
76 echo "Usages:"
77 echo " create-release.sh <version> [from_branch]"
78 echo " create-release.sh snapshot [sf]"
79 echo " (no spaces allowed!)"
80 echo ""
81 echo "Examples:"
82 echo " create-release.sh 2.9.0-rc1 branches/QA_2_9"
83 echo " create-release.sh 2.9.0 tags/RELEASE_2_9_0"
84 exit 65
87 branch='trunk'
89 if [ "$1" = "snapshot" ] ; then
90 mode="snapshot"
91 date_snapshot=`date +%Y%m%d-%H%M%S`
92 target=$date_snapshot
93 else
94 if [ "$#" -ge 2 ] ; then
95 branch="$2"
97 target="$1"
98 cat <<END
100 Please ensure you have:
101 1. incremented rc count or version in subversion :
102 - in libraries/Config.class.php PMA_Config::__constructor() the line
103 " \$this->set( 'PMA_VERSION', '$1' ); "
104 - in Documentation.html the 2 lines
105 " <title>phpMyAdmin $1 - Documentation</title> "
106 " <h1>phpMyAdmin $1 Documentation</h1> "
107 - in translators.html
108 - in README
109 2. checked that all language files are valid (use
110 the "./scripts/check_lang.php" script to do it).
112 Continue (y/n)?
114 read do_release
116 if [ "$do_release" != 'y' ]; then
117 exit
121 if [ "$mode" = "snapshot" -a "$2" = "sf" ] ; then
122 # Goto project dir
123 cd /home/groups/p/ph/phpmyadmin/htdocs
125 # Keep one previous version of the cvs directory
126 if [ -e svn-prev ] ; then
127 rm -rf svn-prev
129 mv svn svn-prev
132 # Do SVNcheckout
133 mkdir -p ./svn
134 cd svn
136 echo "Exporting repository from subversion"
138 svn export -q https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/$branch/phpMyAdmin
140 if [ $? -ne 0 ] ; then
141 echo "Subversion checkout failed, bailing out"
142 exit 2
145 # Cleanup release dir
146 LC_ALL=C date -u > phpMyAdmin/RELEASE-DATE-${target}
148 # Building Documentation.txt
149 LC_ALL=C w3m -dump phpMyAdmin/Documentation.html > phpMyAdmin/Documentation.txt
151 # Renaming directory
152 mv phpMyAdmin phpMyAdmin-$target
154 # Prepare all kits
155 for kit in $KITS ; do
156 # Copy all files
157 name=phpMyAdmin-$target-$kit
158 cp -r phpMyAdmin-$target $name
160 # Cleanup translations
161 cd phpMyAdmin-$target-$kit
162 scripts/lang-cleanup.sh $kit
163 cd ..
165 # Prepare distributions
166 for comp in $COMPRESSIONS ; do
167 case $comp in
168 tbz|tgz)
169 echo "Creating $name.tar"
170 tar cf $name.tar $name
171 if [ $comp = tbz ] ; then
172 echo "Creating $name.tar.bz2"
173 bzip2 -9k $name.tar
175 if [ $comp = tgz ] ; then
176 echo "Creating $name.tar.gz"
177 gzip -9c $name.tar > $name.tar.gz
179 rm $name.tar
181 zip)
182 echo "Creating $name.zip"
183 zip -q -9 -r $name.zip $name
185 zip-7z)
186 echo "Creating $name.zip"
187 7za a -bd -tzip $name.zip $name > /dev/null
190 echo "Creating $name.7z"
191 7za a -bd $name.7z $name > /dev/null
194 echo "WARNING: ignoring compression '$comp', not known!"
196 esac
197 done
199 # Remove directory with current dist set
200 rm -rf $name
201 done
203 # Cleanup
204 rm -rf phpMyAdmin-${target}
206 if [ "$mode" != "snapshot" ]
207 then
210 echo ""
211 echo ""
212 echo ""
213 echo "Files:"
214 echo "------"
216 ls -la *.gz *.zip *.bz2 *.7z
218 echo
219 echo "MD5 sums:"
220 echo "--------"
222 md5sum *.{gz,zip,bz2,7z} | sed "s/\([^ ]*\)[ ]*\([^ ]*\)/\$md5sum['\2'] = '\1';/"
224 echo
225 echo "Sizes:"
226 echo "------"
228 ls -l --block-size=k *.{gz,zip,bz2,7z} | sed -r "s/[a-z-]+[[:space:]]+[0-9]+[[:space:]]+[^[:space:]]+[[:space:]]+[^[:space:]]+[[:space:]]+([0-9]*)K.*[[:space:]]([^[:space:]]+)\$/\$size['\2'] = \1;/"
230 echo
231 echo "Add these to /home/groups/p/ph/phpmyadmin/htdocs/home_page/files.inc.php on sf"
233 cat <<END
236 Todo now:
237 ---------
238 1. tag the subversion tree with the new revision number for a plain release
239 or a release candidate:
240 version 2.7.0 gets two tags: RELEASE_2_7_0 and STABLE
241 version 2.7.1-rc1 gets RELEASE_2_7_1RC1 and TESTING
243 2. upload the files to SF (procedure explained on the sf.net Admin/File Releases page)
244 3. add files to SF files page (cut and paste changelog since last release)
245 4. add SF news item to phpMyAdmin project
246 5. update web page:
247 - add MD5s and file sizes to /home/groups/p/ph/phpmyadmin/htdocs/home_page/includes/list_files.inc.php
248 - add release to /home/groups/p/ph/phpmyadmin/htdocs/home_page/includes/list_release.inc.php
249 6. announce release on freshmeat (http://freshmeat.net/projects/phpmyadmin/)
250 7. send a short mail (with list of major changes) to
251 phpmyadmin-devel@lists.sourceforge.net
252 phpmyadmin-news@lists.sourceforge.net
253 phpmyadmin-users@lists.sourceforge.net
255 Don't forget to update the Description section in the announcement,
256 based on Documentation.html.
258 8. increment rc count or version in subversion :
259 - in libraries/Config.class.php PMA_Config::__constructor() the line
260 " $this->set( 'PMA_VERSION', '2.7.1-dev' ); "
261 - in Documentation.html the 2 lines
262 " <title>phpMyAdmin 2.2.2-rc1 - Documentation</title> "
263 " <h1>phpMyAdmin 2.2.2-rc1 Documentation</h1> "
264 - in translators.html
266 9. add a group for bug tracking this new version, at
267 https://sourceforge.net/tracker/admin/index.php?group_id=23067&atid=377408&add_group=1
269 10. the end :-)
275 # Removed due to not needed thanks to clever scripting by Robbat2
276 # 9. update the demo subdirectory:
277 # - in htdocs, cvs update phpMyAdmin
278 # - and don't forget to give write rights for the updated scripts to the
279 # whole group