Towards Better
Open-Source
Development:
Improving PyQtGraph’s
Feature-Development
Process
Thesis Presentation
By Aditya Kelekar
BE (IT) Metropolia University of Applied Sciences
-
– Let’s spare a moment to think about
what is happening with a giant open-
source software project….
At a well-known open-source project
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 PyQtGraph’s Feature Development Process
– 4. Guidelines for PyQtGraph’s 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:
PyQtGraph’s 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
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
PyQtGraph’s 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’s 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!
Any Questions?

More Related Content

PPTX
PyQtGraph evening
PDF
Anshul resume
PDF
Sartaj Singh Baveja
PPT
Work progress presentation
PDF
Riskinhousingandrealestate projectsinnepalandroleofcadastralsurvey
PDF
ABench: Big Data Architecture Stack Benchmark
PDF
Big Data LDN 2018: ENABLING DATA-DRIVEN DECISIONS WITH AUTOMATED INSIGHTS
PDF
Git influencer - PPT
PyQtGraph evening
Anshul resume
Sartaj Singh Baveja
Work progress presentation
Riskinhousingandrealestate projectsinnepalandroleofcadastralsurvey
ABench: Big Data Architecture Stack Benchmark
Big Data LDN 2018: ENABLING DATA-DRIVEN DECISIONS WITH AUTOMATED INSIGHTS
Git influencer - PPT

Similar to Towards Better Open-Source Development: (20)

PDF
FinalReport
PDF
Git influencer -catherine shen
PPT
VTU technical seminar 8Th Sem on Scikit-learn
PDF
A data-driven approach for understanding Open Design @ Design For Next
PDF
Maruti gollapudi cv
PDF
London atlassian meetup 31 jan 2016 jira metrics-extract slides
PDF
Primers or Reminders? The Effects of Existing Review Comments on Code Review
PDF
Big Data projects.pdf
PDF
Data Sharing, Distribution and Updating Using Social Coding Community Github ...
PPTX
EDUPUB Implementation Demo Showcase - Reference SW using Readium JS
PDF
CI / CD with fabric8
PDF
Building Reactive Real-time Data Pipeline
PDF
A Bot Identification Model and Tool Based on GitHub Activity Sequences
PPTX
Shopify - CNCF March 2025 Meetup - Presentation - 26-03-25.pptx
PDF
Software Development Practices.pdf
PDF
Mohit Kalra
PDF
Research data spring: streamlining deposit
PDF
Crunching the numbers: Open Source Community Metrics
PDF
Crunching the numbers: Open Source Community Metrics at OSCON
PDF
Cytoscape: Now and Future
FinalReport
Git influencer -catherine shen
VTU technical seminar 8Th Sem on Scikit-learn
A data-driven approach for understanding Open Design @ Design For Next
Maruti gollapudi cv
London atlassian meetup 31 jan 2016 jira metrics-extract slides
Primers or Reminders? The Effects of Existing Review Comments on Code Review
Big Data projects.pdf
Data Sharing, Distribution and Updating Using Social Coding Community Github ...
EDUPUB Implementation Demo Showcase - Reference SW using Readium JS
CI / CD with fabric8
Building Reactive Real-time Data Pipeline
A Bot Identification Model and Tool Based on GitHub Activity Sequences
Shopify - CNCF March 2025 Meetup - Presentation - 26-03-25.pptx
Software Development Practices.pdf
Mohit Kalra
Research data spring: streamlining deposit
Crunching the numbers: Open Source Community Metrics
Crunching the numbers: Open Source Community Metrics at OSCON
Cytoscape: Now and Future
Ad

Recently uploaded (20)

PPTX
Sorting and Hashing in Data Structures with Algorithms, Techniques, Implement...
PPTX
CyberSecurity Mobile and Wireless Devices
PPTX
AUTOMOTIVE ENGINE MANAGEMENT (MECHATRONICS).pptx
PDF
Abrasive, erosive and cavitation wear.pdf
PPTX
Fundamentals of safety and accident prevention -final (1).pptx
PDF
distributed database system" (DDBS) is often used to refer to both the distri...
PDF
EXPLORING LEARNING ENGAGEMENT FACTORS INFLUENCING BEHAVIORAL, COGNITIVE, AND ...
PDF
Artificial Superintelligence (ASI) Alliance Vision Paper.pdf
PPTX
ASME PCC-02 TRAINING -DESKTOP-NLE5HNP.pptx
PPTX
tack Data Structure with Array and Linked List Implementation, Push and Pop O...
PPTX
CURRICULAM DESIGN engineering FOR CSE 2025.pptx
PPTX
Module 8- Technological and Communication Skills.pptx
PDF
Exploratory_Data_Analysis_Fundamentals.pdf
PDF
Categorization of Factors Affecting Classification Algorithms Selection
PPT
INTRODUCTION -Data Warehousing and Mining-M.Tech- VTU.ppt
PDF
August -2025_Top10 Read_Articles_ijait.pdf
PDF
BIO-INSPIRED HORMONAL MODULATION AND ADAPTIVE ORCHESTRATION IN S-AI-GPT
PDF
ChapteR012372321DFGDSFGDFGDFSGDFGDFGDFGSDFGDFGFD
PPTX
6ME3A-Unit-II-Sensors and Actuators_Handouts.pptx
PDF
Accra-Kumasi Expressway - Prefeasibility Report Volume 1 of 7.11.2018.pdf
Sorting and Hashing in Data Structures with Algorithms, Techniques, Implement...
CyberSecurity Mobile and Wireless Devices
AUTOMOTIVE ENGINE MANAGEMENT (MECHATRONICS).pptx
Abrasive, erosive and cavitation wear.pdf
Fundamentals of safety and accident prevention -final (1).pptx
distributed database system" (DDBS) is often used to refer to both the distri...
EXPLORING LEARNING ENGAGEMENT FACTORS INFLUENCING BEHAVIORAL, COGNITIVE, AND ...
Artificial Superintelligence (ASI) Alliance Vision Paper.pdf
ASME PCC-02 TRAINING -DESKTOP-NLE5HNP.pptx
tack Data Structure with Array and Linked List Implementation, Push and Pop O...
CURRICULAM DESIGN engineering FOR CSE 2025.pptx
Module 8- Technological and Communication Skills.pptx
Exploratory_Data_Analysis_Fundamentals.pdf
Categorization of Factors Affecting Classification Algorithms Selection
INTRODUCTION -Data Warehousing and Mining-M.Tech- VTU.ppt
August -2025_Top10 Read_Articles_ijait.pdf
BIO-INSPIRED HORMONAL MODULATION AND ADAPTIVE ORCHESTRATION IN S-AI-GPT
ChapteR012372321DFGDSFGDFGDFSGDFGDFGDFGSDFGDFGFD
6ME3A-Unit-II-Sensors and Actuators_Handouts.pptx
Accra-Kumasi Expressway - Prefeasibility Report Volume 1 of 7.11.2018.pdf
Ad

Towards Better Open-Source Development:

  • 1. Towards Better Open-Source Development: Improving PyQtGraph’s Feature-Development Process Thesis Presentation By Aditya Kelekar BE (IT) Metropolia University of Applied Sciences
  • 2. - – Let’s spare a moment to think about what is happening with a giant open- source software project…. At a well-known open-source project
  • 3. 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
  • 4. Table of Contents – 1. What is PyQtGraph and where does it come from? – 2. Open Source Feature Development: Known Facts – 3. Analysis of PyQtGraph’s Feature Development Process – 4. Guidelines for PyQtGraph’s Feature Process Improvements – 5. Conclusions
  • 5. 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
  • 6. PyQtGraph: Components & Competitors Figure 3: PyQtGraph’s Dependencies and Other Graphics Libraries NOTE: Size of shapes is not an indicator of any metric
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. PyQtGraph’s 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
  • 11. PyQtGraph Google Group Statistics Figure 5: Data Related to Number of Posts on PyQtGraph ’Google Group’ Forum site
  • 12. 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
  • 13. A Successful Development Cycle aa Figure 6: Timeline of events for a typical successful feature-addition process.
  • 14. Case of Unsuccessful Feature Development Figure 7: Timeline of interactions for the “New Time Axis” proposed feature
  • 15. 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
  • 16. Pirate Metrics + Interactions Component Figure 8: Extended Pirate Metrics with Interactions component
  • 18. 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
  • 19. 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]