SlideShare a Scribd company logo
How to Contribute
 to 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
                                            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
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
What is the Qt-Project
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)
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?
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
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/
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
There're many ways to Contribute
                    Write Qt Code




                   • Fix bugs
                   • Write tests
                   • Review 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
              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
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
Add Approvers
Gerrit Code Review
Code Review
Reviews
Publish & Merge
Contributing & Reviewing
Contribute!
               http://qt-project.org


              Documentation
           (Blogs, Wiki, Examples)


           Do community work
(Bug Report, Participate in mailing list/forums)

               Write Qt Code
   (Fix Bugs, Write tests, Write Qt, Review)
Questions?
 How to Contribute
 To the Qt-Project
  http://qt-project.org




                          23
THANKS !
                                Develer S.r.l.
                             Via Mugellese 1/A
                         50013 Campi Bisenzio
                                 Firenze - Italy




Contacts
Mail: info@develer.com
Phone: +39-055-3984627
Fax: +39 178 6003614
http://www.develer.com

More Related Content

What's hot

Preventing Supply Chain Attacks on Open Source Software
Preventing Supply Chain Attacks on Open Source SoftwarePreventing Supply Chain Attacks on Open Source Software
Preventing Supply Chain Attacks on Open Source Software
All Things Open
 

What's hot (20)

Development with Qt for Windows CE
Development with Qt for Windows CEDevelopment with Qt for Windows CE
Development with Qt for Windows CE
 
Preventing Supply Chain Attacks on Open Source Software
Preventing Supply Chain Attacks on Open Source SoftwarePreventing Supply Chain Attacks on Open Source Software
Preventing Supply Chain Attacks on Open Source Software
 
Gerrit & Jenkins Workflow: An Integrated CI Demonstration
Gerrit & Jenkins Workflow: An Integrated CI DemonstrationGerrit & Jenkins Workflow: An Integrated CI Demonstration
Gerrit & Jenkins Workflow: An Integrated CI Demonstration
 
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
 
[Public] gerrit concepts and workflows
[Public] gerrit   concepts and workflows[Public] gerrit   concepts and workflows
[Public] gerrit concepts and workflows
 
Knowit study group örnsköldsvik - introduction to qt & qt creator
Knowit   study group örnsköldsvik - introduction to qt & qt creatorKnowit   study group örnsköldsvik - introduction to qt & qt creator
Knowit study group örnsköldsvik - introduction to qt & qt creator
 
Qt Creator, l'arma segreta!
Qt Creator, l'arma segreta!Qt Creator, l'arma segreta!
Qt Creator, l'arma segreta!
 
Introducing GitLab
Introducing GitLabIntroducing GitLab
Introducing GitLab
 
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery AnalyticsDevoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
 
Continuous Delivery at Snyk
Continuous Delivery at SnykContinuous Delivery at Snyk
Continuous Delivery at Snyk
 
Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...
Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...
Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...
 
Introduction to Qt Creator
Introduction to Qt CreatorIntroduction to Qt Creator
Introduction to Qt Creator
 
Zero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeZero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review Upgrade
 
How to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineHow to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipeline
 
Using GIT for Everyone
Using GIT for EveryoneUsing GIT for Everyone
Using GIT for Everyone
 
了解 Qt
了解 Qt了解 Qt
了解 Qt
 
Qt 5 - C++ and Widgets
Qt 5 - C++ and WidgetsQt 5 - C++ and Widgets
Qt 5 - C++ and Widgets
 
Gitlab CI/CD
Gitlab CI/CDGitlab CI/CD
Gitlab CI/CD
 
Responsibilities of gluster_maintainers
Responsibilities of gluster_maintainersResponsibilities of gluster_maintainers
Responsibilities of gluster_maintainers
 
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
 

Viewers also liked

Enea Freescale Webinar 12 Sep 2012 - Version 5-SDT
Enea Freescale Webinar 12 Sep 2012 - Version 5-SDTEnea Freescale Webinar 12 Sep 2012 - Version 5-SDT
Enea Freescale Webinar 12 Sep 2012 - Version 5-SDT
Michael Christofferson
 
Track d more performance less power - freescale final
Track d   more performance less power  - freescale finalTrack d   more performance less power  - freescale final
Track d more performance less power - freescale final
chiportal
 

Viewers also liked (20)

EBV e Freescale: cosa possono fare per lo sviluppo delle vostre applicazioni ...
EBV e Freescale: cosa possono fare per lo sviluppo delle vostre applicazioni ...EBV e Freescale: cosa possono fare per lo sviluppo delle vostre applicazioni ...
EBV e Freescale: cosa possono fare per lo sviluppo delle vostre applicazioni ...
 
Internazionalizza le tue applicazioni
Internazionalizza le tue applicazioniInternazionalizza le tue applicazioni
Internazionalizza le tue applicazioni
 
Develer offering for Qt
Develer offering for QtDeveler offering for Qt
Develer offering for Qt
 
Qtday Introduzione a qt quick
Qtday  Introduzione a qt quickQtday  Introduzione a qt quick
Qtday Introduzione a qt quick
 
Welcome - Introduzione - Burkhard Stubert
Welcome - Introduzione - Burkhard StubertWelcome - Introduzione - Burkhard Stubert
Welcome - Introduzione - Burkhard Stubert
 
Qt Platform Abstraction
Qt Platform AbstractionQt Platform Abstraction
Qt Platform Abstraction
 
Qt Concurrent
Qt ConcurrentQt Concurrent
Qt Concurrent
 
Qt Networking avanzato
Qt Networking avanzatoQt Networking avanzato
Qt Networking avanzato
 
One Version of the Truth, Driving S&OP from detailed planning tools, Freescale
One Version of the Truth, Driving S&OP from detailed planning tools, FreescaleOne Version of the Truth, Driving S&OP from detailed planning tools, Freescale
One Version of the Truth, Driving S&OP from detailed planning tools, Freescale
 
Licensing 2013 v1.0
Licensing 2013   v1.0Licensing 2013   v1.0
Licensing 2013 v1.0
 
Enea Freescale Webinar 12 Sep 2012 - Version 5-SDT
Enea Freescale Webinar 12 Sep 2012 - Version 5-SDTEnea Freescale Webinar 12 Sep 2012 - Version 5-SDT
Enea Freescale Webinar 12 Sep 2012 - Version 5-SDT
 
U.S. Air Force
U.S. Air Force U.S. Air Force
U.S. Air Force
 
l'internet des objets By Freescale
l'internet des objets By Freescalel'internet des objets By Freescale
l'internet des objets By Freescale
 
Re usable continuous-time analog sva assertions - slides
Re usable continuous-time analog sva assertions - slidesRe usable continuous-time analog sva assertions - slides
Re usable continuous-time analog sva assertions - slides
 
Home automation con BTicino MyHome
Home automation con BTicino MyHomeHome automation con BTicino MyHome
Home automation con BTicino MyHome
 
DARPA FALCON PROJECT
DARPA FALCON PROJECTDARPA FALCON PROJECT
DARPA FALCON PROJECT
 
Freescale Semiconductor ASUG Annual Conference slides 2015 on SAP Screen Pers...
Freescale Semiconductor ASUG Annual Conference slides 2015 on SAP Screen Pers...Freescale Semiconductor ASUG Annual Conference slides 2015 on SAP Screen Pers...
Freescale Semiconductor ASUG Annual Conference slides 2015 on SAP Screen Pers...
 
Track d more performance less power - freescale final
Track d   more performance less power  - freescale finalTrack d   more performance less power  - freescale final
Track d more performance less power - freescale final
 
Enterprise UX: What, How & Why in 20 short minutes
Enterprise UX: What, How & Why in 20 short minutesEnterprise UX: What, How & Why in 20 short minutes
Enterprise UX: What, How & Why in 20 short minutes
 
Virtualization in Automotive Embedded Systems: an Outlook
Virtualization in Automotive Embedded Systems: an OutlookVirtualization in Automotive Embedded Systems: an Outlook
Virtualization in Automotive Embedded Systems: an Outlook
 

Similar to Contribuire al Qt Project

Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
OpenCity Community
 

Similar to Contribuire al Qt Project (20)

Qt for beginners part 1 overview and key concepts
Qt for beginners part 1   overview and key conceptsQt for beginners part 1   overview and key concepts
Qt for beginners part 1 overview and key concepts
 
Treinamento Qt básico - aula I
Treinamento Qt básico - aula ITreinamento Qt básico - aula I
Treinamento Qt básico - aula I
 
Qt for Python
Qt for PythonQt for Python
Qt for Python
 
Meet Qt
Meet QtMeet Qt
Meet Qt
 
MQTT and SensorThings API MQTT Extension
MQTT and SensorThings API MQTT ExtensionMQTT and SensorThings API MQTT Extension
MQTT and SensorThings API MQTT Extension
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
 
Success Story and Future Challenges of Applying Qt for Embedded Linux
Success Story and Future Challenges of Applying Qt for Embedded LinuxSuccess Story and Future Challenges of Applying Qt for Embedded Linux
Success Story and Future Challenges of Applying Qt for Embedded Linux
 
KubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdfKubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdf
 
GitHub Event.pptx
GitHub Event.pptxGitHub Event.pptx
GitHub Event.pptx
 
So I downloaded Qt, Now What?
So I downloaded Qt, Now What?So I downloaded Qt, Now What?
So I downloaded Qt, Now What?
 
So I Downloaded Qt, Now What?
So I Downloaded Qt, Now What?So I Downloaded Qt, Now What?
So I Downloaded Qt, Now What?
 
Git SVN Migrate Reasons
Git SVN Migrate ReasonsGit SVN Migrate Reasons
Git SVN Migrate Reasons
 
Qt Automotive Suite - under the hood // Qt World Summit 2017
Qt Automotive Suite - under the hood // Qt World Summit 2017Qt Automotive Suite - under the hood // Qt World Summit 2017
Qt Automotive Suite - under the hood // Qt World Summit 2017
 
Qt Developer Days 2009 Keynote - Qt Everywhere
Qt Developer Days 2009 Keynote - Qt EverywhereQt Developer Days 2009 Keynote - Qt Everywhere
Qt Developer Days 2009 Keynote - Qt Everywhere
 
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)
 
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWebinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
 
Gitting better
Gitting betterGitting better
Gitting better
 
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
 
Giddy Up on GitHub
Giddy Up on GitHubGiddy Up on GitHub
Giddy Up on GitHub
 

Recently uploaded

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 

Recently uploaded (20)

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 

Contribuire al Qt Project

  • 1. How to Contribute to the Qt-Project http://qt-project.org
  • 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
  • 5. What is the Qt-Project
  • 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
  • 11. There're many ways to Contribute Write Qt Code • Fix bugs • Write tests • Review Qt Code • Write Qt code
  • 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
  • 22. Contribute! http://qt-project.org 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. Questions? How to Contribute To the Qt-Project http://qt-project.org 23
  • 24. THANKS ! Develer S.r.l. Via Mugellese 1/A 50013 Campi Bisenzio Firenze - Italy Contacts Mail: info@develer.com Phone: +39-055-3984627 Fax: +39 178 6003614 http://www.develer.com