Contribuire al Qt Project
-
Upload
qt-day -
Category
Technology
-
view
415 -
download
0
description
Transcript of Contribuire al Qt Project
![Page 1: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/1.jpg)
How to Contributeto the Qt-Project
http://qt-project.org
![Page 2: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/2.jpg)
Agenda
What is the Qt-Project (qt-project.org)
There're many ways to contribute to Qt!
Join the Qt-Project
Example simple contribution
How to submit a patch with gerrit
What's next? Contributing & Reviewing
![Page 3: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/3.jpg)
What is the Qt-Project
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
Before...
![Page 4: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/4.jpg)
What is the Qt-Project
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
Solutions...
![Page 5: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/5.jpg)
What is the Qt-Project
![Page 6: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/6.jpg)
What is the Qt-Project
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 can't approve your own code)
Approvers
![Page 7: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/7.jpg)
What is the Qt-Project
Maintainers are the people responsible for a particular module, port or component
They must know what's going on They must ensure every contributions is
reviewed They get the privilege of setting direction.
My module is ready for beta cycle?
Maintainers
![Page 8: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/8.jpg)
What is the Qt-Project
The Chief maintainer is a maintainer (of QtBase)
Only one for the entire Qt Project
Final decider in case of no consensus
Chief Maintainer
![Page 9: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/9.jpg)
There're many ways to Contribute
• Demo & Examples
• Wiki Articles
• Keeping wiki pages up-to-date
• Blogs
• Books
• Translations
Documentation
http://developer.qt.nokia.com/wiki/Category:Snippets
http://planetqt.org/
![Page 10: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/10.jpg)
There're many ways to Contribute
• Participate in online discussion on Qt (mailing list/forums)
• Helping newcomers out with the setup
• Join Qt channels on IRC
• Report bugs
• Request new features
Do community work
#qt
#qtlabs
#qtwebkit
#qt-qml#qt-project
#qt-creator
#qt-mobility#qt-components
![Page 11: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/11.jpg)
There're many ways to Contribute
• Fix bugs
• Write tests
• Review Qt Code
• Write Qt code
Write Qt Code
![Page 12: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/12.jpg)
Join the Qt-Project
Go to the http://qt-project.org!
Register an account (valid for gerrit & jira) at:
https://bugreports.qt.nokia.com Gerrit - Code Review
https://codereview.qt-project.org Checkout the source code:
git clone git://gitorious.org/qt/qt.git
![Page 13: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/13.jpg)
Qt-Project Workflow
Continuous Integration System is used for building and testing.
● Fetches reviewed changes● Runs build & test for the changes ● Transfers the changes passed further to the public tip.
![Page 14: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/14.jpg)
Example: A Simple Contribution
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
Playing QPicture from threads
![Page 15: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/15.jpg)
How to submit a patch with gerrit
Clone Repository
Gerrit Commit Hook
Doing changes & commit
http://developer.qt.nokia.com/videos/watch/gerrit_contributing_and_reviewing_a_change
scp -p <username>@codereview.qt-project.org:hooks/commit-msg .git/hooks
git clone ssh://<username>@codereview.qt-project.org/qt/qtbase.git
vim src/foo.ccgit add src/foo.ccgit commit -m “My Change”git push ssh://<username>@codereview.qt-project.org:29418/qt/qtbase HEAD:refs/for/master
![Page 16: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/16.jpg)
Add Approvers
![Page 17: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/17.jpg)
Gerrit Code Review
![Page 18: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/18.jpg)
Code Review
![Page 19: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/19.jpg)
Reviews
![Page 20: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/20.jpg)
Publish & Merge
![Page 21: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/21.jpg)
Contributing & Reviewing
![Page 22: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/22.jpg)
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)
http://qt-project.org
![Page 23: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/23.jpg)
23
Questions?How to ContributeTo the Qt-Project
http://qt-project.org
![Page 24: Contribuire al Qt Project](https://reader035.fdocuments.in/reader035/viewer/2022062405/555ada6ad8b42a62528b4ccc/html5/thumbnails/24.jpg)
THANKS !THANKS !
Contacts
Mail: [email protected]
Phone: +39-055-3984627
Fax: +39 178 6003614
http://www.develer.com
Develer S.r.l.Via Mugellese 1/A
50013 Campi BisenzioFirenze - Italy