Feature #5481

Updated by matz (Yukihiro Matsumoto) over 5 years ago


 Up-to-date summary of this proposal is at ((<URL:>)) ((<>)) 

 == Motivation 

  * ruby's release cycle is slow for some standard libraries; 
    * ex. security fix for WEBrick, xmlrpc and Zlib. 
    * ex. API iteration for net/http, OpenSSL, json, psych, RDoc, minitest and rake. 
  * There's already the feature called 'default gems' in ruby and some stdlibs are already using it: 
    * rake, rdoc, minitest, json, io-console, bigdecimal 
    * And some gems are already doing out-of-band releases. 
  * When releasing we should give independence equally to all stdlibs, but in a consistent and controllable way. 

 == Proposal 

  * Allow out-of-band stdlib releases. 
    * We are not proposing changes to ruby's release management, the release manager would decide when they release ruby and stdlib. 
  * Allow more stdlibs to be installed as a 'default gem' 
  * Register these gems on 
    * Introduce a new mechanism: controlling supported ruby version so that we can avoid installing unexpected version of stdlib gems. 
      For example, a WEBrick gem for ruby 2.0.1 (released from ruby_2_0_1 branch) should not be installed for ruby 2.0.0 (released from ruby_2_0_0 branch) unless we know it works for both 2.0.0 and 2.0.1. 


  * Moving stdlibs repository location is not a target of this proposal. The implementation details of stdlib gems should hide this from ruby committers. 
  * ruby_1_9_3 is not a target of this proposal. The change should be introduced from 2.0.0 release. 

 ...Some more details of the proposal and discussion topics are going to follow as comments.