際際滷

際際滷Share a Scribd company logo
Towards Better
Open-Source
Development:
Improving PyQtGraphs
Feature-Development
Process
Thesis Presentation
By Aditya Kelekar
BE (IT) Metropolia University of Applied Sciences
-
 Lets spare a moment to think about
what is happening with a giant open-
source software project.
At a well-known open-source project
PyQtGraph evening
Source: Linux Kernel Report 2017, Linux Foundation
Figure 1:
Top companies
contributing to
the Linux kernel,
4.8 4.13 in 2017
Linux Kernel Contributors
Table of Contents
 1. What is PyQtGraph and where does it come from?
 2. Open Source Feature Development: Known Facts
 3. Analysis of PyQtGraphs Feature Development Process
 4. Guidelines for PyQtGraphs Feature Process
Improvements
 5. Conclusions
PyQtGraph: A graphic library
Functionalities:
 Basic 2D plotting
 Image display with interactive
lookup tables
 3D graphics system
 Library of widgets and modules
useful for science/engineering
applications
Source: www.pyqtgraph.orgFigure 2: Histogram drawn with
PyQtGraph
PyQtGraph:
Components & Competitors
Figure 3:
PyQtGraphs Dependencies
and Other Graphics Libraries
NOTE: Size of shapes is not an
indicator of any metric
Feature Development in Open-Soure Software
 Iterative process with a public repository
 Mailing list, Forum Boards
 Small, frequent changes to code repository
 Few key developers (that is, limited resources)
 Atleast one maintainer
PyQtGraph evening
Applying Pirate Metrics to
PyQtGraph Project
Figure 4: The
AARRR! Metrics
for PyQtGraph
Source:
Pirate Metrics: A new
way to measure open
source community
success by Gaby Fachler
To Accept or Not to Accept?
 A dilemma often presenting itself to the maintainer:
 One side:
 Accepting (new) code appeases the feature contributor; (possibly also) other
users
 Other side:
 New code becomes the responsibility of the maintainer
PyQtGraphs Code Development
 Bug Reports and New Feature Proposals on GitHub Issues, GitHub Pull Request
and PyQtGraph GoogleGroups pages
 Maintainer of the GitHub (and also founder): Luke Campagnola
 8-10 user queries/feature proposals every month
 60 percent of user queries/feature proposals are answered
 About 40 listed contributors
 All development is voluntary-based
 FAQ for prospective contributors is available
PyQtGraph Google Group Statistics
Figure 5: Data Related to Number of Posts on PyQtGraph Google
Group Forum site
Analysing the Library Forum Posts
 Only posts where the maintainer had commented were analysed
 Corresponding changes in code in Github were studied
 A list of observations was created
 3 cases of feature development were studied
 The 3 cases represented different feature development outcomes
A Successful Development Cycle
aa
Figure 6: Timeline
of events for a
typical successful
feature-addition
process.
Case of Unsuccessful Feature
Development
Figure 7:
Timeline of
interactions for
the New Time
Axis proposed
feature
Suggested Improvements for Feature
Development Process
 Need for a Collaboration Tool.
(Objective: focus the current development resources towards feature completion)
 A new metric to assign collaboration level for new feature code posts
 Visibility of across GithHub and Google Groups forum
 While feature development in progress: correction list auto-tracking features
Pirate Metrics + Interactions
Component
Figure 8:
Extended
Pirate Metrics
with
Interactions
component
PyQtGraph evening
PyQtGraphs GitHub Pull
Requests Page
Conclusions: Beneficiaries &
Limitiations of Scope
 This study could aid:
 a developer wishing to contribute to the PyQtGraph project code
 maintainer of the PyQtGraph project
 User studying the open-source process
- Limitations:
 Research based only on one open-source library
 Each open-source project may have its own dynamics
References:
 1. Luke Campagnola. PyQtGraph Project Home page:
http://www.pyqtgraph.org/ [Internet] [cited 24 April 2018]
 2. Luke Campagnola. PyQtGraph Project Official Documentation page:
http://www.pyqtgraph.org/documentation/installation.html [Internet] [cited 24
April 2018]
 3. Pirate Metrics: A new way to measure open source community success.
https://opensource.com/business/16/6/pirate-metrics [Internet] [cited 24 April
2018]
Thank You!
And now the exercise
Plotting a Graph
Imagine an Apple Tree that grows
uniformly at the rate of 1 meter per
year. It was planted in 2010. Can you
show how it has grown?

More Related Content

Similar to PyQtGraph evening (20)

Big Data LDN 2018: ENABLING DATA-DRIVEN DECISIONS WITH AUTOMATED INSIGHTS
Big Data LDN 2018: ENABLING DATA-DRIVEN DECISIONS WITH AUTOMATED INSIGHTSBig Data LDN 2018: ENABLING DATA-DRIVEN DECISIONS WITH AUTOMATED INSIGHTS
Big Data LDN 2018: ENABLING DATA-DRIVEN DECISIONS WITH AUTOMATED INSIGHTS
Matt Stubbs
FinalReport
FinalReportFinalReport
FinalReport
Katy Lee
Data Sharing, Distribution and Updating Using Social Coding Community Github ...
Data Sharing, Distribution and Updating Using Social Coding Community Github ...Data Sharing, Distribution and Updating Using Social Coding Community Github ...
Data Sharing, Distribution and Updating Using Social Coding Community Github ...
Universit辰t Salzburg
A data-driven approach for understanding Open Design @油Design For Next
A data-driven approach for understanding Open Design @油Design For NextA data-driven approach for understanding Open Design @油Design For Next
A data-driven approach for understanding Open Design @油Design For Next
MAKE-IT
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
AmarnathKambale
Big Data projects.pdf
Big Data projects.pdfBig Data projects.pdf
Big Data projects.pdf
ssuserf0a206
EDUPUB Implementation Demo Showcase - Reference SW using Readium JS
EDUPUB Implementation Demo Showcase - Reference SW using Readium JSEDUPUB Implementation Demo Showcase - Reference SW using Readium JS
EDUPUB Implementation Demo Showcase - Reference SW using Readium JS
Open Cyber University of Korea
Primers or Reminders? The Effects of Existing Review Comments on Code Review
Primers or Reminders? The Effects of Existing Review Comments on Code ReviewPrimers or Reminders? The Effects of Existing Review Comments on Code Review
Primers or Reminders? The Effects of Existing Review Comments on Code Review
Delft University of Technology
Maruti gollapudi cv
Maruti gollapudi cvMaruti gollapudi cv
Maruti gollapudi cv
Maruti Gollapudi
London atlassian meetup 31 jan 2016 jira metrics-extract slides
London atlassian meetup 31 jan 2016 jira metrics-extract slidesLondon atlassian meetup 31 jan 2016 jira metrics-extract slides
London atlassian meetup 31 jan 2016 jira metrics-extract slides
Rudiger Wolf
Final Algos
Final AlgosFinal Algos
Final Algos
Anirudh Mallem
CI / CD with fabric8
CI / CD with fabric8 CI / CD with fabric8
CI / CD with fabric8
James Rawlings
GITHUB
GITHUBGITHUB
GITHUB
rajeshwari5317
Software Development Practices.pdf
Software Development Practices.pdfSoftware Development Practices.pdf
Software Development Practices.pdf
Ezhumalai p
Research data spring: streamlining deposit
Research data spring: streamlining depositResearch data spring: streamlining deposit
Research data spring: streamlining deposit
Jisc RDM
Efficient GitHub Crawling using the GraphQL API
Efficient GitHub Crawling using the GraphQL APIEfficient GitHub Crawling using the GraphQL API
Efficient GitHub Crawling using the GraphQL API
Matthias Trapp
Gitana: a SQL-based Git Repository Inspector
Gitana: a SQL-based Git Repository InspectorGitana: a SQL-based Git Repository Inspector
Gitana: a SQL-based Git Repository Inspector
Valerio Cosentino
Building Reactive Real-time Data Pipeline
Building Reactive Real-time Data PipelineBuilding Reactive Real-time Data Pipeline
Building Reactive Real-time Data Pipeline
Trieu Nguyen
Crunching the numbers: Open Source Community Metrics at OSCON
Crunching the numbers: Open Source Community Metrics at OSCONCrunching the numbers: Open Source Community Metrics at OSCON
Crunching the numbers: Open Source Community Metrics at OSCON
Dawn Foster
Crunching the numbers: Open Source Community Metrics
Crunching the numbers: Open Source Community MetricsCrunching the numbers: Open Source Community Metrics
Crunching the numbers: Open Source Community Metrics
Dawn Foster
Big Data LDN 2018: ENABLING DATA-DRIVEN DECISIONS WITH AUTOMATED INSIGHTS
Big Data LDN 2018: ENABLING DATA-DRIVEN DECISIONS WITH AUTOMATED INSIGHTSBig Data LDN 2018: ENABLING DATA-DRIVEN DECISIONS WITH AUTOMATED INSIGHTS
Big Data LDN 2018: ENABLING DATA-DRIVEN DECISIONS WITH AUTOMATED INSIGHTS
Matt Stubbs
FinalReport
FinalReportFinalReport
FinalReport
Katy Lee
Data Sharing, Distribution and Updating Using Social Coding Community Github ...
Data Sharing, Distribution and Updating Using Social Coding Community Github ...Data Sharing, Distribution and Updating Using Social Coding Community Github ...
Data Sharing, Distribution and Updating Using Social Coding Community Github ...
Universit辰t Salzburg
A data-driven approach for understanding Open Design @油Design For Next
A data-driven approach for understanding Open Design @油Design For NextA data-driven approach for understanding Open Design @油Design For Next
A data-driven approach for understanding Open Design @油Design For Next
MAKE-IT
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
AmarnathKambale
Big Data projects.pdf
Big Data projects.pdfBig Data projects.pdf
Big Data projects.pdf
ssuserf0a206
EDUPUB Implementation Demo Showcase - Reference SW using Readium JS
EDUPUB Implementation Demo Showcase - Reference SW using Readium JSEDUPUB Implementation Demo Showcase - Reference SW using Readium JS
EDUPUB Implementation Demo Showcase - Reference SW using Readium JS
Open Cyber University of Korea
Primers or Reminders? The Effects of Existing Review Comments on Code Review
Primers or Reminders? The Effects of Existing Review Comments on Code ReviewPrimers or Reminders? The Effects of Existing Review Comments on Code Review
Primers or Reminders? The Effects of Existing Review Comments on Code Review
Delft University of Technology
London atlassian meetup 31 jan 2016 jira metrics-extract slides
London atlassian meetup 31 jan 2016 jira metrics-extract slidesLondon atlassian meetup 31 jan 2016 jira metrics-extract slides
London atlassian meetup 31 jan 2016 jira metrics-extract slides
Rudiger Wolf
CI / CD with fabric8
CI / CD with fabric8 CI / CD with fabric8
CI / CD with fabric8
James Rawlings
Software Development Practices.pdf
Software Development Practices.pdfSoftware Development Practices.pdf
Software Development Practices.pdf
Ezhumalai p
Research data spring: streamlining deposit
Research data spring: streamlining depositResearch data spring: streamlining deposit
Research data spring: streamlining deposit
Jisc RDM
Efficient GitHub Crawling using the GraphQL API
Efficient GitHub Crawling using the GraphQL APIEfficient GitHub Crawling using the GraphQL API
Efficient GitHub Crawling using the GraphQL API
Matthias Trapp
Gitana: a SQL-based Git Repository Inspector
Gitana: a SQL-based Git Repository InspectorGitana: a SQL-based Git Repository Inspector
Gitana: a SQL-based Git Repository Inspector
Valerio Cosentino
Building Reactive Real-time Data Pipeline
Building Reactive Real-time Data PipelineBuilding Reactive Real-time Data Pipeline
Building Reactive Real-time Data Pipeline
Trieu Nguyen
Crunching the numbers: Open Source Community Metrics at OSCON
Crunching the numbers: Open Source Community Metrics at OSCONCrunching the numbers: Open Source Community Metrics at OSCON
Crunching the numbers: Open Source Community Metrics at OSCON
Dawn Foster
Crunching the numbers: Open Source Community Metrics
Crunching the numbers: Open Source Community MetricsCrunching the numbers: Open Source Community Metrics
Crunching the numbers: Open Source Community Metrics
Dawn Foster

Recently uploaded (20)

Designing Flex and Rigid-Flex PCBs to Prevent Failure
Designing Flex and Rigid-Flex PCBs to Prevent FailureDesigning Flex and Rigid-Flex PCBs to Prevent Failure
Designing Flex and Rigid-Flex PCBs to Prevent Failure
Epec Engineered Technologies
AI ppt on water jug problem by shivam sharma
AI ppt on water jug problem by shivam sharmaAI ppt on water jug problem by shivam sharma
AI ppt on water jug problem by shivam sharma
ShivamSharma588604
Practice Head Torpedo - Neometrix Defence.pptx
Practice Head Torpedo - Neometrix Defence.pptxPractice Head Torpedo - Neometrix Defence.pptx
Practice Head Torpedo - Neometrix Defence.pptx
Neometrix_Engineering_Pvt_Ltd
eng funda notes.pdfddddddddddddddddddddddd
eng funda notes.pdfdddddddddddddddddddddddeng funda notes.pdfddddddddddddddddddddddd
eng funda notes.pdfddddddddddddddddddddddd
aayushkumarsinghec22
Wireless-Charger presentation for seminar .pdf
Wireless-Charger presentation for seminar .pdfWireless-Charger presentation for seminar .pdf
Wireless-Charger presentation for seminar .pdf
AbhinandanMishra30
Sppu engineering artificial intelligence and data science semester 6th Artif...
Sppu engineering  artificial intelligence and data science semester 6th Artif...Sppu engineering  artificial intelligence and data science semester 6th Artif...
Sppu engineering artificial intelligence and data science semester 6th Artif...
pawaletrupti434
AO Star Algorithm in Artificial Intellligence
AO Star Algorithm in Artificial IntellligenceAO Star Algorithm in Artificial Intellligence
AO Star Algorithm in Artificial Intellligence
vipulkondekar
ESIT135 Problem Solving Using Python Notes of Unit-1 and Unit-2
ESIT135 Problem Solving Using Python Notes of Unit-1 and Unit-2ESIT135 Problem Solving Using Python Notes of Unit-1 and Unit-2
ESIT135 Problem Solving Using Python Notes of Unit-1 and Unit-2
prasadmutkule1
Instruction execution cycle _
Instruction execution cycle                  _Instruction execution cycle                  _
Instruction execution cycle _
SwatiHans10
Improving Surgical Robot Performance Through Seal Design.pdf
Improving Surgical Robot Performance Through Seal Design.pdfImproving Surgical Robot Performance Through Seal Design.pdf
Improving Surgical Robot Performance Through Seal Design.pdf
BSEmarketing
TASK-DECOMPOSITION BASED ANOMALY DETECTION OF MASSIVE AND HIGH-VOLATILITY SES...
TASK-DECOMPOSITION BASED ANOMALY DETECTION OF MASSIVE AND HIGH-VOLATILITY SES...TASK-DECOMPOSITION BASED ANOMALY DETECTION OF MASSIVE AND HIGH-VOLATILITY SES...
TASK-DECOMPOSITION BASED ANOMALY DETECTION OF MASSIVE AND HIGH-VOLATILITY SES...
samueljackson3773
-PPT-5-Wind-Energy conversion slides contents
-PPT-5-Wind-Energy conversion   slides contents-PPT-5-Wind-Energy conversion   slides contents
-PPT-5-Wind-Energy conversion slides contents
senthilkumarmamse
Cloud Cost Optimization for GCP, AWS, Azure
Cloud Cost Optimization for GCP, AWS, AzureCloud Cost Optimization for GCP, AWS, Azure
Cloud Cost Optimization for GCP, AWS, Azure
vinothsk19
Common Network Architecture:X.25 Networks, Ethernet (Standard and Fast): fram...
Common Network Architecture:X.25 Networks, Ethernet (Standard and Fast): fram...Common Network Architecture:X.25 Networks, Ethernet (Standard and Fast): fram...
Common Network Architecture:X.25 Networks, Ethernet (Standard and Fast): fram...
SnehPrasad2
Data recovery and Digital evidence controls in digital frensics.pdf
Data recovery and Digital evidence controls in digital frensics.pdfData recovery and Digital evidence controls in digital frensics.pdf
Data recovery and Digital evidence controls in digital frensics.pdf
Abhijit Bodhe
GREEN BULIDING PPT FOR THE REFRENACE.PPT
GREEN BULIDING PPT FOR THE REFRENACE.PPTGREEN BULIDING PPT FOR THE REFRENACE.PPT
GREEN BULIDING PPT FOR THE REFRENACE.PPT
kamalkeerthan61
Turbocor Product and Technology Review.pdf
Turbocor Product and Technology Review.pdfTurbocor Product and Technology Review.pdf
Turbocor Product and Technology Review.pdf
Totok Sulistiyanto
Failover System in Cloud Computing System
Failover System in Cloud Computing SystemFailover System in Cloud Computing System
Failover System in Cloud Computing System
Hitesh Mohapatra
Dijkstra Shortest Path Algorithm in Network.ppt
Dijkstra Shortest Path Algorithm in Network.pptDijkstra Shortest Path Algorithm in Network.ppt
Dijkstra Shortest Path Algorithm in Network.ppt
RAJASEKARAN G
GE 6B GT Ratcheting Animation- Hemananda Chinara.ppsx
GE 6B GT Ratcheting Animation- Hemananda Chinara.ppsxGE 6B GT Ratcheting Animation- Hemananda Chinara.ppsx
GE 6B GT Ratcheting Animation- Hemananda Chinara.ppsx
Hemananda Chinara
Designing Flex and Rigid-Flex PCBs to Prevent Failure
Designing Flex and Rigid-Flex PCBs to Prevent FailureDesigning Flex and Rigid-Flex PCBs to Prevent Failure
Designing Flex and Rigid-Flex PCBs to Prevent Failure
Epec Engineered Technologies
AI ppt on water jug problem by shivam sharma
AI ppt on water jug problem by shivam sharmaAI ppt on water jug problem by shivam sharma
AI ppt on water jug problem by shivam sharma
ShivamSharma588604
eng funda notes.pdfddddddddddddddddddddddd
eng funda notes.pdfdddddddddddddddddddddddeng funda notes.pdfddddddddddddddddddddddd
eng funda notes.pdfddddddddddddddddddddddd
aayushkumarsinghec22
Wireless-Charger presentation for seminar .pdf
Wireless-Charger presentation for seminar .pdfWireless-Charger presentation for seminar .pdf
Wireless-Charger presentation for seminar .pdf
AbhinandanMishra30
Sppu engineering artificial intelligence and data science semester 6th Artif...
Sppu engineering  artificial intelligence and data science semester 6th Artif...Sppu engineering  artificial intelligence and data science semester 6th Artif...
Sppu engineering artificial intelligence and data science semester 6th Artif...
pawaletrupti434
AO Star Algorithm in Artificial Intellligence
AO Star Algorithm in Artificial IntellligenceAO Star Algorithm in Artificial Intellligence
AO Star Algorithm in Artificial Intellligence
vipulkondekar
ESIT135 Problem Solving Using Python Notes of Unit-1 and Unit-2
ESIT135 Problem Solving Using Python Notes of Unit-1 and Unit-2ESIT135 Problem Solving Using Python Notes of Unit-1 and Unit-2
ESIT135 Problem Solving Using Python Notes of Unit-1 and Unit-2
prasadmutkule1
Instruction execution cycle _
Instruction execution cycle                  _Instruction execution cycle                  _
Instruction execution cycle _
SwatiHans10
Improving Surgical Robot Performance Through Seal Design.pdf
Improving Surgical Robot Performance Through Seal Design.pdfImproving Surgical Robot Performance Through Seal Design.pdf
Improving Surgical Robot Performance Through Seal Design.pdf
BSEmarketing
TASK-DECOMPOSITION BASED ANOMALY DETECTION OF MASSIVE AND HIGH-VOLATILITY SES...
TASK-DECOMPOSITION BASED ANOMALY DETECTION OF MASSIVE AND HIGH-VOLATILITY SES...TASK-DECOMPOSITION BASED ANOMALY DETECTION OF MASSIVE AND HIGH-VOLATILITY SES...
TASK-DECOMPOSITION BASED ANOMALY DETECTION OF MASSIVE AND HIGH-VOLATILITY SES...
samueljackson3773
-PPT-5-Wind-Energy conversion slides contents
-PPT-5-Wind-Energy conversion   slides contents-PPT-5-Wind-Energy conversion   slides contents
-PPT-5-Wind-Energy conversion slides contents
senthilkumarmamse
Cloud Cost Optimization for GCP, AWS, Azure
Cloud Cost Optimization for GCP, AWS, AzureCloud Cost Optimization for GCP, AWS, Azure
Cloud Cost Optimization for GCP, AWS, Azure
vinothsk19
Common Network Architecture:X.25 Networks, Ethernet (Standard and Fast): fram...
Common Network Architecture:X.25 Networks, Ethernet (Standard and Fast): fram...Common Network Architecture:X.25 Networks, Ethernet (Standard and Fast): fram...
Common Network Architecture:X.25 Networks, Ethernet (Standard and Fast): fram...
SnehPrasad2
Data recovery and Digital evidence controls in digital frensics.pdf
Data recovery and Digital evidence controls in digital frensics.pdfData recovery and Digital evidence controls in digital frensics.pdf
Data recovery and Digital evidence controls in digital frensics.pdf
Abhijit Bodhe
GREEN BULIDING PPT FOR THE REFRENACE.PPT
GREEN BULIDING PPT FOR THE REFRENACE.PPTGREEN BULIDING PPT FOR THE REFRENACE.PPT
GREEN BULIDING PPT FOR THE REFRENACE.PPT
kamalkeerthan61
Turbocor Product and Technology Review.pdf
Turbocor Product and Technology Review.pdfTurbocor Product and Technology Review.pdf
Turbocor Product and Technology Review.pdf
Totok Sulistiyanto
Failover System in Cloud Computing System
Failover System in Cloud Computing SystemFailover System in Cloud Computing System
Failover System in Cloud Computing System
Hitesh Mohapatra
Dijkstra Shortest Path Algorithm in Network.ppt
Dijkstra Shortest Path Algorithm in Network.pptDijkstra Shortest Path Algorithm in Network.ppt
Dijkstra Shortest Path Algorithm in Network.ppt
RAJASEKARAN G
GE 6B GT Ratcheting Animation- Hemananda Chinara.ppsx
GE 6B GT Ratcheting Animation- Hemananda Chinara.ppsxGE 6B GT Ratcheting Animation- Hemananda Chinara.ppsx
GE 6B GT Ratcheting Animation- Hemananda Chinara.ppsx
Hemananda Chinara

PyQtGraph evening

  • 1. Towards Better Open-Source Development: Improving PyQtGraphs Feature-Development Process Thesis Presentation By Aditya Kelekar BE (IT) Metropolia University of Applied Sciences
  • 2. - Lets spare a moment to think about what is happening with a giant open- source software project. At a well-known open-source project
  • 4. Source: Linux Kernel Report 2017, Linux Foundation Figure 1: Top companies contributing to the Linux kernel, 4.8 4.13 in 2017 Linux Kernel Contributors
  • 5. Table of Contents 1. What is PyQtGraph and where does it come from? 2. Open Source Feature Development: Known Facts 3. Analysis of PyQtGraphs Feature Development Process 4. Guidelines for PyQtGraphs Feature Process Improvements 5. Conclusions
  • 6. PyQtGraph: A graphic library Functionalities: Basic 2D plotting Image display with interactive lookup tables 3D graphics system Library of widgets and modules useful for science/engineering applications Source: www.pyqtgraph.orgFigure 2: Histogram drawn with PyQtGraph
  • 7. PyQtGraph: Components & Competitors Figure 3: PyQtGraphs Dependencies and Other Graphics Libraries NOTE: Size of shapes is not an indicator of any metric
  • 8. Feature Development in Open-Soure Software Iterative process with a public repository Mailing list, Forum Boards Small, frequent changes to code repository Few key developers (that is, limited resources) Atleast one maintainer
  • 10. Applying Pirate Metrics to PyQtGraph Project Figure 4: The AARRR! Metrics for PyQtGraph Source: Pirate Metrics: A new way to measure open source community success by Gaby Fachler
  • 11. To Accept or Not to Accept? A dilemma often presenting itself to the maintainer: One side: Accepting (new) code appeases the feature contributor; (possibly also) other users Other side: New code becomes the responsibility of the maintainer
  • 12. PyQtGraphs Code Development Bug Reports and New Feature Proposals on GitHub Issues, GitHub Pull Request and PyQtGraph GoogleGroups pages Maintainer of the GitHub (and also founder): Luke Campagnola 8-10 user queries/feature proposals every month 60 percent of user queries/feature proposals are answered About 40 listed contributors All development is voluntary-based FAQ for prospective contributors is available
  • 13. PyQtGraph Google Group Statistics Figure 5: Data Related to Number of Posts on PyQtGraph Google Group Forum site
  • 14. Analysing the Library Forum Posts Only posts where the maintainer had commented were analysed Corresponding changes in code in Github were studied A list of observations was created 3 cases of feature development were studied The 3 cases represented different feature development outcomes
  • 15. A Successful Development Cycle aa Figure 6: Timeline of events for a typical successful feature-addition process.
  • 16. Case of Unsuccessful Feature Development Figure 7: Timeline of interactions for the New Time Axis proposed feature
  • 17. Suggested Improvements for Feature Development Process Need for a Collaboration Tool. (Objective: focus the current development resources towards feature completion) A new metric to assign collaboration level for new feature code posts Visibility of across GithHub and Google Groups forum While feature development in progress: correction list auto-tracking features
  • 18. Pirate Metrics + Interactions Component Figure 8: Extended Pirate Metrics with Interactions component
  • 21. Conclusions: Beneficiaries & Limitiations of Scope This study could aid: a developer wishing to contribute to the PyQtGraph project code maintainer of the PyQtGraph project User studying the open-source process - Limitations: Research based only on one open-source library Each open-source project may have its own dynamics
  • 22. References: 1. Luke Campagnola. PyQtGraph Project Home page: http://www.pyqtgraph.org/ [Internet] [cited 24 April 2018] 2. Luke Campagnola. PyQtGraph Project Official Documentation page: http://www.pyqtgraph.org/documentation/installation.html [Internet] [cited 24 April 2018] 3. Pirate Metrics: A new way to measure open source community success. https://opensource.com/business/16/6/pirate-metrics [Internet] [cited 24 April 2018]
  • 23. Thank You! And now the exercise
  • 24. Plotting a Graph Imagine an Apple Tree that grows uniformly at the rate of 1 meter per year. It was planted in 2010. Can you show how it has grown?