ez-publish-community-project-2013-11

eZ Publish Community Project 2013.11

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 2013.11 (9th "eZ Publish 5 build") December. 6th, 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-2013-11

Important Information Before You Start Installing

  • This is the 10th "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 :)

 

Installation

Requirements

Make sure to check the eZ Publish 2013.11 system requirements before proceeding.

Proceeding: One Major Tip

When installing on a linux/UNIX system or Windows-based system, make sure to create a Virtual Host, before starting the installation wizard (this step is highly recommended).

 

Resources

The main entry point of knowledge for you is the eZ Publish 5 Cookbook. 

Don't miss all resources of eZ Unconference #2 (slides & source code):https://github.com/ezunconference  

Check Jérôme's recent blog post about legacy_mode: legacy_mode clarified

Have a look at Nicolas' slides presented at the first stage of the eZ+SensioLabs roadshow in Cologne, presenting eZ Publish 5.

Do not miss Joe Kepley's blog containing loads of great tutorials on eZ Publish 5. Also, read Damien's story of the upgrade of planet-ezpublish.fr to eZ Publish 5. Also, take a look at thistutorial by Granite Horizon, to take a safe start in creating controllers for eZ Publish 2013.05. You may want tell what you would like to see in an eZ Publish 5 tutorial here:  What's Needed in an eZ 5 Tutorial?

 

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:

 

Stats

  • 76 bug-fixes for registered issues
  • 79 pull-requests merged
  • 24 enhancements

See the changelog for details

 

Read The Fine Manual (and please give feedback)

You can find it here: https://confluence.ez.no/display/EZP/eZ+Publish+Documentation, notably the Cookbook for developers. Feedback appreciated on this too!

Upgrade Notes

Upgrading from eZ Publish Community Project 2013.09 to 2013.11

Important Information Before You Start

  • This is the 10th "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.

 

Upgrading from 2013.09 to 2013.11

 

This section describes how to upgrade your existing eZ Publish Community Project 2013.09 installation to build 2013.11. 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 2013.09 to build 2013.11 consists of the following steps:

  • Backing up the website
  • Putting the website offline (optional)
  • Upgrading the database
  • Upgrading the distribution files to 2013.11
  • 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 2013.09 is compatible with PHP version 5.3.3 and above. So is eZ Publish Community Project 2013.11. 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 2013.11 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>cd ezpublish_legacychmod -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>cd ezpublish_legacychmod -R og+rwx design extension settings varchown -R <webuser>:<webusergroup> design extension settings var 

 

Step 4: Upgrading the database

MySQL

Run the following against your MySQL database :

<span>DROP</span> <span>INDEX</span> ezimagefile_co_attr_id_filepath <span>ON</span> ezimagefile;  <span>-- Start EZP-21648:</span><span>-- Adding 'priority' and 'is_hidden' columns to the 'eznode_assignment' table</span><span>ALTER</span> <span>TABLE</span> eznode_assignment <span>ADD</span> <span>COLUMN</span> priority int<span>(</span><span>11</span><span>)</span> <span>NOT</span> <span>NULL</span> <span>DEFAULT</span> <span>'0'</span>;<span>ALTER</span> <span>TABLE</span> eznode_assignment <span>ADD</span> <span>COLUMN</span> is_hidden int<span>(</span><span>11</span><span>)</span> <span>NOT</span> <span>NULL</span> <span>DEFAULT</span> <span>'0'</span>;<span>-- End EZP-21648</span>  <span>SET</span> storage_engine<span>=</span>InnoDB;<span>UPDATE</span> ezsite_data <span>SET</span> value<span>=</span><span>'5.3.0alpha1'</span> <span>WHERE</span> name<span>=</span><span>'ezpublish-version'</span>; <span>ALTER</span> <span>TABLE</span> ezcontentobject_attribute    <span>ADD</span> <span>KEY</span> ezcontentobject_classattr_id <span>(</span>contentclassattribute_id<span>)</span>;

 

Postgresql

Run the following against your Postgresql database :

<span>DROP</span> <span>INDEX</span> ezimagefile_co_attr_id_filepath; <span>-- Start EZP-21648:</span><span>-- Adding 'priority' and 'is_hidden' columns to the 'eznode_assignment' table</span><span>ALTER</span> <span>TABLE</span> eznode_assignment <span>ADD</span> priority integer <span>DEFAULT</span> <span>0</span> <span>NOT</span> <span>NULL</span>;<span>ALTER</span> <span>TABLE</span> eznode_assignment <span>ADD</span> is_hidden integer <span>DEFAULT</span> <span>0</span> <span>NOT</span> <span>NULL</span>;<span>-- End EZP-21648</span>

 

Step 5: 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 2013.11 tarball, which are currently:

Bundled and enabled

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

Bundled but not enabled

  • ezfind-5.2.0-alpha1
  • ezscriptmonitor-5.2.0-alpha1 (ezpublish-5.2.0)

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

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

 

 

 

Step 6: Regenerate the autoload array for extensions

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

cd </path/to/your/eZ/Publish/directory>cd ezpublish_legacyphp bin/php/ezpgenerateautoloads.php --extension

 

Step 7: 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:

cd </path/to/your/eZ/Publish/directory>cd ezpublish_legacyphp 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 8: 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:
cd </path/to/your/eZ/Publish/directory>cd ezpublish_legacyphp 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 2013.11
  • Upgrading custom extensions
  • Regenerate the autoload array for extensions
  • Clearing the caches
  • Putting the website online (optional)

Changelog

Changelog from Community Project 2013.09 to Community Project 2013.11

Bugfixes

eZ Publish Kernel & APIs
  • EZP-21633: [Behat] Error when connecting to DB

eZ Publish Legacy Stack (LS)
  • EZP-19077: ezjscore fatal error encoding object w/out a node
  • EZP-20813: Added NFS mount checks in dfscleanup.php
  • EZP-21324: Images for original object lost when editing copies"
  • EZP-21563: Fatal error in eZContentUpload if no node
  • EZP-21585: ORA-12899 when creating content in japanese
  • EZP-21588: error in copy with split dfs tables
  • EZP-21619: Updated INI doc for redirectAfterPublish feature
  • EZP-21648: added priority and is_hidden columns to eznode_assignment table
  • EZP-21656: PSpell plugin fails with eZFormToken
  • EZP-21685: Selection attribute fail in ContentStaging with value Zero
  • EZP-21731: Some parts of eZ Publish use a loose test for checking for SSL
  • EZP-21735: fixed using non existent variable
  • EZP-21740: Added DFS cluster DB update script
  • EZP-21758: Custom variables are not correctly exposed in legacy templates when doing a sub-request
  • EZP-21773: Set reference to false if setting is empty
  • EZP-21807: link is duplicated on table row insertion
  • EZP-21818: : fix translation starting with new line
  • EZP-21883: Regression from ezp-21357 with images with utf-8 names
  • EZP-21903: Copy & paste with chrome insert non break space
  • EZP-21913: Fixed globals for scripts:
  • EZP-21914: reset ezcDb link from ezasynchronouspublishing.php
  • EZP-21919: editing workflows concurrently in 2 browser windows makes them disappear
  • EZP-21929: eZOE searchreplace plugin interface is broken

eZ Publish 5
  • EZP-20505: Catch exception on invalid binary in FieldTypes
  • EZP-21032: documented is_logged_in for REST sessions
  • EZP-21344: error in create view REST spec example
  • EZP-21438: Improve permission handling to use view_embed
  • EZP-21548: Clear role assignments cache when dealing with locations
  • EZP-21591: Fixed wrong variable name
  • EZP-21628: Symfony routes overriding URLAliases in admin
  • EZP-21636: Hinclude sub-requests are broken since EZP-21631 fix
  • EZP-21648: added priority and is_hidden columns to eznode_assignment table
  • EZP-21668: content.tree_root.location_id default value should not be null
  • EZP-21674: implement Status Limitation
  • EZP-21684: Bug when creating forward url alias
  • EZP-21695: Cached ESI can not be shared among pages
  • EZP-21696: new SubtreeLimitation fails w/ InvalidArgumentException Fixed the same bug in tests
  • EZP-21700: add language code to SortClause FieldTarget
  • EZP-21703: added validation of role limitations
  • EZP-21705: Wrong links generated when using Map\Host siteaccess matching
  • EZP-21722: Error with the ez_render_field if a custom tag xsl stylesheet is not properly loaded
  • EZP-21734: apply sorting to prevent random test failures
  • EZP-21741: Persistence cache not cleared on transaction rollback
  • EZP-21747: Translated name should be accessible from ContentInfo
  • EZP-21771: Add unit test
  • EZP-21776: fix Criterion value not bound
  • EZP-21780: Map\URI siteaccess matcher is greedy
  • EZP-21786: Using Page fieldtype, valid block items should be passed to the block templates
  • EZP-21804: create untranslatable field copy from translation value
  • EZP-21834: allow overriding/extending ezpublish.siteaccess.match in yml files.
  • EZP-21840: unwanted "shebang" line running ezpublish:legacy:script
  • EZP-21845: Trashed locations still in persistence cache & accessible in API
  • EZP-21853: Custom HTTP headers create duplicate values
  • EZP-21854: Default ezgmaplocation_field template defines a wrong height
  • EZP-21861: fixed leading slash when creating under root node
  • EZP-21870: : wrong CriterionLogicalAnd instanciation
  • EZP-21873: Unable to use ez_render_field with ezgmaplocation_field
  • EZP-21874: test limitation on draft Content as well
  • EZP-21876: Compound matcher throws fatal error after patch from EZP-21834
  • EZP-21904: handle deletion of Content with last Location
  • EZP-21914: Added set/getDbHandler to Legacy\EzcDbHandler
  • EZP-21916: basic auth in http cache purge_servers
  • EZP-21920: do not raise exception on loadRelations
  • EZP-21933: [SensioLabsInsight] Unused method, property, variable or parameter
  • EZP-21934: [SensioLabsInsight] Boolean property should not be prefixed by "is"
  • EZP-21940: delete location doesn't fully expire stash cache
  • EZP-21949: Added coverage for AddFIeldTypePass
  • EZP-21955: Access to restricted content results in error 500
  • EZP-21958: Added coverage for Common config parser
  • EZP-21967: Fixed Country\Type::getName()
  • EZP-21968: Binary field types getName() should always return a string
  • EZP-21970: reset array before calling key()
  • EZP-21971: return first alias if using showAllTranslations
  • EZP-21989: Removed useless @covers annotations
  • EZP-21997: fix tests

Enhancements

eZ Publish Kernel & APIs
  • EZP-21526: Added commentsBundle to dependencies
  • EZP-21723: As a developer, I want to use PagerFanta to do my pagination

eZ Publish Legacy Stack (LS)
  • EZP-16144: Implement '--quiet' option in ezpgenerateautoloads.php script
  • EZP-20816: Added new index on ezcontentobject_attribute
  • EZP-21844: Added split DFS cleanup script

eZ Publish 5
  • EZP-20816: Added new index on ezcontentobject_attribute
  • EZP-21326: Remove Status Criterion as it is irrelevant
  • EZP-21531: Twig ContentExtension, s/getContentNameTranslated/getTranslatedContentName
  • EZP-21640: Implement RelationList search criterion
  • EZP-21676: As a developer, I want to access a field value in the current locale in a Twig template
  • EZP-21677: As a developer, I want to always have access to root location
  • EZP-21680: As a developer, I want to easily check if a Field is empty
  • EZP-21701: ez_render_field should be able to use current template as parameter
  • EZP-21706: removed REST spec generated HTML
  • EZP-21719: implemented Depth criterion
  • EZP-21723: As a developer, I want to use PagerFanta to do my pagination
  • EZP-21733: implemented LimitationValidationException
  • EZP-21793: add matchAlwaysAvailable to LanguageCode Criterion
  • EZP-21865: Add showInfo parameter for ezgmaplocation field type base template
  • EZP-21910: set default Content states when copying subtree
  • EZP-21924: [SensioLabsInsight] Refactor LegacyKernelController to be less than 20 lines
  • EZP-21928: [SensioLabsInsight] Unused use statement should be avoided
  • EZP-21961: Added tests to FieldType\Author
  • EZP-21964: complete test coverage

Pull requests

eZ Publish Kernel & APIs
  • 77: from MLoureiro
  • 84: from ezsystems

eZ Publish Legacy Stack (LS)
  • 759: from jeromegamez
  • 771: from ezsystems
  • 772: from ezsystems
  • 777: from ezsystems
  • 778: from ezsystems
  • 780: from ezsystems
  • 786: from guillaumelecerf
  • 791: from jeromegamez
  • 806: from tharkun
  • 807: from guillaumelecerf
  • 815: from ezsystems
  • 817: from pedroresende
  • 818: from joaoinacio
  • 820: from ezsystems
  • 824: from ezsystems
  • 825: from ezsystems
  • 831: from ezsystems
  • 832: from ezsystems
  • 833: from gggeek

eZ Publish 5
  • 473: from ezsystems
  • 483: from MLoureiro
  • 490: from joaoinacio
  • 520: from ezsystems
  • 536: from ezsystems
  • 537: from ezsystems
  • 538: from ezsystems
  • 542: from ezsystems
  • 543: from ezsystems
  • 546: from ezsystems
  • 547: from taenadil
  • 548: from ezsystems
  • 550: from ezsystems
  • 551: from ezsystems
  • 552: from ezsystems
  • 553: from ezsystems
  • 556: from ezsystems
  • 561: from ezsystems
  • 562: from ezsystems
  • 565: from ezsystems
  • 567: from ezsystems
  • 568: from ezsystems
  • 569: from ezsystems
  • 572: from ezsystems
  • 576: from joaoinacio
  • 577: from ezsystems
  • 578: from joaoinacio
  • 579: from ezsystems
  • 581: from paradoxe
  • 582: from lserwatka
  • 583: from ezsystems
  • 584: from ezsystems
  • 585: from lserwatka
  • 590: from pedroresende
  • 591: from ezsystems
  • 592: from ezsystems
  • 595: from ezsystems
  • 596: from ezsystems
  • 599: from joaoinacio
  • 600: from MLoureiro
  • 602: from ezsystems
  • 603: from MLoureiro
  • 605: from ezsystems
  • 608: from ezsystems
  • 610: from ezsystems
  • 612: from ezsystems
  • 616: from joaoinacio
  • 617: from ezsystems
  • 618: from joaoinacio
  • 621: from ezsystems
  • 622: from MLoureiro
  • 623: from pborreli
  • 624: from ezsystems
  • 627: from ezsystems
  • 628: from ezsystems
  • 629: from ezsystems
  • 634: from emodric
  • 635: from ezsystems

Miscellaneous

eZ Publish Kernel & APIs
  • Update composer to 5.3

eZ Publish Legacy Stack (LS)
  • Updated translations
  • Revert "Fixed YUI 3.12.0"
  • Fix eZURLWildcard: wildcardsIndex is never cached

eZ Publish 5
  • Update composer.json
  • Fix SensioLabsInsight 'Version of dependencies should be fixed'
  • Fix SensioLabsInsight violation: removed remaining commented code
  • Fix SensioLabsInsight major: Commented code should not be commited
  • Fix SensioLabsInsight use statement errors (static analysis)
  • Fix SensioLabsInsight critical issue on unused code..
  • Implement CriterionVisitor\UserMetadataIn for Solr
  • Make sure that string search is case insensitive in Solr
  • Change SetupFactory/LegacySolr db indexing to batch update and commit at the end
  • Change SetupFactory/LegacySolr to use CachedPersistence for lookups

Tags

eZ Publish 2013
Powered by eZ Publish™ CMS Open Source Web Content Management. Copyright © 1999-2014 eZ Systems AS (except where otherwise noted). All rights reserved.