/ezpublishbuilder

A set of php scripts and other files to help in the "build process" of eZ Publish Legacy tarballs and deliverables

Primary LanguagePHPOtherNOASSERTION

Introduction
============

1. What is the eZ Publish Builder?
----------------------------------

A set of php scripts and other files to help in the "build process" of eZ Publish Community Project
tarballs and deliverables
- it is based on the Pake tool;
- it is not a "complete" tool, as it relies on external repositories and build servers
  to do the heavy lifting.

The build process carried out by this tool consists broadly speaking of the following steps:
- getting a copy of the latest version of the source code from the git repositories
- creating a changelog file and adding it to the sources
- invoking the external build process
- produce different packaged formats from the tarballs generated by the external build process
- produce html documentation of the php API using multiple documentation-generators tools

2. License
----------

This software is licensed under the GNU General Public License v2.0 . The
complete license agreement is included in the LICENSE file. For more information
or questions please contact info@ez.no

3. Requirements
---------------

- the php cli
- Pake version 1.7.4 or later.
  You can get it either from https://github.com/indeyets/pake/wiki
  or as part of the setup process of this tool, running composer (latter option is recommended)
- command line tools: git, tar, zip, patch
- access to the eZ Publish build server (Jenkins) and eZ Publish and CI github repositories
  (with write access)
- Doxygen 1.8.1.2 or later (for generating the API documentation)
- Phpdoc 2.1.0 or later (for generating the API documentation) - installed automatically via composer
- Sami 1.0 or later (for generating the API documentation) - installed automatically via composer
- access to the pubsvn.ez.no server via ssh/sftp (which generally means an ssh key)

4. Installing
-------------

Read the INSTALL file to get started and for usage instructions


Directory structure
===================

Let's call ROOT_DIR the directory where you will be running the build script. ::

ROOT_DIR/
 |___classes/       php classes with the bulk of the business logic for this tool
 |___doc/           more documentation, such as changelogs, todos and known bugs
 |___vendor/        where composer will install required php libraries
 |___INSTALL        installation instructions
 |___LICENSE        license file
 |___README         this file
 |___composer.json  configuration file for composer
 |
 |___build
 |   |___source/    a copy of the eZP sources will be downloaded here during the build
 |   `___release/   tarballs produced by the Jenkins build will be downloaded here
 |   `___apidocs/   where the generated documentation is stored, in a subfolder for each different tool used
 |
 |___dist/          tarballs produced by the build will be made available here
 |
 |___pake/
 |   |___
 |   `___
 |
 `___resources/
     |___doxyfile_master config.   file used for documentation generation via doxygen
     |___doxygen_piwik_footer.html template file used as footer for documentation generation via doxygen
     |___samicfg_master.php        file used for documentation generation via sami
     `___wpifiles/                 template files used to the generate the wpi package

FAQ
===

- Can a standalone copy of pake be used with the pakefile instead of the bundled one?
    Yes: just use a different command line: ::
    php pake.php build ...

- Can I download a complete zip of the tool instead of doing the bootstrap?
    Yes. Come back later for a list of urls to use ;-)