contribuire al qt project

24
How to Contribute to the Qt-Project http://qt-project.org

Upload: qt-day

Post on 19-May-2015

414 views

Category:

Technology


0 download

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 sviluppo

TRANSCRIPT

Page 1: Contribuire al Qt Project

How to Contributeto the Qt-Project

http://qt-project.org

Page 2: Contribuire al Qt Project

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

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

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

What is the Qt-Project

Page 6: Contribuire al 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

Page 7: Contribuire al Qt Project

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

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

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

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

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

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

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

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

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

Add Approvers

Page 17: Contribuire al Qt Project

Gerrit Code Review

Page 18: Contribuire al Qt Project

Code Review

Page 19: Contribuire al Qt Project

Reviews

Page 20: Contribuire al Qt Project

Publish & Merge

Page 21: Contribuire al Qt Project

Contributing & Reviewing

Page 22: Contribuire al Qt Project

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

23

Questions?How to ContributeTo the Qt-Project

http://qt-project.org

Page 24: Contribuire al Qt Project

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