Contributions to the eZ Publish code base via GitHub
The open source content management system eZ Publish moved its code repository to GitHub near the end of 2010. Although eZ Publish's code base has been open source since its first version in 1999, before the move to GitHub, it was not an easy process for the community to contribute to the code. Mugo Web has enjoyed contributing to the eZ Publish code by making pull requests and hopes to make more in the future!
A big reason to contribute code to eZ Publish and its extensions is to be an active and engaged community member. However, we also give back in order to ensure that our favourite fixes and feature additions end up in future versions. Kernel hacks are an almost absolute last resort when you are working with a public content management system, and they add an ongoing cost to the client and developer as other parts of code are periodically updated. Also, even if you might document your code changes well, you are bound to inherit code where documentation is sparse or non-existent. If your custom hacks and code end up in future versions of the software, you can focus your efforts on building out successful websites for your clients!
Opening up the code base to outside contributors also means that we can benefit from all of the experience and lessons from all of us who implement eZ Publish every day. This naturally helps eZ Publish become better and better. We have already seen many highly useful fixes and additions to eZ Publish that have come from the community.
Using GitHub and making pull requests can be easy and fun. eZ Systems' community manager Nicolas Pastorino has written a comprehensive article on how to use Git with respect to the eZ Publish repositories. Your pull request can be as simple as a documentation tweak or as large as completely new functionality. (We are far from being the most active contributors, but as you'll see below, the pull requests we've done cover the range of those cases!)
Here is a summary of the merged pull requests that Mugo Web has made over the past year:
- eZ Publish: Support custom static cache handlers
- eZ Publish: Allow the ezuser datatype fromString method to be used for updates
- eZ Flow: Support user-friendly names for custom attributes
- eZ Flow: Inline INI documentation about custom attribute types
- eZ Flow: Additions to custom attributes: allow them even on manual blocks; and support a "select" type
- Online Editor: Bug fix: lookup of node and object IDs in link properties dialog
- Online Editor: Bug fix: Table row class or custom attributes won't save
- eZ Find: Bug fix: indexing fails when there is an object relation or object relations attribute that contains a trashed object
- eZ Find: Add a new installation ID parameter to moreLikeThis queries, to avoid unpredictable results from other installs