Source-linked AI summary

Understanding the Factors that Impact the Popularity of GitHub Repositories

Hudson Borges, Andre Hora, Marco Tulio Valente

arXiv:1606.04984v3cs.SEcs.SI

TL;DR

The paper asks which factors shape GitHub repository popularity and how popularity develops, an important question because developers use stars to gauge user interest and release acceptance. It analyzes popular repositories using API-derived repository and historical-star data, compares popularity across languages and domains, and clusters growth histories. The study reports that language and application domain are associated with differing star distributions, and identifies four growth patterns, most commonly slow growth.

  • Problem

    Developers need evidence about whether repositories attract users and releases gain acceptance, but few studies examine software popularity on GitHub.

  • Method

    The study analyzes GitHub API data for popular repositories, comparing stars across languages and domains and examining historical star growth and releases.

  • Results

    Programming language and application domain have different star distributions, and slow growth is the most common of four identified patterns at 65.7%.

  • Takeaways & Limitations

    The identified factors and growth patterns provide developers with ways to understand repository popularity trends and past growth.

  • Takeaways & Limitations

    Growth-pattern analysis uses only stars from the last year because the clustering algorithm requires time series of equal length.

Abstract

from arXiv · show

Software popularity is a valuable information to modern open source developers, who constantly want to know if their systems are attracting new users, if new releases are gaining acceptance, or if they are meeting user's expectations. In this paper, we describe a study on the popularity of software systems hosted at GitHub, which is the world's largest collection of open source software. GitHub provides an explicit way for users to manifest their satisfaction with a hosted repository: the stargazers button. In our study, we reveal the main factors that impact the number of stars of GitHub projects, including programming language and application domain. We also study the impact of new features on project popularity. Finally, we identify four main patterns of popularity growth, which are derived after clustering the time series representing the number of stars of 2,279 popular GitHub repositories. We hope our results provide valuable insights to developers and maintainers, which can help them on building and evolving systems in a competitive software market.

I. INTRODUCTION

The paper investigates what influences GitHub repository popularity, motivated by developers’ need to understand user attraction, release acceptance, and competitiveness. It analyzes 2,500 popular repositories through four research questions and identifies growth patterns, supplemented by developer feedback.

  • Motivation: GitHub stars serve as a proxy for repository popularity because users can star projects to express interest or satisfaction.GitHub combines version control with social-coding features, including forks and pull requests.
  • Motivation: Existing research provides limited evidence about GitHub software popularity compared with extensive studies of other social platforms.Prior GitHub studies examined distinguishing popular Python repositories and popularity’s effect on documentation quality.
  • Study design: The study collected historical star data for 2,500 popular repositories and examined popularity by language, domain, owner, repository characteristics, release timing, and new features.The four research questions cover descriptive comparisons, correlations, timing of popularity, and release-related gains.
  • Contributions: The paper identifies four popularity-growth patterns by clustering repository star time series.These patterns are intended to help developers understand past growth and predict future trends.
  • Contributions: A qualitative study with 44 GitHub developers examines findings and themes from the quantitative investigation.The developer study forms the paper’s third part.
  • Contributions: The main contribution is an investigation of factors affecting GitHub repository popularity and of major patterns describing popularity trends.The authors present this as the first study focused on systems hosted in an ultra-large open-source repository.

II. DATASET

The dataset contains the top 2,500 public GitHub repositories by stars, characterized using API data on repository activity, programming language, ownership, and manually classified application domains. It is concentrated in several languages and domains, while contributor data and domain labels have specific measurement limitations.

  • Dataset scope: The study limits its dataset to the top 2,500 public repositories with the most GitHub stars.This focuses the analysis on highly popular systems and makes manual domain classification feasible.
  • Data collection: GitHub API data were collected on March 28, 2016, including current and historical star events, commits, contributors, forks, and other repository information.Five repositories exceeding 40K stars were excluded from analyses requiring complete historical star events.
  • Programming languages: JavaScript accounts for 855 repositories (34.2%), followed by Python with 203 (8.1%), Java with 202 (8.0%), Objective-C with 188 (7.5%), and Ruby with 178 (7.1%).The dataset covers systems in 53 programming languages.
  • Validity boundaries: Contributor counts come from the GitHub API and may differ from project-page counts, while manual domain classification is subject to errors.The API and classification procedures therefore introduce measurement and labeling boundaries.
  • Repository ownership: Organizations own 1,263 repositories (50.5%), while users own 1,237 (49.5%).Repositories are grouped by whether their owner is an organization or an individual user.
  • Application domains: The three largest application-domain groups are web libraries and frameworks with 837 repositories (33%), non-web libraries and frameworks with 641 (25%), and software tools with 470 (18%).Because GitHub does not provide domain labels, the authors manually classified repositories into six domains.

III. RESULTS

Repository popularity differs by programming language, application domain, and owner type, while correlating weakly with commits and contributors and strongly with forks. Repository age shows essentially no correlation with stars.

  • RQ #1: Programming language distributions differ significantly in popularity (p-value = 0.001), with JavaScript repositories having the highest median stars among the compared languages.The highest median values are JavaScript (3,697 stars), Go (3,549 stars), and HTML (3,513 stars).
  • RQ #1: Application-domain distributions differ significantly in popularity (p-value < 0.001), led by systems software with a median of 3,807 stars.The lowest listed median is 3,204 stars for non-web libraries and frameworks.
  • RQ #1: Organization-owned repositories have more median stars than user-owned repositories: 3,622 versus 3,298 (p-value < 0.001).The authors hypothesize that greater funding and resources may explain the higher popularity of organization-owned repositories.
  • RQ #2: Stars are not correlated with repository age (rho = 0.0757), but are weakly correlated with commits (rho = 0.249) and contributors (rho = 0.341).The examples contrast a five-month repository with 28,105 stars and an over-eight-year repository with 2,440 stars.
  • RQ #2: Stars and forks have a strong positive correlation (rho = 0.549 and p-value < 0.001), with only nine systems having more forks than stars.Bootstrap and Angular.js rank similarly for stars and forks, while unusual cases include a forking tutorial and a popular puzzle game.

RQ #3: How early do repositories get popular?

Repositories often receive an early burst of stars after their first public release, after which popularity growth tends to stabilize for about half of the repositories.

  • RQ #3: Around 40% of repositories receive 10% of their stars very early, in the first days after the initial release.The paper hypothesizes that early adopters contribute many of these initial stars.
  • RQ #3: Half of repositories take 51% of their age to receive 50% of their stars and 91% of their age to receive 90%.These values indicate that the initial burst is followed by slower, stabilizing growth for many repositories.
  • RQ #3: Repositories tend to receive more stars immediately after their first public release, followed by a stabilized growth rate for half of the repositories.The summary characterizes popularity gains as concentrated near the first public release.

RQ #4: What is the impact of new features on popularity?

New releases are associated with accelerated short-term star gains, especially immediately after releases, but release weeks do not account for most popularity growth because they are relatively infrequent.

  • RQ #4: One rapidly releasing repository received 89.1% of its stars in the weeks after releases.SO-FANCY/DIFF-SO-FANCY was 53 days old and had 4,402 stars when described.
  • RQ #4: The FS/FT ratio decreases as the post-release interval expands from one to four weeks for both major and all releases.The paper concludes that release-related star gains tend to diminish after a few weeks.
  • RQ #4: Half of repositories gain at least 53% more stars in the week following major releases than in other weeks.Despite this acceleration, 75% of systems gain at most 4.3% of their stars in that week.
  • RQ #4: Release weeks do not produce a major concentration of popularity gain because repositories usually have many more weeks without releases.This reconciles short-term acceleration after releases with the limited overall share of stars gained during release weeks.

IV. POPULARITY GROWTH PATTERNS

The study identifies popularity-growth patterns by clustering GitHub repositories’ star-count time series. KSC groups series by similar shape, while βCV selects the cluster count.

  • KSC clusters time series with similar shapes using a metric invariant to scaling and shifting.
  • The analysis uses the last 52 weeks of data because KSC requires time series of equal length.Repositories with less than 52 weeks are excluded.
  • 216 repositories, or 8.6%, are excluded because they have less than 52 weeks of data.
  • βCV selects the smallest k after which the ratio of intra- and intercluster distance variation remains roughly stable.The values stabilize at k = 4 in this dataset.

A. Proposed Growth Patterns

Clustering reveals four growth patterns based on the shape and speed of repositories’ star accumulation. They range from linear slow growth to sudden viral growth.

  • Proposed Growth Patterns: Clusters C1, C2, and C3 indicate linear growth at different speeds, while C4 indicates sudden star growth.
  • Proposed Growth Patterns: The four patterns are named Slow, Moderate, Fast, and Viral Growth, respectively.
  • Proposed Growth Patterns: Slow growth dominates the sample, comprising 65.7% of repositories.Its centroid gains 27.3% new stars over the 52-week analysis period.
  • Proposed Growth Patterns: Viral Growth describes repositories with massive star growth in a short period.

B. Growth Patterns vs Repositories Properties

Growth patterns vary across programming languages and application domains. Slow growth is especially common among web libraries and frameworks, while some languages show relatively more fast or viral growth.

  • Programming Languages: Ruby, CSS, and HTML have the highest percentages of systems with slow growth: 92%, 82%, and 79%, respectively.
  • Programming Languages: Go and Java have the highest percentages of systems with fast growth, at 7.6% each.For Java, 61 of 95 repositories with fast growth are Android applications.
  • Programming Languages: JavaScript has the most repositories with viral growth, followed by C++ and Python; Python has a 2.7% viral-growth share.Ruby follows with 1.6% of systems showing viral growth.
  • Application Domains: Web libraries and frameworks show predominantly slow growth, with 75% following that pattern.They account for 837 repositories, or 33% of the dataset, and 42.8% of the top-10% repositories by stars.
  • Application Domains: The paper hypothesizes that intense competition and the prevalence of highly popular systems help explain slow growth among web libraries and frameworks.

V. FEEDBACK FROM DEVELOPERS

Follow-up surveys examine repository ownership and successful releases. Responses suggest that individual owners value personal credit, while successful features commonly originate with maintainers or users.

  • Impact on Popularity of Repositories Owned by Users: All surveyed individual developers rejected plans to migrate their repositories to organization accounts.Two cited the importance of appearing explicitly as the repository owner.
  • Impact on Popularity of Repositories Owned by Users: “I worked hard to create the project” was given as a reason to retain personal ownership for proper credit.
  • Impact on Popularity of Repositories Owned by Users: Four developers, or 80%, said migration to an organization account would not help attract more users.One respondent said the effect depends on whether the organization is well known.
  • Characteristics of Successful Releases: The survey of 60 highly successful releases received 25 responses, a 41.6% response ratio.
  • Characteristics of Successful Releases: Features in successful releases usually came from maintainers’ ideas or user suggestions, with 23 and 11 responses, respectively.

C. Reasons for Viral Growth

Viral growth was examined through developer explanations of star-count peaks, while the study’s popularity measure and dataset impose interpretive limits.

  • C. Reasons for Viral Growth: 63% response rate: 14 of 22 developers with viral growth were contacted and responded to the peak-explanation survey.The surveyed systems were selected because their star time series showed viral growth and their developers had public email addresses.
  • C. Reasons for Viral Growth: 78.5% of responding developers linked popularity peaks to social-media posts, mostly on Hacker News.The table reports that 11 developers attributed the peaks to social-media exposure.
  • C. Reasons for Viral Growth: Hacker News and GitHub Explore exposure generated traffic that translated into a considerable number of stars for one project.The developer described sustained front-page and featured-repository visibility before the star increase.
  • C. Reasons for Viral Growth: Stars are treated as popularity proxies, although developers may also star repositories as bookmarks for later analysis.Thus, a star does not necessarily indicate satisfaction with the repository.
  • C. Reasons for Viral Growth: The dataset focuses on the 2,500 most-starred repositories, representing a small fraction of GitHub’s repositories.This scope targets highly popular systems rather than GitHub repositories generally.
  • C. Reasons for Viral Growth: Application-domain classifications were performed manually and are therefore subject to errors and inaccuracies.Dubious decisions were discussed by two authors as a mitigation.
  • C. Reasons for Viral Growth: Growth-pattern analysis used stars from only the last year because the clustering algorithm requires equal-length time series.The selected cluster count was also controlled with a heuristic based on intra- and intercluster distance variations.

VII. RELATED WORK

Prior work studies popularity in mobile apps, repositories, and social platforms, but this paper tracks popularity over time on GitHub and reports repository-level growth patterns and correlates.

  • VII. RELATED WORK: Mobile-app studies link popularity with code properties, while external factors such as promotional images can be especially influential.Related work also examines API quality, changes, and bugs in relation to app success.
  • VII. RELATED WORK: Machine-learning research on Python repositories found in-code features more important than author metadata for distinguishing popular projects.Other repository studies suggest standard folders such as doc, test, and examples may affect project popularity.
  • VII. RELATED WORK: Studies of software quality report mixed relationships with popularity, including no correlation in most Maven component cases and lower quality with firm involvement.The latter study nevertheless found that firms’ participation improved popularity.
  • VII. RELATED WORK: This study claims to be the first to track popularity over time on social code-sharing sites such as GitHub.Earlier related studies examined other contexts, including App Stores, video-sharing sites, and social platforms.
  • VII. RELATED WORK: GitHub popularity analysis found strong star–fork correlation, weaker star–commit and star–contributor correlations, and four clustered growth patterns.The paper also reports that repositories tend to gain stars after release and that slow growth is the most common pattern at 65.7%.
  • VII. RELATED WORK: Future work proposes comparing not-yet-popular repositories with popular ones and developing models to predict software popularity.The authors also plan relative popularity measures conditioned on programming language.
Loading 1606.04984v3…