Contribuire al Qt Project


Published on

Grazie al nuovo Qt Project, è possibile finalmente contribuire in modo semplice bugfix, nuove feature, nuovi moduli e diventare persino maintainer! Scopri come funziona il nuovo processo di sviluppo

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Contribuire al Qt Project

  1. 1. How to Contribute to the Qt-Project
  2. 2. Agenda What is the Qt-Project ( Therere many ways to contribute to Qt! Join the Qt-Project Example simple contribution How to submit a patch with gerrit Whats next? Contributing & Reviewing
  3. 3. What is the Qt-Project Before... Process differed if you were a Nokia employee or not Non-employees had to use Gitorious Merge Request System. Non-Nokia developers saw the process as: 1) Upload to Gitorious 2) Create Merge Request 3) While (1) {} Only Nokia engineers could approve changes
  4. 4. What is the Qt-Project Solutions... Same workflow for everyone Powerful code review tool Mailing list with all relevant developers No Nokia legal scans in the Qt Project QA results available to all
  5. 5. What is the Qt-Project
  6. 6. What is the Qt-Project Approvers Approvers are contributors who can:  Approve contributions.  Reject contributions. Decisions guided by Spirit and Technical fit.  Is it the Qt Way?  Have I run the test?  Have I done the right thing? Peer-Review is enforced (you cant approve your own code)
  7. 7. What is the Qt-Project Maintainers Maintainers are the people responsible for a particular module, port or component  They must know whats going on  They must ensure every contributions is reviewed  They get the privilege of setting direction. My module is ready for beta cycle?
  8. 8. What is the Qt-Project Chief Maintainer The Chief maintainer is a maintainer (of QtBase) Only one for the entire Qt Project Final decider in case of no consensus
  9. 9. Therere many ways to Contribute Documentation• Demo & Examples• Wiki Articles• Keeping wiki pages up-to-date• Blogs• Books• Translations
  10. 10. Therere many ways to Contribute Do community work• Report bugs• Request new features • Participate on online discussion in Qt (mailing list/forums) #qt #qtwebkit • Helping newcomers #qt-components #qt-mobility out with the setup #qtlabs #qt-creator • Join Qt channels on #qt-project #qt-qml IRC
  11. 11. Therere many ways to Contribute Write Qt Code • Fix bugs • Write tests • Review Qt Code • Write Qt code
  12. 12. Join the Qt-Project Go to the! Register an account (valid for gerrit & jira) at:  Gerrit - Code Review  Checkout the source code:  git clone git://
  13. 13. Qt-Project WorkflowContinuous Integration Systemis used for building and testing.● Fetches reviewed changes● Runs build & test for the changes● Transfers the changes passed further to the public tip.
  14. 14. Example: A Simple Contribution Playing QPicture from threads QPicture internally uses a QBuffer d->pictb  This buffer is used for read during play().  This causes problems during concurrent access to QPicture play(). Replace QBuffer of Private class with QbyteArray In this way we can call play() concurrently
  15. 15. How to submit a patch with gerrit Clone Repository git clone ssh://<username> Gerrit Commit Hook scp -p <username> .git/hooks Doing changes & commit vim src/ git add src/ git commit -m “My Change” git push ssh://<username> /qt/qtbase HEAD:refs/for/master
  16. 16. Add Approvers
  17. 17. Gerrit Code Review
  18. 18. Code Review
  19. 19. Reviews
  20. 20. Publish & Merge
  21. 21. Contributing & Reviewing
  22. 22. Contribute! Documentation (Blogs, Wiki, Examples) Do community work(Bug Report, Participate in mailing list/forums) Write Qt Code (Fix Bugs, Write tests, Write Qt, Review)
  23. 23. Questions? How to Contribute To the Qt-Project 23
  24. 24. THANKS ! Develer S.r.l. Via Mugellese 1/A 50013 Campi Bisenzio Firenze - ItalyContactsMail: info@develer.comPhone: +39-055-3984627Fax: +39 178 6003614