Wednesday, December 16, 2009

My first contribution to Qt

And it finally happened! I've just sent my first code contribution to the Qt open repository. Now I'm waiting for them to approve (or eventually reject, you never know) my submission which is based on the code I presented in a previous blog.

Basically, it's an extension of the calculator example (in folder examples/widgets/calculator) to accept input by means of keyboard, so you can actually key in the math operations without the need to use the mouse. And then I added a key driven test under the qtestlib example (in new folder examples/qtestlib/tescalc) to test that new feature about keyboard input for the calculator.

I mostly followed these instructions. The whole process was smooth (I know, my contribution was based on a small change and some new files. Perhaps with a more complex feature to contribute it would take just more time being carefull about what you end up modifying and/or adding). In a brief, this is what I did:
  • cloned Qt's repository to get the source code
  • set up the git environment (user name and e-mail)
  • created a new branch to work in
  • modified existing files and added new folders/files
  • built Qt and tested (a lot) my changes
  • obtained updates from master repository
  • updated my branch with the recently downloaded, new changes
  • created a personal clone of Qt on Gitorious
  • pushed my branch to this repository
  • created merge requests for inclusion of my commit(s) into other projects
that's all from the technical point of view. But you're not done yet. Please don't forget the legal issues. The last step includes to review and agree to Nokia's contribution agreement.

So the next steps are on Nokia's side: a team of Qt developers from the company will review my merge request. If my contribution is OK with the technical requirements, my code will be subjected to a code scan with their legal team (and that takes approximately two weeks). In the event the the scan is successful, they will include the changes and my code will appear in the Qt repository. That's all folks!

Being a long time user of Qt, I was always dreaming about what would it be to write Qt code myself (not to write code using Qt, which I've been doing a lot so far). Those days the only way to do that was becoming a Troll (a Trolltech employee), but now that changed thanks to the good idea of Nokia about opening the Qt source code repository and to accept contributions from around the world. If you have a good idea (and implementation) to improve Qt, I encourage you to follow the steps I described and contribute it to Qt. We all will benefit from that, for sure.

No comments:

Post a Comment