1 <?xml version="1.0" encoding="utf-8"?>
2 <project name="phorkie" default="zip" basedir=".">
4 phorkie phing build file.
5 This script should provide a one-stop tool for all administrative
6 tasks around phorkie, like creating a release version,
9 <property name="version" value="0.8.0" />
10 <property name="stability" value="beta" />
11 <property name="releasenotes" value="
12 Version 0.8.0 - 2017-04-19
13 --------------------------
14 * Add support for git 2.11
15 * Fix 'Please tell me who you are' messages
16 * Fix crash on /new when a paste has been deleted
17 * Fix crash on broken git repositories
19 * Move phorkie off sourceforge
21 <property name="libdir" value="${phing.dir}/lib"/>
23 <property name="zipfile" value="${phing.project.name}-${version}.tar.bz2" />
24 <property name="pharfile" value="${phing.project.name}-${version}.phar" />
25 <property name="pkgfile" value="${phing.project.name}-${version}.tgz" />
27 <property name="pharpath" value="${phing.dir}/dist/${pharfile}" />
28 <property name="distfile" value="dist/${zipfile}" />
29 <property name="distpkgfile" value="dist/pear/${pkgfile}" />
31 <fileset id="fs.zip" dir=".">
32 <include name="data/**"/>
33 <include name="scripts/**"/>
34 <include name="src/**"/>
35 <include name="www/**"/>
37 <include name="ChangeLog"/>
38 <include name="LICENSE"/>
39 <include name="NEWS.rst"/>
40 <include name="README.rst"/>
42 <exclude name="**/.git/"/>
43 <exclude name="**/.gitignore/"/>
44 <exclude name="data/cache/**"/>
45 <exclude name="data/config.php"/>
46 <exclude name="www/**/.phar"/>
47 <exclude name="www/repos"/>
50 <fileset id="fs.phar" dir="${phing.dir}">
51 <include name="data/**"/>
52 <include name="lib/**"/>
53 <include name="scripts/**"/>
54 <include name="src/**"/>
55 <include name="www/**"/>
57 <include name="ChangeLog"/>
58 <include name="README.rst"/>
60 <exclude name="**/.git/"/>
61 <exclude name="**/.gitignore/"/>
62 <exclude name="data/cache/**"/>
63 <exclude name="data/config.php"/>
64 <exclude name="www/**/.phar"/>
65 <exclude name="www/repos"/>
68 <fileset id="fs.doc" dir=".">
69 <include name="README.rst"/>
70 <include name="NEWS.rst"/>
73 <taskdef name="d51pearpkg2" classname="phing.tasks.ext.d51PearPkg2Task" />
76 <target name="phar" depends="preparedirs,collectdeps"
77 description="Create phar file for release"
79 <delete file="${pharpath}"/>
80 <exec command="php scripts/build-rewritemap.php" dir="${phing.dir}"/>
81 <pharpackage basedir="${phing.dir}"
82 destfile="${pharpath}"
83 stub="${phing.dir}/src/stub-phar.php"
86 <fileset refid="fs.phar"/>
89 <exec executable="bzip2" dir="${phing.dir}/dist">
91 <arg file="${pharpath}"/>
96 <target name="collectdeps" description="Copy package dependencies to lib/">
97 <delete dir="${libdir}"/>
98 <mkdir dir="${libdir}"/>
100 <!-- requires phing >= 2.8.0 -->
101 <copy todir="${libdir}">
102 <pearPackageFileset package="pear.php.net/Cache_Lite"/><!-- OpenID -->
103 <pearPackageFileset package="pear.php.net/Console_Getopt"/>
104 <pearPackageFileset package="pear.php.net/Crypt_DiffieHellman"/><!-- OpenID -->
105 <pearPackageFileset package="pear.php.net/Date_HumanDiff"/>
106 <pearPackageFileset package="pear.geshi.org/geshi">
107 <!-- remove files that are probably not needed to save space in the .phar -->
108 <exclude name="geshi/arm.php"/>
109 <exclude name="geshi/autoit.php"/>
110 <exclude name="geshi/thinbasic.php"/>
111 </pearPackageFileset>
112 <pearPackageFileset package="pear.php.net/HTTP2"/>
113 <pearPackageFileset package="pear.php.net/HTTP_Request2"/>
114 <pearPackageFileset package="pear.php.net/MIME_Type"/>
115 <pearPackageFileset package="zustellzentrum.cweiske.de/MIME_Type_PlainDetect"/>
116 <pearPackageFileset package="zustellzentrum.cweiske.de/MIME_Type_PlainDetect" role="data"/>
117 <pearPackageFileset package="pear.michelf.com/Markdown"/>
118 <pearPackageFileset package="pear.php.net/Net_URL2"/>
119 <pearPackageFileset package="pear.php.net/OpenID"/>
120 <pearPackageFileset package="pear.php.net/Pager"/>
121 <pearPackageFileset package="pear.php.net/PEAR">
122 <include name="PEAR/Exception.php"/>
123 <include name="PEAR.php"/>
124 <include name="PEAR5.php"/>
125 <include name="OS/Guess.php"/>
126 <include name="System.php"/>
127 </pearPackageFileset>
128 <pearPackageFileset package="pear.php.net/Services_Libravatar"/>
129 <pearPackageFileset package="pear2.php.net/PEAR2_Services_Linkback"/>
130 <pearPackageFileset package="pear.php.net/Services_Yadis"/>
131 <pearPackageFileset package="pear.php.net/System_Command"/>
132 <pearPackageFileset package="pear.twig-project.org/Twig"/>
133 <pearPackageFileset package="pear.php.net/Validate"/>
134 <pearPackageFileset package="pear.php.net/VersionControl_Git"/>
139 <target name="zip" depends="preparedirs"
140 description="Create zip file for release"
143 The release file is for end users, so it is safe to
144 remove anything developer-related.
146 Test your zip with: unzip -l phorkie-0.1.0.zip
148 <echo msg="Creating distribution zip for phorkie ${version}"/>
149 <delete file="${distfile}" failonerror="false"/>
150 <tar compression="bzip2" destfile="${distfile}"
151 prefix="${phing.project.name}-${version}/"
153 <fileset refid="fs.zip"/>
158 <target name="docs" description="render documentation">
159 <rST format="html" uptodate="true">
160 <fileset refid="fs.doc"/>
161 <mapper type="regexp" from="^(.+?).rst$" to="dist/docs/\1.html"/>
165 <target name="clean-docs" description="delete rendered documentation files">
166 <delete dir="dist/docs" includeemptydirs="yes"/>
170 <target name="release" depends="check,phar,zip"
171 description="Package the new version"
177 <target name="preparedirs">
181 <target name="check" depends="preparedirs"
182 description="Check variables"
184 <fail unless="version" message="Version not defined!" />