Skip to main content

Contributor Domain Persona

In the Domain Persona Model, we first categorize the contributions made by contributors to the community by domain or type. We strive to atomize the contribution domains more finely, matching our current engineering capabilities. However, this categorization process is an ongoing evolution, and as our engineering capabilities improve, we will be able to achieve more granular domain divisions.

For observation-type contributions, issue-type contributions, and code-type contributions, we can use insights provided by code hosting platforms (such as GitHub, Gitee, etc.). For other types of contributions, due to differences in community usage and extent, currently we can only provide limited data sources as references. However, as our engineering capabilities gradually improve, we may provide more solutions.

image

  • Observation-type contributions: Contributors express interest and attention to a project through actions like star, fork, and watch, which can enhance and showcase the project's level of attention but do not directly contribute to the project.
  • Issue-type contributions: Contributions related to issues can be categorized based on the type of issues, such as usage inquiries, bug reports, task planning, etc. However, we currently lack a universal solution to identify issue types. Therefore, we classify contributions into two types based on contributor behavior in issues: regular contributions and management contributions.
    • Regular Issue contributions: Issue creation and comments.
    • Management Issue contributions: Eight types of management actions, including labeling, closing, reopening, assigning responsibility, marking as duplicate, migrating, milestones, and locking comments. While these contributions are often overlooked, they are crucial for community managers to ensure smooth issue handling, and thus, we should include them in the observation scope.
  • Code-type contributions: Similar to Issue-type contributions, we categorize code contributions into regular and management contributions:
    • Regular Code contributions: Code development, Pull Request creation, and Code Review.
    • Management Code contributions: Code direct submissions, along with ten types of Pull Request management actions, including labeling, closing, reopening, assigning responsibility, marking as duplicate, migrating, milestones, locking comments, merging, and reviewing, and so on. Similar to Issue management contributions, these management actions require significant effort from community managers to ensure smooth code integration.
  • Forum-type contributions: If an open source community builds forum services based on frameworks that provide publicly accessible data channels, such as Discourse, we can observe contributions to the forum, such as creating topics and comments.
  • Chat platform-type contributions: We support data inspection methods based on chat platforms like Slack, Discord, etc.
  • Media platform-type contributions: Currently, our data mainly comes from Twitter.
  • Event-type contributions: Our data currently depends on manual input, including online and offline events.
  • Sponsor: Cash donations.

Metrics in the Metrics Model

Code Contributor Count

  • Definition: How many active code class contributors in the last 90 days.
  • Weight: 16%
  • Threshold: 500

Code Contribution Count

  • Definition: The number of contributions per capita for contributors in the active code class in the last 90 days.
  • Weight: 24%
  • Threshold: 15

Issue Contributor Count

  • Definition: How many active issue class contributors in the last 90 days.
  • Weight: 16%
  • Threshold: 1000

Issue Contribution Count

  • Definition: The number of contributions per capita for contributors in the active issue class in the last 90 days.
  • Weight: 24%
  • Threshold: 10

Observation Contributor Count

  • Definition: How many active observation class contributors in the last 90 days.
  • Weight: 8%
  • Threshold: 2000

Observation Contribution Count

  • Definition: The number of contributions per capita for contributors in the active observation class in the last 90 days.
  • Weight: 12%
  • Threshold: 2

Metric Model Algorithm

Weight

We use AHP to calculate weight of each metric.

AHP Input Data

Metric NameCode Contributor CountCode Contribution CountIssue Contributor CountIssue Contribution CountObservation Contributor CountObservation Contribution Count
Code Contributor Count1.0000.6671.0000.6672.0001.333
Code Contribution Count1.5001.0001.5001.0003.0002.000
Issue Contributor Count1.0000.6671.0000.6672.0001.333
Issue Contribution Count1.5001.0001.5001.0003.0002.000
Observation Contributor Count0.8000.5000.3330.5000.3331.0000.667
Observation Contribution Count0.7500.5000.7500.5001.5001.000

AHP Analysis Result

Metrics NameEigenvectorWeight
Code Contributor Count0.96016.000%
Code Contribution Count1.44024.000%
Issue Contributor Count0.96016.000%
Issue Contribution Count1.44024.000%
Observation Contributor Count0.4808.000%
Observation Contribution Count0.72012.000%

Consistency Test Results

Largest EigenvalueCI ValueRI ValueCR ValueConsistency Test
6.0000.0001.2600.000PASS

Threshold

The threshold we chose is based on the big-data observations from different types of open source projects.

References

Contributors

Frontend

  • Shengxiang Zhang
  • Feng Zhong
  • Xingyou Lai

Backend

  • Yehui Wang
  • Shengxiang Zhang
  • Shengbao Li
  • Huatian Qin

Metric Model

  • Yehui Wang
  • Liang Wang
  • Shengbao Li

Copyright © 2023 OSS compass. All Rights Reserved.