diff options
Diffstat (limited to 'build.xml')
-rw-r--r-- | build.xml | 471 |
1 files changed, 471 insertions, 0 deletions
diff --git a/build.xml b/build.xml new file mode 100644 index 0000000..a173a66 --- /dev/null +++ b/build.xml @@ -0,0 +1,471 @@ +<?xml version="1.0" encoding="utf-8"?> +<project name="SemanticScuttle" default="zip" basedir="."> + <!-- + SemanticScuttle phing build file. + This script should provide a one-stop tool for all administrative + tasks around SemanticScuttle, like creating a release version, + tagging a release, running unit tests etc. + --> + <property file="build.properties" /> + <property file="html.properties" /> + + <property name="version-m" value="0.98" /> + <property name="version" value="0.98.5" /> + <property name="stability" value="beta" /> + <property name="releasenotes" value=" +- Fix bug #109: preserve privacy setting from Delicious export files + (Thanks to David Glenck) +- Fix bug #110: Document solution for "searching slashes" +- Fix bug #111: Comments in config.php mention *.inc.php files + (José María Mateos [rinze]) +- Fix bug: Do not use eregi functions anymore +" /> + <property name="zipfile" value="${phing.project.name}-${version}.zip" /> + <property name="pkgfile" value="${phing.project.name}-${version}.tgz" /> + <property name="distfile" value="dist/${zipfile}" /> + <property name="distpkgfile" value="dist/pear/${pkgfile}" /> + <property name="sfproject" value="SemanticScuttle" /> + <property name="sffilepath" value="s/se/semanticscuttle/" /> + <property name="svnpath" value="https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/" /> + + <fileset id="fs.zip" dir="."> + <include name="data/**"/> + <include name="doc/**"/> + <include name="src/**"/> + <include name="www/**"/> + <include name="scripts/avahi-export.php"/> + <include name="scripts/fix-unfiled-tags.php"/> + <exclude name="**/.gitignore/"/> + <exclude name="**/.svn/"/> + <exclude name="data/config.php"/> + <exclude name="data/config.testing.php"/> + <exclude name="data/config.testing-tmp.php"/> + <exclude name="data/locales/messages.po"/> + <exclude name="data/locales/*/LC_MESSAGES/messages.po"/> + <exclude name="src/php-gettext/examples/" /> + <exclude name="src/php-gettext/tests/"/> + </fileset> + + <fileset id="fs.doc" dir="doc"> + <include name="ChangeLog"/> + <include name="**.txt"/> + <include name="**.rst"/> + <include name="**/*.rst"/> + <exclude name="LICENSE.txt"/> + <exclude name="developers/TODO.rst"/> + <exclude name="allinone.rst"/> + </fileset> + + <taskdef name="rST" classname="phing.tasks.ext.rSTTask" /> + <taskdef name="d51pearpkg2" classname="phing.tasks.ext.d51PearPkg2Task" /> + + <target name="zip" depends="check" + description="Create zip file for release" + > + <!-- + The release file is for end users, so it is safe to + remove anything developer-related. + + Test your zip with: unzip -l SemanticScuttle-0.95.0.zip + --> + <echo msg="Creating distribution zip for SemanticScuttle ${version}"/> + <delete file="${distfile}" failonerror="false"/> + <zip destfile="${distfile}" prefix="${phing.project.name}-${version}/"> + <fileset refid="fs.zip"/> + </zip> + </target> + + + + <target name="package" depends="check" + description="Creates the pear package" + > + <d51pearpkg2 dir="." baseinstalldir="/"> + <name>SemanticScuttle</name> + <summary>A social bookmarking tool</summary> + <description> + A social bookmarking tool experimenting with new features + like structured tags or collaborative descriptions of tags. + </description> + <channel>semanticscuttle.sourceforge.net</channel> + + <lead user="cweiske" name="Christian Weiske" email="cweiske@cweiske.de" /> + <license>GPL</license> + + <version release="${version}" api="${version}" /> + <stability release="${stability}" api="${stability}" /> + + <notes>${releasenotes}</notes> + + <dependencies> + <php minimum_version="5.2.0" /> + <pear minimum_version="1.8.1" /> + + <package name="HTML_QuickForm2" + channel="pear.php.net" + minimum_version="0.4.0" + /> + <!-- unit tests: --> + <package name="HTML_Request2" + channel="pear.php.net" + minimum_version="2.0.0" + /> + <package name="Stream_Var" + channel="pear.php.net" + minimum_version="1.1.0" + /> + + </dependencies> + + <!-- map directory (key) to role --> + <dirroles key="www">www</dirroles> + <dirroles key="data">data</dirroles> + <dirroles key="doc">doc</dirroles> + <dirroles key="scripts">doc</dirroles> + <dirroles key="src">php</dirroles> + <dirroles key="tests">test</dirroles> + + <!-- do not add the following files to the package. + copied from excludes above --> + <ignore>**/.gitignore</ignore> + <ignore>**/.svn</ignore> + <ignore>build*</ignore> + <ignore>data/config.php</ignore> + <ignore>data/config.testing.php</ignore> + <ignore>data/config.testing-tmp.php</ignore> + <ignore>data/locales/messages.po</ignore> + <ignore>data/locales/*/LC_MESSAGES/messages.po</ignore> + <ignore>dist/**</ignore> + <ignore>src/php-gettext/examples/**</ignore> + <ignore>src/php-gettext/tests/**</ignore> + <ignore>*.properties</ignore> + <ignore>semanticscuttle-dump.sql</ignore> + <ignore>*.tgz</ignore> + + <replacement path="src/SemanticScuttle/header.php" + type="pear-config" from="@data_dir@" to="data_dir" + /> + <replacement path="src/SemanticScuttle/header.php" + type="pear-config" from="@www_dir@" to="www_dir" + /> + <replacement path="src/SemanticScuttle/Config.php" + type="pear-config" from="@data_dir@" to="data_dir" + /> + <replacement path="src/SemanticScuttle/Config.php" + type="pear-config" from="@www_dir@" to="www_dir" + /> + <replacement path="www/www-header.php" + type="pear-config" from="@data_dir@" to="data_dir" + /> + <replacement path="tests/prepare.php" + type="pear-config" from="@data_dir@" to="data_dir" + /> + + <changelog version="0.98.5" date="2013-03-20" license="GPL"> +- Fix bug #109: preserve privacy setting from Delicious export files + (Thanks to David Glenck) +- Fix bug #110: Document solution for "searching slashes" +- Fix bug #111: Comments in config.php mention *.inc.php files + (José María Mateos [rinze]) +- Fix bug: Do not use eregi functions anymore + </changelog> + + <changelog version="0.98.4" date="2012-01-21" license="GPL"> +- Fix bug #3439729: URLs were escaped too often in bookmark list +- Fix bug: Subtitle was not escaped +- Fix bug #3388219: Incorrect URL when cancelling tag2tag-actions +- Fix bug #3393951: Logo images missing on bookmark page +- Fix bug #3399815: PHP error in opensearch API in 0.98.3 +- Fix bug #3407728: Can't delete users from admin page +- Fix bug #3431742: open_basedir problems with /etc/ config files +- Fix bug #3436624: Wrong URL for Delicious API when importing +- Fix bug #3463481: RSS feed show warnings in feedvalidator.org +- Fix bug #3384416: Use URL with protocol in bookmarklet +- Fix bug: Invalid HTML when website thumbnails are activated +- Fix bug #3413459: Thumbnails not in one line +- Fix bug #3468293: Delicious import does not preserve private links +- Fix bug #3396727: Title of http://lesscss.org/ not loaded +- Fix bug #3111254: getIdFromUser() always returns an integer now (part 2) +- Implement request #3403609: fr_CA translation update +- Implement patch #3476011: PostgreSQL tables can not be initialized + (Frédéric Fauberteau [triaxx]) + </changelog> + + <!-- 0.98.3 was not needed --> + + <changelog version="0.98.2" date="2011-08-08" license="GPL"> +- Fix bug #3385724: Rename tag ends with XML Parsing Error +- Fix bug #3386178: "system:unfiled" secret tag does not work +- Fix bug #3384416: Update documentation to explain HTTP/HTTPS root problem +- Fix bug #3382126: Linked tags does not work for tags with spaces +- Fix delicious API help page link + </changelog> + + <changelog version="0.98.1" date="2011-08-01" license="GPL"> +- Fix bug #3375635: XML parsing problem in top.inc.php +- Fix bug #3375428: Forgot to remove some old dojo files +- Fix bug #3160512: Make SemanticScuttle work with FastCGI +- Fix bug #3376618: Broken tag completion for private bookmarks + </changelog> + + <changelog version="0.98.0" date="2011-07-21" license="GPL"> +- Switch to jQuery and drop dojo +- Implement request #2928950: Private keys for RSS feeds (Mark Pemberton) +- Implement request #3164348: Configurable default privacy (Brett Dee) +- Implement request #1989987: Theming support +- Implement request #3054906: Show user's full name instead of nickname +- Implement patch #3059829: update ``FR_CA`` translation +- Fix bug #3187177: Wrong URL / Export XML Bookmarks +- Fix bug #3097187: Using opensearch with two tags does not work in Firefox +- Fix bug #3251877: French translation JavaScript Bug when editing bookmarks +- Fix bug #3168521: Title of tag-filtered RSS Feed is broken +- Fix bug #2853627: Javascript warning +- Fix bug in ``getTagsForBookmarks()`` that fetched all tags +- Fix privacy issue when fetching tags of several users +- Fix Google custom search XML +- Show error message on mysqli connection errors +- Update php-gettext library to 1.0.10 +- ``api/posts/add`` respects the 'replace' parameter now +- Only URLs with an allowed protocol may be added to the database +- Support HTTPS connections when ``$root`` is not configured +- SQL schema version table to ease future database upgrades +- Documentation is written with rST (reStructuredText) now +- Support per-host configuration files + </changelog> + + <changelog version="0.97.0" date="2010-06-09" license="GPL"> +- Many SQL optimizations - SemanticScuttle shows bookmarks 4 times faster now +- New config option to skip "SET NAMES UTF8" call: $dbneedssetnames +- Do not highlight admin bookmarks when $enableAdminColors is disabled +- Add russian translation +- Make HTML export follow the specifications a bit better +- Fix bug #2953732: faulty error message for duplicate bookmarks +- Fix bug #2960663: do not send content-type headers twice for ajax/api scripts +- Fix bug #2976593: fr_FR locale is vietnamese + </changelog> + + <!-- <dirroles key="bin">script</dirroles> --> + <!-- <replacement path="bin/doctrine" type="pear-config" from="@php_bin@" to="php_bin" /> --> + <!-- <release> + <install as="doctrine" name="bin/doctrine" /> + --> + </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="SemanticScuttle/\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"> + <rST format="html" uptodate="true" + toolparam="--stylesheet=res/docs/style.css" + > + <fileset refid="fs.doc"/> + <mapper type="regexp" from="^doc/(.+?)(.rst|.txt)?$" to="dist/docs/\1.html"/> +<!-- + <filterchain> + <replacetokenswithfile dir="res/docs"> + < + </replacetokenswithfile> + </filterchain> +--> + </rST> + </target> + + <target name="clean-docs" description="delete rendered documentation files"> + <delete dir="dist/docs" includeemptydirs="yes"/> + </target> + + + <target name="release" depends="check,zip,package,deploy-sf" + description="Release the version on sourceforge" + > + <!-- meta-target --> + </target> + + + <!-- + /home/frs/project/s/se/semanticscuttle/SemanticScuttle/v0.94/ + /home/frs/project/s/se/semanticscuttle/SemanticScuttle/v0.94/SemanticScuttle-v0.94.zip + /home/frs/project/s/se/semanticscuttle/SemanticScuttle/v0.94/SemanticScuttle-v0.94.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="deploy-sf-pear" depends="check,package" + description="Update PEAR channel + website on sourceforge" + > + <available file="${websitedir}" + type="dir" property="available.websitedir" + /> + <fail unless="available.websitedir" + message="Website directory not set" + /> + <!-- + 1. rsync channel data from sourceforge to local, deleting + superfluous channel files. Need to do that so pirum knows + all previous releases when adding the new package + 2. update channel with pirum update + 3. rsync to sourceforge + --> + <exec + command="rsync --include-from=.rsync-include-files --delete -avP -e ssh ${sfuser},${sfproject}@web.sourceforge.net:htdocs/ ." + dir="${websitedir}" + escape="false" checkreturn="false" + passthru="true" + /> + + <exec + command="pirum add ${websitedir} ${distpkgfile}" + passthru="true" + /> + <!-- fix the generated html --> + <!-- yes, we need to generate a 2nd file and move it back --> + <copy file="${websitedir}/index.html" tofile="${websitedir}/pirum.html" overwrite="true"> + <filterchain> + <replaceregexp> + <!-- make meta links relative --> + <regexp + pattern="href="http://semanticscuttle.sourceforge.net/" + replace="href="" + /> + <!-- add sourceforge logo --> + <regexp + pattern="powered by " + replace="powered by ${html.sflogo} and " + /> + </replaceregexp> + </filterchain> + </copy> + + <!-- overwrite pirum generated index with our own --> + <copy file="${websitedir}/our-index.html" tofile="${websitedir}/index.html" overwrite="true" /> + + <!-- add our custom css --> + <append + destFile="${websitedir}/pirum.css" + file="${websitedir}/pirum-custom.css" + /> + + <!-- rsync always returns code 23 on sourceforge releases, so we + can't check return values --> + <exec + command="rsync --include-from=.rsync-include-files -avP -e ssh . ${sfuser},${sfproject}@web.sourceforge.net:htdocs/" + dir="${websitedir}" + escape="false" checkreturn="false" + passthru="true" + /> + </target> + + + <target name="deploy-docs" depends="build-docs" + description="sync docs to sourceforge website" + > + <copy todir="${websitedir}/docs"> + <fileset dir="dist/docs"> + <include name="**"/> + </fileset> + </copy> + + <exec + command="rsync -avP -e ssh . ${sfuser},${sfproject}@web.sourceforge.net:htdocs/docs" + dir="${websitedir}/docs" + escape="false" checkreturn="false" + passthru="true" + /> + </target> + + + <target name="deploy-demo" + description="sync demo to sourceforge website" + > + <exec + command="rsync -avP -e ssh . ${sfuser},${sfproject}@web.sourceforge.net:htdocs/demo" + dir="${websitedir}/demo" + escape="false" checkreturn="false" + passthru="true" + /> + </target> + + + + + <target name="check" + 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!" /> + + <mkdir dir="dist" /> + </target> + +</project> |