By Tobias Schlitt, first published at Mon, 07 Mar 2011 10:37:04 +0100
In case you missed it, what was formally known as eZ Components is now Apache Zeta Components since some time. The story behind has already been written down somewhere else, so I skip it here. This article shall instead show you how to get on board with an amazingly cool open source project and what it gains you.
To give a short background: Apache Zeta Components is a high-quality library of loosely coupled components PHP 5 application development. The goal of the project is to provide top notch code and APIs to make your daily development life easier.
The library contains a huge lot of useful components, to just give a few examples: Our Mail component, which does not only allow you to send complex mails (attachments, HTML/text alternatives, etc.), but also to receive and parse mails easily from IMAP or POP. The Zeta Webdav component gives you a full featured WebDAV server to be flexibly integrated in your own application. Our Graph component allows yout to visualize statistical data easily in bar charts, line charts, pie charts and more. You can find a list of all our components in the documentation.
Contributing to an open source project is possible in many different ways, depending on the amount of time you want to spend, your interest and skill set. But how to get started and join the community at all?
The most simple way of a contribution are bug reports and feature requests. If your using any of the Zeta components and found something disturbing, please let the project know: We have an issue tracker, where you can explain what goes wrong or what you would expect the component to do for you. Don't be shy, a library project needs to know desperately what you expect it to do! The same applies to the documentation. Did you find something wrongly documented? Do you use a feature what you think is not documented sufficiently? Come on, file an issue!
One step further goes the participation on the developer mailing list. If you are interested in good object oriented software design, in how a new feature or component should be realized and in making things flexible, modular and re-usable, here you will find discussions on all of these topics! Participating in our development list can also get your own skills much further. There is so much to learn from discussing with other developers.
Subscribing to the list is easy: Just send an empty email to email@example.com.
Don't have time to look into the code? Qafoo experts will happily help you fixing bugs and implementing new features!
Contributing patches takes you one step further. The code in Zeta is no rocket science. In fact, it has been built with maintainability and documentation as its primary goals! Therefore, digging into it should not only be easy, but also fun. But if you struggle: The developer mailing list is there to help you finding your way! No matter if you want to fix a bug which disturbs you, implement a feature you need or just want to become familiar with the code by fixing open issues from the issue tracker: Feel welcome and just get started!
If you write a patch, be sure to make it against the latest development version from the Zeta SVN trunk. Our test suites in there help you to ensure that you do not break something unintentionally. Writing unit tests for your bug fix or feature also helps you to train your testing skills! Never worry to ask the other contributors when you are stuck with something.
The top tier of contributing is your own brand new component. We have documented our development process quite well to help you get into that. Do you have a cool module lying around that you think is valuable for others? Are you just getting started writing some code that would make a useful and flexible component? Just go ahead and discuss it with the other devs. You'll receive valuable feedback to ensure a proper design and see what other developers would expect. Get on board and become a proud committer to the Apache Zeta Components project, once your component is designed and accepted.
You might ask why the hell you should contribute to an open source project at all and why especially to Zeta Components? So, let me examine some of the benefits you personally gain from that.
Participating in an open source project is important training for your skills. No matter if you are a beginning programmer, an advanced geek or a professional software engineer: You need training to enhance your skills and stay on the cutting edge of development business.
Following and taking part in the discussions on the development mailinglist of a FLOSS project is the perfect training. There you find like-minded people to exchange opinions with. Look behind your own horizon, which might be set by your co-workers, and see how other people do stuff. Deepen your knowledge by explaining your personal solution to others. Find sparing partners for interesting technology discussions.
Want to train your object orientation skills? Qafoo experts you with an individual in-house training for your development crew!
Looking at and contributing to other peoples code is another important training aspect. See how other people solve certain problems and learn about solutions you might not have thought about before.
The Zeta Components project is especially suited for training purposes. We do consequent and top notch object oriented design and programming. The code we produce is modular, flexible, re-usable and maintainable. We use test driven development to ensure highest code quality. Our unit and integration test suites are extensive and help us to maintain backwards compatibility over years.
So, did I just list something you are not familiar with, yet, or where you might think you can learn something? Come and join us!
Another important aspect is the social level of open source projects. Working together on code brings people together. Finding friends in a FLOSS project is easy! Get to know like-minded people who share a common interest with you: Coding! It is fun to work together and to pull together.
Finally, contributing to FLOSS projects gains you fame that helps you multiple ways: Training your skills and having a proof for that can help you to convince your boss to make you climb the career ladder faster.
Are you looking for new job opportunities? The majority of companies who do PHP prefer people engaged! Show recruiters and project managers your skill by giving them a hint on your open source code. In fact, those people will come to you instead, if you produce enough good code which is publicly available.
And of course, the appreciation of other FLOSS developers strengthens your ego!