Dependency Bugs The Dark Side Of Variability, Reuse, and Modularity

Andrzej Wasowski
Andrzej WasowskiProfessor at IT University of Copenhagen
Anders Fischer-Nielsen Larsen, Zhoulai Fu
IT University of Copenhagen
Ting Su
ETH Zurich
Andrzej W ˛asowski
IT University of Copenhagen
@AndrzejWasowski
Dependency
Bugs
The Dark Side
Of Variability, Reuse, and Modularity
c Andrzej W ˛asowski, IT University of Copenhagen 1
c Andrzej W ˛asowski, IT University of Copenhagen 2
Phantom?
Menace?
Unbelievably complex IT systems
(low-level embedded sw, control,
mechatronics, complex AI, unclear
behavioral logics, concurrent,
distributed, split between
hardware-software-cloud, idiosyncratic)
Community priorities: Innovation &
Demonstration vs long term use
Enjoyment: Testing, quality,
documentation are boring. We use
ROS for fun
Meritocracy: The barrier of entry
should be low. Most ROS users hold
no CS degree
455 repositories in the official
distribution, each containing several
packages. Uncountable on GitHub.
Alami. Dittrich. W ˛asowski. Influencers of quality assur-
ance in an open source community. CHASE 2018
c Andrzej W ˛asowski, IT University of Copenhagen 3
Cloning is recognized as a harmful practice, cred-
ited for decreasing code quality and multiplying
maintenance problems. A bug found in one clone
can exist in other clones, thus, it needs to be fixed
multiple times. Even just locating all cloned code
may be nontrivial. Unintentional parallel devel-
opment of the same functionality in different forks
increases implementation and test costs. Finally,
merging diverged code forks is very laborious.
Software Reuse is our response to the attack of
the clones, including
Variability Management and Product Line
Engineering
Modularity (Component Based Development)
Configurable components
Stefan Stanciulescu. Sandro Schulze. Andrzej W ˛asowski. Forked and
integrated variants in an open-source firmware project. ICSME 2015
c Andrzej W ˛asowski, IT University of Copenhagen 4
. . . an open-source, meta-operating system for your robot. It provides the services you
would expect from an operating system, including hardware abstraction, low-level device
control, implementation of commonly-used functionality, message-passing between pro-
cesses, and package management. It also provides tools and libraries for obtaining, build-
ing, writing, and running code across multiple computers.
communication
middleware
with uniform
API
100s
integrated
HW drivers
& SW
components
separates
logics and
algos from
HW
infrastructure
for test,
simulation,
logging
more tutorials
than you can
read; active
friendly
community
Linux, Python,
C++, C, Java
c Andrzej W ˛asowski, IT University of Copenhagen 5
package build script
...
catkin_package( ...
DEPENDS boost ...
include_directories(SYSTEM
${Boost_INCLUDE_DIR}) ...
target_link_libraries(ur10_moveit_plugin ...
${Boost_LIBRARIES} ...
install(TARGETS
ur5_moveit_plugin
ur10_moveit_plugin ...
CMakeLists.txt
compile&link
with boost
install
ur5_moveit_plugin
install
ur10_moveit_plugin
a package manifest
used for installation
...
<run_depend>boost</run_depend>
...
specification of exported libraries
<library
path="lib/libur10_moveit_plugin">
...
<library
path="lib/libur5_moveit_plugin">
...
plugin.xml
package.xml includes
export
libur10_moveit_plugin
export
libur10_moveit_plugin
runtime dependency
boost libraryTwo different bugs!Anders Fischer-Nielsen. Zhoulai Fu. Ting Su. Andrzej W ˛asowski. The Forgotten Case of the Dependency Bugs. ICSE SEIP’20
c Andrzej W ˛asowski, IT University of Copenhagen 6
Dependency Bugs
Extracted by qualitative analysis of bugs in the ROS
Prestudy on 9 + 20 cases, study 455 repos → 118 have issues labeled ’bug’
Sample 50/50 with/without the term ’bug’, both positive and negative candidates
A definition = a discriminating conditions. You need both positive and negative cases!
Qualitatively analyze 100 cases, iteratively, with group discussions
Final check on all 95 remaining positive cases in ROS Melodic
Anders Fischer-Nielsen. Zhoulai Fu. Ting Su. Andrzej W ˛asowski. The Forgotten Case of the Dependency Bugs. ICSE SEIP’20
c Andrzej W ˛asowski, IT University of Copenhagen 7
c Andrzej W ˛asowski, IT University of Copenhagen 8
Dependency bugs appear silly, easy to fix,
especially to package authors
They are rarely experienced by the authors of
the package
They are unbelievably complex for newcomers
and new users
Researchers do not like them
(Who likes the Sith?)
Its other people’s plumbing kinda problem
They are the price for having a flexible,
composable, modular and configurable
system
Perhaps an acceptable price... (?)
Anders Fischer-Nielsen. Zhoulai Fu. Ting Su. Andrzej W ˛asowski. The
Forgotten Case of the Dependency Bugs. ICSE SEIP’20
c Andrzej W ˛asowski, IT University of Copenhagen 9
Named must be your fear before banish it you can
Heterogeneous: dependency specs come from different tech spaces (1+ package
management systems, prog. language infrastructure, OS, DB, etc.)
Independent (also organizationally independent) individuals control them
Temporal: All these sources modify them at a different speeds, time cycles
A dep. bug linter is not difficult to build due to complex inference algorithms,
but due of difficulties in gathering and abstracting all necessary info continuously
An analyzer designed from PL semantics perspective has no chance to find dep bugs.
The PL lacks info about the build context.
c Andrzej W ˛asowski, IT University of Copenhagen 10
How pervasive are dependency bugs?
Estimated accuracy of a simplistic classifier for issues
54% on positive cases, 88% on negative cases (tag "bug" + substring "depend")
53% packages affected by
dependency bugs (based on
the issue discussions)
30% contributors are
affected by dependency
problems or use time
solving them
Conditioned to contributors
to affected packages, the
above rises to 60%
Dependency bugs attract a
lot of discussion from
multiple contributors, in fact
the majority of the team.
c Andrzej W ˛asowski, IT University of Copenhagen 11
How expensive are dependency bugs?
Average discussion of dependency bug includes 4 ± 4.09
comments in ROS
Baseline: The average discussion of any bug includes 2.92 ± 3.42
comments in ROS
Dependency bugs attract more discussion than other issues
Dependency issues are often solved by senior members for
junior members
Discussion of dependency issues are common outside GitHub
(on ROS-answers and Stack Overflow)
c Andrzej W ˛asowski, IT University of Copenhagen 12
Conclusion
Dependency bugs are a special kind of feature interaction bugs
Dependency bugs are a special kind of variability bugs
Relatively simple, simplistic
The ratio of annoyance to simplicity is unbelievably high
They diminish the value produced by this community
Eradicatable? Can we get rid of them?
Are you the next Jedi to fight them?
c Andrzej W ˛asowski, IT University of Copenhagen 13
1 of 13

Recommended

Dnasec by
DnasecDnasec
DnasecZied Houaneb
173 views15 slides
Testbed For Ids by
Testbed For IdsTestbed For Ids
Testbed For Idsamiable_indian
1.4K views54 slides
Addressing New Challenges in Software Protection for .NET by
Addressing New Challenges in Software Protection for .NETAddressing New Challenges in Software Protection for .NET
Addressing New Challenges in Software Protection for .NETLicensingLive! - SafeNet
289 views5 slides
110015978_WirelessChannelsInInceOS by
110015978_WirelessChannelsInInceOS110015978_WirelessChannelsInInceOS
110015978_WirelessChannelsInInceOSTejas Unnikrishnan
397 views62 slides
Dismantling intrusion prevention_systems by
Dismantling intrusion prevention_systemsDismantling intrusion prevention_systems
Dismantling intrusion prevention_systemsOlli-Pekka Niemi
24 views2 slides
Shellshock Research Paper by
Shellshock Research PaperShellshock Research Paper
Shellshock Research PaperKaren Hennings
3 views15 slides

More Related Content

Similar to Dependency Bugs The Dark Side Of Variability, Reuse, and Modularity

Reproducible Science and Deep Software Variability by
Reproducible Science and Deep Software VariabilityReproducible Science and Deep Software Variability
Reproducible Science and Deep Software VariabilityUniversity of Rennes, INSA Rennes, Inria/IRISA, CNRS
369 views83 slides
Finding Resource Manipulation Bugs in Linux Code by
Finding Resource Manipulation Bugs in Linux CodeFinding Resource Manipulation Bugs in Linux Code
Finding Resource Manipulation Bugs in Linux CodeAndrzej Wasowski
306 views28 slides
Software Composition Analysis Deep Dive by
Software Composition Analysis Deep DiveSoftware Composition Analysis Deep Dive
Software Composition Analysis Deep DiveUlisses Albuquerque
1.5K views56 slides
The Anatomy of Java Vulnerabilities (Devoxx UK 2017) by
The Anatomy of Java Vulnerabilities (Devoxx UK 2017)The Anatomy of Java Vulnerabilities (Devoxx UK 2017)
The Anatomy of Java Vulnerabilities (Devoxx UK 2017)Steve Poole
882 views61 slides
Tools and Methods for Continuously Expanding Software Applications by
Tools and Methods for Continuously Expanding Software ApplicationsTools and Methods for Continuously Expanding Software Applications
Tools and Methods for Continuously Expanding Software ApplicationsInfinIT - Innovationsnetværket for it
1.2K views36 slides
Dev and Blind - Attacking the weakest Link in IT Security by
Dev and Blind - Attacking the weakest Link in IT SecurityDev and Blind - Attacking the weakest Link in IT Security
Dev and Blind - Attacking the weakest Link in IT SecurityMario Heiderich
5.6K views39 slides

Similar to Dependency Bugs The Dark Side Of Variability, Reuse, and Modularity(20)

Finding Resource Manipulation Bugs in Linux Code by Andrzej Wasowski
Finding Resource Manipulation Bugs in Linux CodeFinding Resource Manipulation Bugs in Linux Code
Finding Resource Manipulation Bugs in Linux Code
Andrzej Wasowski306 views
The Anatomy of Java Vulnerabilities (Devoxx UK 2017) by Steve Poole
The Anatomy of Java Vulnerabilities (Devoxx UK 2017)The Anatomy of Java Vulnerabilities (Devoxx UK 2017)
The Anatomy of Java Vulnerabilities (Devoxx UK 2017)
Steve Poole882 views
Dev and Blind - Attacking the weakest Link in IT Security by Mario Heiderich
Dev and Blind - Attacking the weakest Link in IT SecurityDev and Blind - Attacking the weakest Link in IT Security
Dev and Blind - Attacking the weakest Link in IT Security
Mario Heiderich5.6K views
Using Formal Concept Analysis to Construct and Visualise Hierarchies of Socio... by Michel Wermelinger
Using Formal Concept Analysis to Construct and Visualise Hierarchies of Socio...Using Formal Concept Analysis to Construct and Visualise Hierarchies of Socio...
Using Formal Concept Analysis to Construct and Visualise Hierarchies of Socio...
Michel Wermelinger465 views
Unit 4 Types Of Memory Research Paper by Ginny Sagdalen
Unit 4 Types Of Memory Research PaperUnit 4 Types Of Memory Research Paper
Unit 4 Types Of Memory Research Paper
Ginny Sagdalen2 views
OpenNebulaConf2015 1.14 Are Today’s FOSS Security Practices Robust Enough in ... by OpenNebula Project
OpenNebulaConf2015 1.14 Are Today’s FOSS Security Practices Robust Enough in ...OpenNebulaConf2015 1.14 Are Today’s FOSS Security Practices Robust Enough in ...
OpenNebulaConf2015 1.14 Are Today’s FOSS Security Practices Robust Enough in ...
OpenNebula Project354 views
TECHNOLOGY ENHANCED LEARNING WITH OPEN SOURCE SOFTWARE FOR SCIENTISTS AND ENG... by Maurice Dawson
TECHNOLOGY ENHANCED LEARNING WITH OPEN SOURCE SOFTWARE FOR SCIENTISTS AND ENG...TECHNOLOGY ENHANCED LEARNING WITH OPEN SOURCE SOFTWARE FOR SCIENTISTS AND ENG...
TECHNOLOGY ENHANCED LEARNING WITH OPEN SOURCE SOFTWARE FOR SCIENTISTS AND ENG...
Maurice Dawson439 views
The Emergent Cloud Security Toolchain for CI/CD by James Wickett
The Emergent Cloud Security Toolchain for CI/CDThe Emergent Cloud Security Toolchain for CI/CD
The Emergent Cloud Security Toolchain for CI/CD
James Wickett330 views
Unix, Linux, And Windows Server Critique Essay by Sarah Michalak
Unix, Linux, And Windows Server Critique EssayUnix, Linux, And Windows Server Critique Essay
Unix, Linux, And Windows Server Critique Essay
Sarah Michalak2 views
Bringin the web to researchers by Peter Sefton
Bringin the web to researchersBringin the web to researchers
Bringin the web to researchers
Peter Sefton399 views

Recently uploaded

AI and Ml presentation .pptx by
AI and Ml presentation .pptxAI and Ml presentation .pptx
AI and Ml presentation .pptxFayazAli87
11 views15 slides
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko... by
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...Deltares
14 views23 slides
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ... by
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...Deltares
10 views32 slides
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the... by
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...Deltares
6 views22 slides
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t... by
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...Deltares
9 views26 slides
Sprint 226 by
Sprint 226Sprint 226
Sprint 226ManageIQ
5 views18 slides

Recently uploaded(20)

AI and Ml presentation .pptx by FayazAli87
AI and Ml presentation .pptxAI and Ml presentation .pptx
AI and Ml presentation .pptx
FayazAli8711 views
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko... by Deltares
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...
Deltares14 views
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ... by Deltares
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...
Deltares10 views
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the... by Deltares
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...
Deltares6 views
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t... by Deltares
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...
Deltares9 views
Sprint 226 by ManageIQ
Sprint 226Sprint 226
Sprint 226
ManageIQ5 views
Airline Booking Software by SharmiMehta
Airline Booking SoftwareAirline Booking Software
Airline Booking Software
SharmiMehta5 views
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx by animuscrm
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
animuscrm14 views
FIMA 2023 Neo4j & FS - Entity Resolution.pptx by Neo4j
FIMA 2023 Neo4j & FS - Entity Resolution.pptxFIMA 2023 Neo4j & FS - Entity Resolution.pptx
FIMA 2023 Neo4j & FS - Entity Resolution.pptx
Neo4j6 views
Quality Engineer: A Day in the Life by John Valentino
Quality Engineer: A Day in the LifeQuality Engineer: A Day in the Life
Quality Engineer: A Day in the Life
John Valentino5 views
Generic or specific? Making sensible software design decisions by Bert Jan Schrijver
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
Headless JS UG Presentation.pptx by Jack Spektor
Headless JS UG Presentation.pptxHeadless JS UG Presentation.pptx
Headless JS UG Presentation.pptx
Jack Spektor7 views
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema by Deltares
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - GeertsemaDSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema
Deltares17 views
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -... by Deltares
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...
Deltares6 views
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action by Márton Kodok
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionGen Apps on Google Cloud PaLM2 and Codey APIs in Action
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action
Márton Kodok5 views
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra... by Marc Müller
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra....NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
Marc Müller38 views

Dependency Bugs The Dark Side Of Variability, Reuse, and Modularity

  • 1. Anders Fischer-Nielsen Larsen, Zhoulai Fu IT University of Copenhagen Ting Su ETH Zurich Andrzej W ˛asowski IT University of Copenhagen @AndrzejWasowski Dependency Bugs The Dark Side Of Variability, Reuse, and Modularity c Andrzej W ˛asowski, IT University of Copenhagen 1
  • 2. c Andrzej W ˛asowski, IT University of Copenhagen 2
  • 3. Phantom? Menace? Unbelievably complex IT systems (low-level embedded sw, control, mechatronics, complex AI, unclear behavioral logics, concurrent, distributed, split between hardware-software-cloud, idiosyncratic) Community priorities: Innovation & Demonstration vs long term use Enjoyment: Testing, quality, documentation are boring. We use ROS for fun Meritocracy: The barrier of entry should be low. Most ROS users hold no CS degree 455 repositories in the official distribution, each containing several packages. Uncountable on GitHub. Alami. Dittrich. W ˛asowski. Influencers of quality assur- ance in an open source community. CHASE 2018 c Andrzej W ˛asowski, IT University of Copenhagen 3
  • 4. Cloning is recognized as a harmful practice, cred- ited for decreasing code quality and multiplying maintenance problems. A bug found in one clone can exist in other clones, thus, it needs to be fixed multiple times. Even just locating all cloned code may be nontrivial. Unintentional parallel devel- opment of the same functionality in different forks increases implementation and test costs. Finally, merging diverged code forks is very laborious. Software Reuse is our response to the attack of the clones, including Variability Management and Product Line Engineering Modularity (Component Based Development) Configurable components Stefan Stanciulescu. Sandro Schulze. Andrzej W ˛asowski. Forked and integrated variants in an open-source firmware project. ICSME 2015 c Andrzej W ˛asowski, IT University of Copenhagen 4
  • 5. . . . an open-source, meta-operating system for your robot. It provides the services you would expect from an operating system, including hardware abstraction, low-level device control, implementation of commonly-used functionality, message-passing between pro- cesses, and package management. It also provides tools and libraries for obtaining, build- ing, writing, and running code across multiple computers. communication middleware with uniform API 100s integrated HW drivers & SW components separates logics and algos from HW infrastructure for test, simulation, logging more tutorials than you can read; active friendly community Linux, Python, C++, C, Java c Andrzej W ˛asowski, IT University of Copenhagen 5
  • 6. package build script ... catkin_package( ... DEPENDS boost ... include_directories(SYSTEM ${Boost_INCLUDE_DIR}) ... target_link_libraries(ur10_moveit_plugin ... ${Boost_LIBRARIES} ... install(TARGETS ur5_moveit_plugin ur10_moveit_plugin ... CMakeLists.txt compile&link with boost install ur5_moveit_plugin install ur10_moveit_plugin a package manifest used for installation ... <run_depend>boost</run_depend> ... specification of exported libraries <library path="lib/libur10_moveit_plugin"> ... <library path="lib/libur5_moveit_plugin"> ... plugin.xml package.xml includes export libur10_moveit_plugin export libur10_moveit_plugin runtime dependency boost libraryTwo different bugs!Anders Fischer-Nielsen. Zhoulai Fu. Ting Su. Andrzej W ˛asowski. The Forgotten Case of the Dependency Bugs. ICSE SEIP’20 c Andrzej W ˛asowski, IT University of Copenhagen 6
  • 7. Dependency Bugs Extracted by qualitative analysis of bugs in the ROS Prestudy on 9 + 20 cases, study 455 repos → 118 have issues labeled ’bug’ Sample 50/50 with/without the term ’bug’, both positive and negative candidates A definition = a discriminating conditions. You need both positive and negative cases! Qualitatively analyze 100 cases, iteratively, with group discussions Final check on all 95 remaining positive cases in ROS Melodic Anders Fischer-Nielsen. Zhoulai Fu. Ting Su. Andrzej W ˛asowski. The Forgotten Case of the Dependency Bugs. ICSE SEIP’20 c Andrzej W ˛asowski, IT University of Copenhagen 7
  • 8. c Andrzej W ˛asowski, IT University of Copenhagen 8
  • 9. Dependency bugs appear silly, easy to fix, especially to package authors They are rarely experienced by the authors of the package They are unbelievably complex for newcomers and new users Researchers do not like them (Who likes the Sith?) Its other people’s plumbing kinda problem They are the price for having a flexible, composable, modular and configurable system Perhaps an acceptable price... (?) Anders Fischer-Nielsen. Zhoulai Fu. Ting Su. Andrzej W ˛asowski. The Forgotten Case of the Dependency Bugs. ICSE SEIP’20 c Andrzej W ˛asowski, IT University of Copenhagen 9
  • 10. Named must be your fear before banish it you can Heterogeneous: dependency specs come from different tech spaces (1+ package management systems, prog. language infrastructure, OS, DB, etc.) Independent (also organizationally independent) individuals control them Temporal: All these sources modify them at a different speeds, time cycles A dep. bug linter is not difficult to build due to complex inference algorithms, but due of difficulties in gathering and abstracting all necessary info continuously An analyzer designed from PL semantics perspective has no chance to find dep bugs. The PL lacks info about the build context. c Andrzej W ˛asowski, IT University of Copenhagen 10
  • 11. How pervasive are dependency bugs? Estimated accuracy of a simplistic classifier for issues 54% on positive cases, 88% on negative cases (tag "bug" + substring "depend") 53% packages affected by dependency bugs (based on the issue discussions) 30% contributors are affected by dependency problems or use time solving them Conditioned to contributors to affected packages, the above rises to 60% Dependency bugs attract a lot of discussion from multiple contributors, in fact the majority of the team. c Andrzej W ˛asowski, IT University of Copenhagen 11
  • 12. How expensive are dependency bugs? Average discussion of dependency bug includes 4 ± 4.09 comments in ROS Baseline: The average discussion of any bug includes 2.92 ± 3.42 comments in ROS Dependency bugs attract more discussion than other issues Dependency issues are often solved by senior members for junior members Discussion of dependency issues are common outside GitHub (on ROS-answers and Stack Overflow) c Andrzej W ˛asowski, IT University of Copenhagen 12
  • 13. Conclusion Dependency bugs are a special kind of feature interaction bugs Dependency bugs are a special kind of variability bugs Relatively simple, simplistic The ratio of annoyance to simplicity is unbelievably high They diminish the value produced by this community Eradicatable? Can we get rid of them? Are you the next Jedi to fight them? c Andrzej W ˛asowski, IT University of Copenhagen 13