contribuire al qt project
DESCRIPTION
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 sviluppoTRANSCRIPT
How to Contributeto the Qt-Project
http://qt-project.org
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
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...
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...
What is the Qt-Project
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
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
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
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/
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
There're many ways to Contribute
• Fix bugs
• Write tests
• Review Qt Code
• Write Qt code
Write Qt Code
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
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.
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
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
Add Approvers
Gerrit Code Review
Code Review
Reviews
Publish & Merge
Contributing & Reviewing
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
23
Questions?How to ContributeTo the Qt-Project
http://qt-project.org
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