eZ Publish / Releases / eZ Publish Community Project 2012 / ez-publish-community-project-2012-12

ez-publish-community-project-2012-12

eZ Publish Community Project 2012.12

You are using the innovative and cutting-edge version of eZ Publish, built by eZ Systems and the eZ Community.

Requirements

Version : Release date : Requirements :
Community Project 2012.12 (third "eZ Publish 5 build") Jan. 18th, 2013

PHP >= 5.3.3 (5.3.7 known to be bugged)
MySQL >= 5.0.51a
PostgreSQL >= 8

If using eZ Find : Java <= 1.6 or >= 1.7.1

Release Notes - ez-publish-community-project-2012-12

Installation of eZ Publish 5

  • This is the third "eZ Publish 5" build, that comprises an eZ Publish 4.x build, under the 'ezpublish_legacy' folder, at the root of your eZ Publish 5 installation. We highly recommend, however, to get acquainted with the brand new eZ Publish 5 stack :),
  • The upgrade procedure below must be applied to the latter, then the normal installation procedure for the eZ Publish 5 stack must be followed, 
  • Make sure to follow the Virtual Host based installation procedure in the latter to initiate the setup wizard.

If you are not sure what this means, have a look at the announcement from The Community Project Board.

 

Resources, documentation & rendez-vous to discuss 

Read Damien's story of the upgrade of planet-ezpublish.fr to eZ Publish 5. Also, take a look at this tutorial by Granite Horizon, to take a safe start in creating controllers for eZ Publish 2012.12.

 

Still up-to-date

Our core-team has blogged on the fly when developing eZ Publish 5, here is a short overview:

We discussed the topic extensively at the first eZ Community UnConference, and got our first hands-on experience on Symfony 2.

We have also been speaking at:

Last, but not least: the eZ Publish 5 documentation still is under construction, but improvements were made since 2012.11. You can find it here: https://confluence.ez.no/display/EZP/eZ+Publish+Documentation, notably the Cookbook for developers. Feedback appreciated on this too.

Feedback/reports are key, more than ever

Our community is at a turning point, where feedback is more important than ever. Should you encounter issues installing eZ Publish 5, using it, stumbling upon missing functionality, or be willing to take an active part in eZ Publish 5 development, like some already did, use the following resources:

 

Known issues

  • When trying to sign-in, through the 5.x stack, you will encounter an issue if you are running PHP 5.4 or above.
  • The final screen of the installation wizard still requires you to enter information to be able to finalize the installation. We will make this an opt-in step, as discussed here.

 

Stats

  • 10 bug-fixes for registered issues
  • 8 pull-requests merged
  • 66 enhancements

See the changelog for details

Upgrade Notes

Upgrading from eZ Publish Community Project 2012.11 to 2012.12

Important information:

  • This is the third "eZ Publish 5" build, that comprises an eZ Publish 4.x build, under the 'ezpublish_legacy' folder, at the root of your eZ Publish 5 installation,
  • The upgrade procedure below must be applied to the latter, then the normal installation procedure for the eZ Publish 5 stack must be followed, 
  • Make sure to follow the Virtual Host based installation procedure in the latter to initiate the setup wizard.

 

This section describes how to upgrade your existing eZ Publish Community Project 2012.11 installation to build 2012.12. Make sure that you have a working backup of the site before you do the actual upgrade, and make sure the installation you are performing the upgrade on is offline.

Important upgrade notes:

The procedure for upgrading from eZ Publish Community Project build 2012.11 to build 2012.12 consists of the following steps:

  • Backing up the website
  • Putting the website offline (optional)
  • Upgrading the distribution files to 2012.12
  • Upgrading custom extensions
  • Regenerate the autoload array for extensions
  • Clearing the caches
  • Putting the website online (optional)

 

Check for requirements

It is recommended to always verify the requirements for the new version of eZ Publish before attempting an upgrade. eZ Publish Community Project 2012.11 is compatible with PHP version 5.3 and above. So is eZ Publish Community Project 2012.12. For more information regarding system requirements check out "Requirements for doing a normal installation".

 

Step 1: Backing up the website

  • Filesystem set: the extension and settings folders, plus any other folder where you have put your custom developments in (e.g. design/mydesign)
  • Content set: the var/storage, var/<vardir>/storage folders, and a dump of the database (nb: for ezdb cluster mode, a dump of the storage database is needed instead of the storage folders; for ezdfs cluster mode both a dump of the storage database and a backup of the shared var folder on nfs)
  • Optional: the complete installation directory of eZ Publish, except for the var directory and for the eZFind index directory. This is mandatory if you have customized the .htaccess or config.php files

Tip: if you have many user sessions, and the session data is stored in the database, it might be a good idea to remove all data from the session table before backing it up
Tip: in ezdb and ezdfs cluster modes, it is a good idea to clear all caches before dumping the storage database, as it is not easy to only backup storage and not caches

 

Step 2: Putting the website offline (optional)

This step is recommended but not mandatory

  • Put the public website offline and set up a courtesy page to prevent end users from accessing the website while you upgrade. This involves generally modifying the webserver configuration. Make sure you have a different vhost available to access the public website using a private IP address or hostname during the upgrade process
  • Disable execution of eZ Publish cronjobs

 

Step 3: Upgrading the distribution files

The easiest way to upgrade the distribution files is to unpack eZ Publish 2012.12 to a separate directory and then copy into it the directories that contain site-specific files from the existing installation. Make sure that you copy the following directories:

  • design/<mydesign>
  • design/<mydesign_admin>
  • var
  • settings/siteaccess
  • settings/override

Replace "mydesign" and "mydesign_admin" with the actual names of your designs.

Important note: Because the new directory has replaced the original directory, the directory permissions need to be fixed. Use the following commands to do this.

(You have the choice between Shell commands or Alternative shell commands):

  • Shell commands

These shell commands will give proper permission to the web server:

cd </path/to/your/eZ/Publish/directory>chmod -R a+rwx design extension settings var 
  • Alternative shell commands

 These commands will setup the permission more correctly, but require knowledge about the user account used for running the web server process.cd </path/to/your/eZ/Publish/directory>

cd </path/to/your/eZ/Publish/directory>chmod -R og+rwx design extension settings varchown -R <webuser>:<webusergroup> design extension settings var 

 

Step 4: Custom extensions

If you are using custom extensions, the sub-directories inside the "extension" directory will also have to be copied. However, make sure that you do not overwrite any extensions that are included in the eZ Publish 2012.12 tarball, which are currently:

Bundled and enabled

  • ezautosave-5.1.0-alpha1
  • ezcomments-5.1.0-alpha1 (ezpublish-5.0.0) 
  • ezformtoken-5.1.0-alpha1
  • ezie-5.1.0-alpha1
  • ezjscore-5.1.0-alpha1
  • ezmultiupload-5.1.0-alpha1
  • ezodf-5.1.0-alpha1 (ezpublish-5.0.0)
  • ezoe-5.1.0-alpha1
  • ezprestapiprovider-5.1.0-alpha1
  • ezstarrating-5.1.0-alpha1 (ezpublish-5.0.0)
  • eztags-1.3.0-dev

Bundled but not enabled

  • ezfind-5.1.0-alpha1
  • ezscriptmonitor-5.1.0-alpha1 (ezpublish-5.0.0)

Optional installation (depending on the package chosen during the installation wizard)

  • ezdemo (ezpublish-5.0.0)
  • ezdemodesign (ezpublish-5.0.0)
  • ezflow (ezpublish-5.0.0)
  • ezgmaplocation (ezpublish-5.0.0)
  • ezstarrating (ezpublish-5.0.0)
  • ezwebin (ezpublish-5.0.0)
  • ezwt (ezpublish-5.0.0)

 

Step 5: Regenerate the autoload array for extensions

To regenerate the autoload array, execute the following script from the root of your eZ Publish installation:

php bin/php/ezpgenerateautoloads.php --extension

 

Step 6: Clearing the caches

Whenever an eZ Publish website is upgraded, all caches must be cleared in a proper way. This should be done from the root directory of your eZ Publish installation:

php bin/php/ezcache.php --clear-all --purge 

Tip : Purging ensures that the caches are physically removed. When the "--purge" parameter is not specified, the caches will be expired but not removed.

Sometimes the script is unable to clear all cache files because of restrictive file/directory permission settings. Make sure that all cache files have been cleared by inspecting the contents of the various cache sub-directories within the "var" directory (typically the "var/cache/" and "var/<name_of_siteaccess>/cache/" directories). If there are any cache files left, you need to remove them manually.

 

Step 7: Putting the website back online

This step is optional, and is only needed if you put the website offline at step 2

  • warm up the template cache by pre-compiling template files. This should be done from the root directory of your eZ Publish installation:
php bin/php/eztc.php --wwwdir=<value> --index-file=<value> 
  • re-enable the cronjobs
  • warm up the content cache: use a tool such as curl or wget that will navigate the website to force eZPublish to generate the view cache for all content
  • change the webserver / firewall configuration to allow public access to your website again
  • Backing up the website
  • Putting the website offline (optional)
  • Upgrading the database
  • Upgrading the distribution files to 2012.12
  • Upgrading custom extensions
  • Regenerate the autoload array for extensions
  • Clearing the caches
  • Putting the website online (optional)

Changelog

Changelog from Community Project 2012.11 to Community Project 2012.12

eZ Publish 5 stack (github.com/ezsystems/ezpublish5)

  • Add --prefer-dist to composer instructions
  • Fix RemotePackagesIndexURL example w/ correct path
  • Update RemotePackagesIndexURL example to use 5.0.0
  • Update composer to get even-log
  • Fixed: typo

 

eZ Publish API (github.com/ezsystems/ezp-next)

Pull requests
  • Merge pull request #204 from crevillo/EZP-20314-2
  • Merge pull request #202 from crevillo/EZP-20314-2
  • Merge pull request #199 from crevillo/EZP-20298
  • Merge pull request #200 from crevillo/EZP-20299

Bugfixes
  • Fixed EZP-20314 - Wrong phpdoc in handle methods of many criterionHandlers. Error also present in CriterionHandler class
  • Fixed EZP-20298 - Confusing phpdoc documentation in UrlAlias Criterion
  • Fixed EZP-20299 - Small typo in phpdoc for ContentTypeId Criterion
  • Fixed EZP-20298 - Confusing phpdoc documentation in UrlAlias Criterion
  • Fix EZP-20281 ezcBaseValueException when executing setup commands

Misc
  • Optimize away unneded use of getFieldDefinition() during content loading
  • Removed: deprecated method
  • Fix boostraping legacy in functional tests, check existence of EZCBASE_ENABLED
  • Fix indentation on .travis.yml git depth param
  • Add --prefer-dist to composer install instruction & in .travis.yml
  • Try to minimize travis failures by temporary reducing env's & size of fetched git history
  • Fix cs in FactoryTest
  • Fix boostrap.php to be able to run unit tests from any folder (using for instance PHPStorm)
  • Tests: Added missing coverage of Persistence\InMemory\Handler methods
  • Added Persistence Factory for use to lazy load persistence
  • PHPDoc: Missing var doc in LegacyStorageEngineFactory
  • Changed: service aliases (cleanup)
  • Merge branch 'integrationtests-limitation'
  • Fixed ObjectStateLimitationTest to use correct default states
  • Rename StateLimitation to ObjectStateLimitation
  • Refactor Limitations to use Persistence instead of Repository
  • Add support for service aliases
  • Fix typo recursivly > recursively
  • Fixed SubtreeLimitation throwing to eagerly on type
  • Merge branch 'master' into integrationtests-limitation
  • Add zetacomponents/event-log dependencie as used by ezcDebug
  • Code style issues fixed.
  • Added: Test for the ParentUserGroupLimitation
  • Duplicate code in test class refactored into separate method.
  • Duplicate code removed from SubtreeLimitationTest
  • Merge remote-tracking branch 'origin/master' into integrationtests-limitation
  • Added: Integration test for the LocationLimitation
  • Superfluous test class removed.
  • Several limitation tests moved into separate test classes
  • SubtreeLimitation test moved into separate test class
  • Refactored: ParentDepthLimitation test moved to separate class.
  • Fixed: Invalid filename for test
  • Refactored: OwnerLimitation test moved to separate class
  • Added: Limitation test directory to PHPUnit config
  • Merge remote-tracking branch 'origin/master' into integrationtests-limitation
  • Added: Integration test for the NewSectionLimitation
  • Integration tests for LanguageLimitation extracted.
  • ParentOwnerLimitationTest moved into separate class
  • Merge remote-tracking branch 'origin/master' into integrationtests-limitation
  • Added: Integration test for the UserGroupLimitation
  • Limitation test restructuring started.
  • Merge remote-tracking branch 'origin/master' into integrationtests-limitation
  • Tested: failing StateLimitation, waiting for feedback
  • Fixed: Wrong usage of SubtreeLimitation
  • Complex test szenario for several limitation types started
  • Fixed: Also execute limitation tests for solr backend.
  • Tested: ParentOwnerLimitation with allow and forbid path
  • Fixed: Use generated IDs instead of hard coded magic numbers.
  • Tested: ParentDepthLimitation and ContentTypeLimitation
  • Tested: LanguageLimitation allow and forbid path
  • Superfluous limitation stuff removed.
  • Tested: OwnerLimitation with forbid and accept path
  • Merge remote-tracking branch 'origin/master' into integrationtests-limitation
  • Use inline delegate method as test fixture.
  • Integration tests added rest phpunit.xml files.
  • Skip limitation tests for in memory stub implementation.
  • Test code simplified.
  • Added: Limitation tests to phpunit.xml.dist
  • Implemented: Keep policy limitations in memory implementation.

 

eZ Publish Legacy Stack (LS) (github.com/ezsystems/ezpublish)

Bugfixes
  • Fix EZP-20224: Impossible to set default selection item on relation attribute
  • Make sure mysqli driver honors persistent connections (and behaves better in master-slave mode when 1st connection fails)
  • Fixed EZP-19684: Search engine doesn't handle curly quotes correctly (part 2)

Enhancements
  • Fixed travis settings to avoid timeout while cloning the repository
  • Update kernel/classes/datatypes/ezxmltext/ezxmloutputhandler.php
  • Fix EZP-20251: Unable to run functional tests if legacy stack is involved
  • Removed class_exists check for Composer CLassLoader

Pull requests
  • 526: from patrickallaert/EZP-19684
  • 530: from gggeek/issue_20245
  • 531: from dpobel/symfony_functional_tests
  • 534: from npanau/patch-1

Tags

eZ Publish 2012