tasks around phorkie, like creating a release version,
tagging a release
-->
- <property file="build.properties" />
+ <property name="version" value="0.9.0" />
+ <property name="stability" value="beta" />
- <property name="version-m" value="0.4" />
- <property name="version" value="0.4.0" />
- <property name="stability" value="alpha" />
- <property name="releasenotes" value="
-Version 0.3.1 - 2012-09-27
---------------------------
-* Check for OpenID package in SetupCheck
-* Fix bug #24: setupcheck: verify geshi installation
-* Fix bug #25: setupcheck: verify markdown
-
-Version 0.3.0 - 2012-09-27
---------------------------
-
-* Fix bug #10: error when nothing submitted [cweiske]
-* Fix bug #11: do not index edit, delete and tool pages [cweiske]
-* Fix bug #20: elasticsearch error on deletion [cweiske]
-* Fix bug #22: Edited pastes not in 'recently created' [cweiske]
-* Fix bug #23: 'work dir not found' on failed remote fork [cweiske]
-* Implement request #5: Add OpenID authentication [jnovack]
-* Implement request #9: autodetect file type [cweiske]
-* Implement request #12: DOAP and rel='vcs-git' support [cweiske]
-* Implement request #13: remote forking support [cweiske]
-* Hide additional file fields by default, button to toggle their visibility
- [cweiske]
-* Markdown support [jnovack]
-* Added nginx rewrite rules to README [skl]
-" />
<property name="libdir" value="${phing.dir}/lib"/>
+
<property name="zipfile" value="${phing.project.name}-${version}.tar.bz2" />
- <property name="pharfile" value="${phing.dir}/dist/${phing.project.name}-${version}.phar" />
- <property name="pkgfile" value="${phing.project.name}-${version}.tgz" />
+ <property name="pharfile" value="${phing.project.name}-${version}.phar" />
+
+ <property name="pharpath" value="${phing.dir}/dist/${pharfile}" />
<property name="distfile" value="dist/${zipfile}" />
- <property name="distpkgfile" value="dist/pear/${pkgfile}" />
- <property name="sfproject" value="phorkie" />
- <property name="sffilepath" value="p/ph/phorkie/" />
<fileset id="fs.zip" dir=".">
<include name="data/**"/>
<include name="NEWS.rst"/>
<include name="README.rst"/>
+ <exclude name="**/.git/"/>
<exclude name="**/.gitignore/"/>
+ <exclude name="data/cache/**"/>
<exclude name="data/config.php"/>
+ <exclude name="www/**/.phar"/>
+ <exclude name="www/repos"/>
</fileset>
<fileset id="fs.phar" dir="${phing.dir}">
<include name="ChangeLog"/>
<include name="README.rst"/>
- <exclude name="data/config.php"/>
- <exclude name="**/.gitignore/"/>
<exclude name="**/.git/"/>
+ <exclude name="**/.gitignore/"/>
+ <exclude name="data/cache/**"/>
+ <exclude name="data/config.php"/>
+ <exclude name="www/**/.phar"/>
+ <exclude name="www/repos/**"/>
+
+ <exclude name="lib/*/*/.github/**"/>
+ <exclude name="lib/*/*/doc/**"/>
+ <exclude name="lib/*/*/docs/**"/>
+ <exclude name="lib/*/*/examples/**"/>
+ <exclude name="lib/*/*/test/**"/>
+ <exclude name="lib/*/*/tests/**"/>
+ <exclude name="lib/*/*/.editorconfig"/>
+ <exclude name="lib/*/*/.travis.yml"/>
+ <exclude name="lib/*/*/build.properties*"/>
+ <exclude name="lib/*/*/build.xml"/>
+ <exclude name="lib/*/*/BUGS"/>
+ <exclude name="lib/*/*/CHANGELOG"/>
+ <exclude name="lib/*/*/LICENSE"/>
+ <exclude name="lib/*/*/README*"/>
+ <exclude name="lib/*/*/package.xml"/>
+ <exclude name="lib/*/*/phpunit.xml*"/>
+ <exclude name="lib/*/*/TODO"/>
</fileset>
<fileset id="fs.doc" dir=".">
<include name="NEWS.rst"/>
</fileset>
- <taskdef name="d51pearpkg2" classname="phing.tasks.ext.d51PearPkg2Task" />
-
<target name="phar" depends="preparedirs,collectdeps"
description="Create phar file for release"
>
- <delete file="${pharfile}"/>
+ <delete file="${pharpath}"/>
<exec command="php scripts/build-rewritemap.php" dir="${phing.dir}"/>
<pharpackage basedir="${phing.dir}"
- destfile="${pharfile}"
+ destfile="${pharpath}"
stub="${phing.dir}/src/stub-phar.php"
alias="phorkie.phar"
>
<exec executable="bzip2" dir="${phing.dir}/dist">
<arg value="-kf"/>
- <arg file="${pharfile}"/>
+ <arg file="${pharpath}"/>
</exec>
</target>
<target name="collectdeps" description="Copy package dependencies to lib/">
<delete dir="${libdir}"/>
<mkdir dir="${libdir}"/>
-
- <!-- requires phing >= 2.8.0 -->
- <copy todir="${libdir}">
- <pearPackageFileset package="pear.php.net/Cache_Lite"/><!-- OpenID -->
- <pearPackageFileset package="pear.php.net/Console_Getopt"/>
- <pearPackageFileset package="pear.php.net/Crypt_DiffieHellman"/><!-- OpenID -->
- <pearPackageFileset package="pear.php.net/Date_HumanDiff"/>
- <pearPackageFileset package="pear.geshi.org/geshi">
- <!-- remove files that are probably not needed to save space in the .phar -->
- <exclude name="geshi/arm.php"/>
- <exclude name="geshi/autoit.php"/>
- <exclude name="geshi/thinbasic.php"/>
- </pearPackageFileset>
- <pearPackageFileset package="pear.php.net/HTTP2"/>
- <pearPackageFileset package="pear.php.net/HTTP_Request2"/>
- <pearPackageFileset package="pear.php.net/MIME_Type"/>
- <pearPackageFileset package="zustellzentrum.cweiske.de/MIME_Type_PlainDetect"/>
- <pearPackageFileset package="zustellzentrum.cweiske.de/MIME_Type_PlainDetect" role="data"/>
- <pearPackageFileset package="pear.michelf.com/Markdown"/>
- <pearPackageFileset package="pear.php.net/Net_URL2"/>
- <pearPackageFileset package="pear.php.net/OpenID"/>
- <pearPackageFileset package="pear.php.net/Pager"/>
- <pearPackageFileset package="pear.php.net/PEAR">
- <include name="PEAR/Exception.php"/>
- <include name="PEAR.php"/>
- <include name="PEAR5.php"/>
- <include name="OS/Guess.php"/>
- <include name="System.php"/>
- </pearPackageFileset>
- <pearPackageFileset package="pear.php.net/Services_Libravatar"/>
- <pearPackageFileset package="pear2.php.net/PEAR2_Services_Linkback"/>
- <pearPackageFileset package="pear.php.net/Services_Yadis"/>
- <pearPackageFileset package="pear.php.net/System_Command"/>
- <pearPackageFileset package="pear.twig-project.org/Twig"/>
- <pearPackageFileset package="pear.php.net/Validate"/>
- <pearPackageFileset package="pear.php.net/VersionControl_Git"/>
- </copy>
+ <exec executable="composer">
+ <arg value="install"/>
+ <arg value="--no-dev"/>
+ </exec>
</target>
</target>
-
- <target name="package" depends="check"
- description="Creates the pear package"
- >
- <d51pearpkg2 dir="." baseinstalldir="/">
- <name>phorkie</name>
- <summary>Self-hosted pastebin software</summary>
- <description>
- Self-hosted pastebin software written in PHP.
- Pastes are editable, may have multiple files and are stored in git repositories.
- </description>
- <channel>phorkie.sourceforge.net</channel>
-
- <lead user="cweiske" name="Christian Weiske" email="cweiske@cweiske.de" />
- <license>AGPL</license>
-
- <version release="${version}" api="${version}" />
- <stability release="${stability}" api="${stability}" />
-
- <notes>${releasenotes}</notes>
-
- <dependencies>
- <php minimum_version="5.3.0" />
- <pear minimum_version="1.9.0" />
-
- <package name="Date_HumanDiff"
- channel="pear.php.net"
- minimum_version="0.4.0"
- />
- <package name="HTTP_Request2"
- channel="pear.php.net"
- minimum_version="2.1.0"
- />
- <package name="OpenID"
- channel="pear.php.net"
- minimum_version="0.3.3"
- />
- <package name="Pager"
- channel="pear.php.net"
- minimum_version="2.4.8"
- />
- <package name="PEAR2_Services_Linkback"
- channel="pear2.php.net"
- minimum_version="0.2.1"
- />
- <package name="Services_Libravatar"
- channel="pear.php.net"
- minimum_version="0.2.2"
- />
- <package name="VersionControl_Git"
- channel="pear.php.net"
- minimum_version="0.4.4"
- />
-
- <package name="geshi"
- channel="pear.geshi.org/geshi"
- minimum_version="1.0.0"
- />
- <package name="Markdown"
- channel="pear.michelf.com"
- minimum_version="0.0.2"
- />
- <package name="MIME_Type_PlainDetect"
- channel="zustellzentrum.cweiske.de"
- minimum_version="0.0.2"
- />
- <package name="Twig"
- channel="pear.twig-project.org"
- minimum_version="1.6.0"
- />
-
- </dependencies>
-
- <!-- map directory (key) to role -->
- <dirroles key="data">data</dirroles>
- <dirroles key="scripts">data</dirroles>
- <dirroles key="src">php</dirroles>
- <dirroles key="www">www</dirroles>
-
- <!-- do not add the following files to the package.
- copied from excludes above -->
- <ignore>**/.gitignore</ignore>
- <ignore>build*</ignore>
- <ignore>data/config.php</ignore>
- <ignore>dist/**</ignore>
- <ignore>*.properties</ignore>
- <ignore>*.tgz</ignore>
-
- <replacement path="www/www-header.php"
- type="pear-config" from="@data_dir@" to="data_dir"
- />
-
-
- </d51pearpkg2>
-
- <!-- time to fix the package.xml file since the task does not
- allow everything we need:
- - strip the base directory names like src, data and www
- - remove that dumb baseinstalldir from files
- - md5sums are generated automatically when packaging
- -->
- <!-- yes, we need to generate a 2nd file and move it back -->
- <copy file="package.xml" tofile="package2.xml" overwrite="true">
- <filterchain>
- <replaceregexp>
- <!-- remove md5sums -->
- <regexp
- pattern="md5sum="[a-z0-9]{32}" "
- replace=""
- />
- <!-- remove baseinstalldir for files -->
- <regexp
- pattern="<file baseinstalldir="/""
- replace="<file"
- />
- <!-- install-as for different directories -->
- <regexp
- pattern="(<file name="data/(.+?)")"
- replace="\1 install-as="\2""
- />
- <regexp
- pattern="(<file name="doc/(.+?)")"
- replace="\1 install-as="\2""
- />
- <regexp
- pattern="(<file name="tests/(.+?)")"
- replace="\1 install-as="\2""
- />
- <regexp
- pattern="(<file name="www/(.+?)")"
- replace="\1 install-as="phorkie/\2""
- />
- <regexp
- pattern="(<file name="src/(.+?)")"
- replace="\1 install-as="\2""
- />
- </replaceregexp>
- </filterchain>
- </copy>
- <move file="package2.xml" tofile="package.xml" overwrite="true" />
-
- <!-- package up -->
- <exec command="pear package" passthru="true" />
- <move file="${pkgfile}" todir="dist/pear/" />
-
- <delete file="package.xml" failonerror="true" />
- </target>
-
-
- <target name="build-docs" description="render documentation">
+ <target name="docs" description="render documentation">
<rST format="html" uptodate="true">
<fileset refid="fs.doc"/>
<mapper type="regexp" from="^(.+?).rst$" to="dist/docs/\1.html"/>
</target>
- <target name="release" depends="check,zip,package,deploy-sf"
- description="Release the version on sourceforge"
+ <target name="release" depends="check,phar,zip"
+ description="Package the new version"
>
<!-- meta-target -->
</target>
- <!--
- /home/frs/project/p/ph/phorkie/phorkie/v0.1/
- /home/frs/project/p/ph/phorkie/phorkie/v0.1/phorkie-v0.1.0.zip
- /home/frs/project/p/ph/phorkie/phorkie/v0.1/phorkie-v0.1.1.zip
- https://sourceforge.net/apps/trac/sourceforge/wiki/Release%20files%20for%20download
- -->
- <target name="deploy-sf" depends="check,zip"
- description="Upload release to sourceforge"
- >
- <delete dir="dist/deploy-sf" /><!-- make empty -->
- <mkdir dir="dist/deploy-sf" />
- <mkdir dir="dist/deploy-sf/v${version-m}" />
- <copy file="${distfile}" tofile="dist/deploy-sf/v${version-m}/${zipfile}"/>
- <!-- test
- <exec command="rsync -av dist/deploy-sf/ /tmp/test/" escape="false" />
- -->
- <exec
- command="rsync -av -e ssh dist/deploy-sf/ ${sfuser},${sfproject}@frs.sourceforge.net:/home/frs/project/${sffilepath}/${sfproject}/"
- escape="false" checkreturn="false"
- />
- <!-- rsync always returns code 23 on sourceforge releases, so we
- can't check return values -->
- </target>
-
-
<target name="preparedirs">
<mkdir dir="dist" />
</target>
description="Check variables"
>
<fail unless="version" message="Version not defined!" />
- <fail unless="sfuser" message="Sourceforge username not defined!" />
- <fail unless="sfproject" message="Sourceforge project name not defined!" />
- <fail unless="sffilepath" message="Sourceforge project file path not defined!" />
</target>
</project>