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
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 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
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
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 evening
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!
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

PPTX
Towards Better Open-Source Development:
PDF
Git influencer - PPT
PDF
Git influencer -catherine shen
PDF
Anshul resume
PPTX
Ag infra pilot_programmatic_access_jkklapp
PPTX
FME-Based Tool for Automatic Updating of Geographical Git Repositories (Pushi...
PPT
Work progress presentation
PDF
SRDS2019: Abeona: an Architecture for Energy-Aware Task Migrations from the E...
Towards Better Open-Source Development:
Git influencer - PPT
Git influencer -catherine shen
Anshul resume
Ag infra pilot_programmatic_access_jkklapp
FME-Based Tool for Automatic Updating of Geographical Git Repositories (Pushi...
Work progress presentation
SRDS2019: Abeona: an Architecture for Energy-Aware Task Migrations from the E...

Similar to PyQtGraph evening (20)

PDF
Big Data LDN 2018: ENABLING DATA-DRIVEN DECISIONS WITH AUTOMATED INSIGHTS
PDF
FinalReport
PDF
Data Sharing, Distribution and Updating Using Social Coding Community Github ...
PDF
A data-driven approach for understanding Open Design @ Design For Next
PPT
VTU technical seminar 8Th Sem on Scikit-learn
PDF
Big Data projects.pdf
PPTX
EDUPUB Implementation Demo Showcase - Reference SW using Readium JS
PDF
Primers or Reminders? The Effects of Existing Review Comments on Code Review
PDF
Maruti gollapudi cv
PDF
London atlassian meetup 31 jan 2016 jira metrics-extract slides
PDF
Final Algos
PDF
CI / CD with fabric8
PPTX
PDF
Software Development Practices.pdf
PDF
Research data spring: streamlining deposit
PDF
Efficient GitHub Crawling using the GraphQL API
PDF
A Bot Identification Model and Tool Based on GitHub Activity Sequences
PPTX
Shopify - CNCF March 2025 Meetup - Presentation - 26-03-25.pptx
PPTX
Gitana: a SQL-based Git Repository Inspector
PDF
Building Reactive Real-time Data Pipeline
Big Data LDN 2018: ENABLING DATA-DRIVEN DECISIONS WITH AUTOMATED INSIGHTS
FinalReport
Data Sharing, Distribution and Updating Using Social Coding Community Github ...
A data-driven approach for understanding Open Design @ Design For Next
VTU technical seminar 8Th Sem on Scikit-learn
Big Data projects.pdf
EDUPUB Implementation Demo Showcase - Reference SW using Readium JS
Primers or Reminders? The Effects of Existing Review Comments on Code Review
Maruti gollapudi cv
London atlassian meetup 31 jan 2016 jira metrics-extract slides
Final Algos
CI / CD with fabric8
Software Development Practices.pdf
Research data spring: streamlining deposit
Efficient GitHub Crawling using the GraphQL API
A Bot Identification Model and Tool Based on GitHub Activity Sequences
Shopify - CNCF March 2025 Meetup - Presentation - 26-03-25.pptx
Gitana: a SQL-based Git Repository Inspector
Building Reactive Real-time Data Pipeline
Ad

Recently uploaded (20)

PPTX
Information Storage and Retrieval Techniques Unit III
PDF
BIO-INSPIRED HORMONAL MODULATION AND ADAPTIVE ORCHESTRATION IN S-AI-GPT
PDF
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
PPTX
Amdahl’s law is explained in the above power point presentations
PDF
null (2) bgfbg bfgb bfgb fbfg bfbgf b.pdf
PDF
Accra-Kumasi Expressway - Prefeasibility Report Volume 1 of 7.11.2018.pdf
PPTX
tack Data Structure with Array and Linked List Implementation, Push and Pop O...
PDF
UNIT no 1 INTRODUCTION TO DBMS NOTES.pdf
PDF
737-MAX_SRG.pdf student reference guides
PDF
SMART SIGNAL TIMING FOR URBAN INTERSECTIONS USING REAL-TIME VEHICLE DETECTI...
PPTX
introduction to high performance computing
PPTX
Module 8- Technological and Communication Skills.pptx
PDF
Influence of Green Infrastructure on Residents’ Endorsement of the New Ecolog...
PPTX
CyberSecurity Mobile and Wireless Devices
PDF
Soil Improvement Techniques Note - Rabbi
PDF
Artificial Superintelligence (ASI) Alliance Vision Paper.pdf
PDF
Categorization of Factors Affecting Classification Algorithms Selection
PPTX
Management Information system : MIS-e-Business Systems.pptx
PPT
INTRODUCTION -Data Warehousing and Mining-M.Tech- VTU.ppt
PPTX
Graph Data Structures with Types, Traversals, Connectivity, and Real-Life App...
Information Storage and Retrieval Techniques Unit III
BIO-INSPIRED HORMONAL MODULATION AND ADAPTIVE ORCHESTRATION IN S-AI-GPT
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
Amdahl’s law is explained in the above power point presentations
null (2) bgfbg bfgb bfgb fbfg bfbgf b.pdf
Accra-Kumasi Expressway - Prefeasibility Report Volume 1 of 7.11.2018.pdf
tack Data Structure with Array and Linked List Implementation, Push and Pop O...
UNIT no 1 INTRODUCTION TO DBMS NOTES.pdf
737-MAX_SRG.pdf student reference guides
SMART SIGNAL TIMING FOR URBAN INTERSECTIONS USING REAL-TIME VEHICLE DETECTI...
introduction to high performance computing
Module 8- Technological and Communication Skills.pptx
Influence of Green Infrastructure on Residents’ Endorsement of the New Ecolog...
CyberSecurity Mobile and Wireless Devices
Soil Improvement Techniques Note - Rabbi
Artificial Superintelligence (ASI) Alliance Vision Paper.pdf
Categorization of Factors Affecting Classification Algorithms Selection
Management Information system : MIS-e-Business Systems.pptx
INTRODUCTION -Data Warehousing and Mining-M.Tech- VTU.ppt
Graph Data Structures with Types, Traversals, Connectivity, and Real-Life App...
Ad

PyQtGraph evening

  • 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
  • 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 PyQtGraph’s Feature Development Process – 4. Guidelines for PyQtGraph’s 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: PyQtGraph’s 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. 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
  • 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?