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
2. 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
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. 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
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 can't approve your own
code)
7. What is the Qt-Project
Maintainers
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?
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. There're many ways to Contribute
Documentation
• Demo & Examples
• Wiki Articles
• Keeping wiki pages up-to-date
• Blogs http://developer.qt.nokia.com/wiki/Category:Snippets
• Books
• Translations http://planetqt.org/
10. There're 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
12. 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
13. 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.
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. How to submit a patch with gerrit
http://developer.qt.nokia.com/videos/watch/gerrit_contributing_and_reviewing_a_change
Clone Repository
git clone ssh://<username>@codereview.qt-project.org/qt/qtbase.git
Gerrit Commit Hook
scp -p <username>@codereview.qt-project.org:hooks/commit-msg .git/hooks
Doing changes & commit
vim src/foo.cc
git add src/foo.cc
git commit -m “My Change”
git push ssh://<username>@codereview.qt-project.org:29418 /qt/qtbase HEAD:refs/for/master