对 ruby/spec 的贡献

  • Written by Benoit Daloze in 2025: Maintains ruby/spec and wonders about Ruby implementation contributions.
  • Contribution Overview:

    • Rubinius started ruby/spec in 2006 and was the main contributor until 2014. Then development slowed and spec contributions decreased.
    • TruffleRuby started in 2014 and became the main contributor since, contributing more than half of commits.
    • CRuby has consistently contributed around 20% each year, implementing new methods first.
    • JRuby contributed significantly until 2012 but has made few since.
    • Natalie started in 2019 and made significant contributions since 2022, thanks to @herwinw.
    • External contributors have always been important, with a huge spike in 2009 due to @runpaint.
  • Before 2008: First specs added directly in Rubinius repo in 2006. Commits from 2006 to 2008 are in a changelog but not in the repo history. Chart data is incomplete for first and last years.
  • Methodology:

    • Individual author contributions available on GitHub.
    • Data computed by a script and chart generated by another script.
    • GitHub API only provides stats for top 100 contributors.
    • Authors classified by Ruby implementation based on top 100 contributors.
    • Commits are not a perfect measure but the best available.
  • More Charts:

    • Redid chart with 100 commits minimum to classify authors. Result similar with more external contributors.
    • Chart with absolute commit numbers instead of relative to per year. 2025 commits are fewer as it's only May.
  • Conclusion:

    • ruby/spec is key for correct and efficient Ruby implementation.
    • It provides more precise coverage than documentation and relies on external contributions.
    • CRuby test suite alone is not enough to implement Ruby correctly.
    • ruby/spec's spec structure encourages more comprehensive testing compared to CRuby's unit tests.
    • Intends to pick 10 random methods to compare specs and tests in a future blog post.
阅读 17
0 条评论