Source originale du contenu
We calculate the Truck Factor for 133 popular GitHub applications, in six languages: JavaScript (22 systems), Python (22 systems), Ruby (33 systems) , C/C++ (18 systems), Java (21 systems), and PHP (17 systems). We also used github/linguist to discard non-source code files (e.g., documentation) and also third-party files.
To calculate the truck factor, we use a greedy heuristic: we consecutively remove the author with more authored files in a system, until more than 50% of the system's files are orphans (i.e., without author). We are considering that a system is in trouble if more than 50% of its files are orphans.
TF = 1: activeadmin/activeadmin, alexreisner/geocoder, atom/atom-shell, bjorn/tiled, bumptech/glide, caskroom/homebrew-cask, celery/celery, celluloid/celluloid, clojure/clojure, codemirror/CodeMirror, dropwizard/dropwizard, dropwizard/metrics, elasticsearch/logstash, erikhuda/thor, Eugeny/ajenti, getsentry/sentry, github/android, gruntjs/grunt, jadejs/jade, janl/mustache.js, jnicklas/capybara, jrburke/requirejs, justinfrench/formtastic, kivy/kivy, koush/ion, kriswallsmith/assetic, Leaflet/Leaflet, less/less.js, mailpile/Mailpile, mbostock/d3, meskyanichi/backup, mitchellh/vagrant, mitsuhiko/flask, mongoid/mongoid, nate-parrott/Flashlight, netty/netty, nicolasgramlich/AndEngine, omab/django-social-auth, openframeworks/openFrameworks, paulasmuth/fnordmetric, phacility/phabricator, plataformatec/devise powerline/powerline, puphpet/puphpet, pydata/pandas, ratchetphp/Ratchet, ReactiveX/RxJava, sampsyo/beets, sandstorm-io/capnproto, sass/sass, sebastianbergmann/phpunit, sferik/twitter, silexphp/Silex, sparklemotion/nokogiri, sstephenson/sprockets, strongloop/express, substack/node-browserify, ThinkUpLLC/ThinkUp, thoughtbot/factory_girl, thoughtbot/paperclip, wp-cli/wp-cli
TF = 2: ajaxorg/ace, ansible/ansible, apache/cassandra, bbatsov/rubocop, bundler/bundler bup/bup, composer/composer, cucumber/cucumber, divio/django-cms driftyco/ionic, drupal/drupal, elasticsearch/elasticsearch, excilys/androidannotations, facebook/osquery, facebook/presto, FriendsOfPHP/PHP-CS-Fixer, github/linguist, haml/haml, Itseez/opencv, jashkenas/backbone, jekyll/jekyll, JohnLangford/vowpal_wabbit, jquery/jquery-ui libgdx/libgdx, moment/moment, mozilla/pdf.js, mrdoob/three.js, prawnpdf/prawn Respect/Validation, rg3/youtube-dl, SFTtech/openage, spring-projects/spring-framework, thinkaurelius/titan, thumbor/thumbor WordPress/WordPress, xetorthio/jedis, yiisoft/yii2
TF = 3: bitcoin/bitcoin, boto/boto, BVLC/caffe, gradle/gradle, ipython/ipython jquery/jquery, meteor/meteor, Shopify/active_merchant, spotify/luigi
TF = 4: chef/chef, cocos2d/cocos2d-x, emberjs/ember.js, iojs/io.js, ruby/ruby
TF = 5: diaspora/diaspora, django/django, joomla/joomla-cms, resque/resque, TryGhost/Ghost
TF = 6: puppetlabs/puppet, scikit-learn/scikit-learn
TF = 7: rails/rails
TF = 8: git/git ,JetBrains/intellij-community, Seldaek/monolog, v8/v8, webscalesql/webscalesql-5.6
TF = 9: saltstack/salt
TF = 10: fog/fog
TF = 11: odoo/odoo, php/php-src
TF = 12: android/platform_frameworks_base
TF = 21: fzaninotto/Faker
TF = 90: torvalds/linux
TF = 159: Homebrew/homebrew
Our results are summarized as follows:
-
Most systems have a small truck factor:
- 61 systems have TF=1 (46%), including systems like mbostock/d3, and clojure/clojure.
- 37 systems have TF=2 (28%), including systems like cucumber/cucumber, mrdoob/three.js, mozilla/pdf.js, spring-projects/spring-framework.
The two systems with the highest Truck Factor are torvalds/linux (TF = 90) and Homebrew/homebrew (TF = 159).