RubyGems Update Arc Case

Updating Ruby in OpenSolaris to add support for later versions of RubyGems

Amanda Waite <amanda.waite@sun.com>

07 January 2008

1. Summary and motivation

	1.1. Introduction

	This project will deprecate certain interfaces that were provided as discrete executables
	by Ruby Gems 0.9.4 and which were included in PSARC/2007/600. In RubyGems 1.3.1, the
	functionality provided by many of these executables is now implemented in the core RubyGems
	executable 'gem', other functionality now uses standard Ruby tools such as 'ri'.

	An update from RubyGems 0.9.4 to RubyGems 1.3.1 is an absolute requirement as Ruby on
	Rails versions > 2.1.0 require RubyGems 1.1.1 or greater while Ruby on Rails 2.2.2
	specifically requires RubyGems 1.3.1

	This case seeks micro release binding.

2. Technical Description

	2.1. Details

	This project will mark the deprecated interfaces as obsolete and will update all relevant
	documentation to reflect this change. The interfaces themselves will be updated to emit
	a warning to indicate that it's usage has been deprecated and detail how similar functionality
	can be achieved through the use of other commands. The changes will also be documented on
	publicly accessible web sites including blogs and project pages.
	
	These changes will follow the guidelines for obsoleting interfaces here:
	http://opensolaris.org/os/community/arc/policies/obsolete-eof/

	2.2. Ongoing updates
	
	Although RubyGems no longer includes these executables (the interfaces to be obsoleted) there
	is still a requirement to continue to provide updates to RubyGems in the affected packages.
	As such, these updates will include scripts of the same name as the deprecated executables
	that wrap the same functionality as provided by the gem command and standard Ruby tools. These
	scripts will be removed with the expiry of the one year timer that starts after acceptance of
	this ARC case. Additional details of how the functionality of the deprecated executable
        is accessed in the update are available in Appendix 1.
	
	2.3 Exported Interfaces
		                                                
	NAME                                        STABILITY                 NOTES

	/usr/ruby/[version]/bin
                        erb                         Uncommitted               Executable
                        gem                         Uncommitted               Executable
                        irb                         Uncommitted               Executable
                        rdoc                        Uncommitted               Executable
                        ri                          Uncommitted               Executable
                        ruby                        Uncommitted               Executable
                        testrb                      Uncommitted               Executable

	                gem_mirror                  Obsolete Uncommitted      Executable
	                gem_server                  Obsolete Uncommitted      Executable
	                gemlock                     Obsolete Uncommitted      Executable
	                gemri                       Obsolete Uncommitted      Executable
	                gemwhich                    Obsolete Uncommitted      Executable
	                index_gem_repository.rb     Obsolete Uncommitted      Executable
	                update_rubygems             Obsolete Uncommitted      Executable

    /usr/bin/
                        erb                         Volatile                  Symbolic link
                        gem                         Volatile                  Symbolic link
                        irb                         Volatile                  Symbolic link
                        rdoc                        Volatile                  Symbolic link
                        ri                          Volatile                  Symbolic link
                        ruby                        Volatile                  Symbolic link
                        testrb                      Volatile                  Symbolic link
                        update_rubygems             Volatile                  Symbolic link

                        gem_mirror                  Obsolete Volatile         Symbolic link
                        gem_server                  Obsolete Volatile         Symbolic link
                        gemlock                     Obsolete Volatile         Symbolic link
                        gemri                       Obsolete Volatile         Symbolic link
                        gemwhich                    Obsolete Volatile         Symbolic link
                        index_gem_repository.rb     Obsolete Volatile         Symbolic link
                        update_rubygems             Obsolete Volatile         Symbolic link

                        erb18                       Uncommitted               Symbolic link
                        gem18                       Uncommitted               Symbolic link
                        irb18                       Uncommitted               Symbolic link
                        rdoc18                      Uncommitted               Symbolic link
                        ri18                        Uncommitted               Symbolic link
                        ruby18                      Uncommitted               Symbolic link
                        testrb18                    Uncommitted               Symbolic link
 
                        gem_mirror18                Obsolete Volatile         Symbolic link
                        gem_server18                Obsolete Volatile         Symbolic link
                        gemlock18                   Obsolete Volatile         Symbolic link
                        gemri18                     Obsolete Volatile         Symbolic link
                        gemwhich18                  Obsolete Volatile         Symbolic link
                        index_gem_repository.rb18   Obsolete Volatile         Symbolic link
                        update_rubygems18           Obsolete Volatile         Symbolic link

        /usr/share/man/man1/
                        ruby.1                      Volatile                  Symbolic link

        /usr/ruby/1.8/share/man/man1/
                        ruby.1                      Uncommitted               Man Page
	
	
	2.4 Changes to documentation
	
        The gem[1] man page will be updated to include information on how to access the new functionality 
	provided by the 'gem' command that replaces that provided by the deprecated executables.
	
	2.5 Packaging and Delivery
	
	The changes described will be implemented in the update of the SUNWruby18[r|u] packages to include
	RubyGems 1.3.1. There should otherwise be no obvious changes to the packaging.

Appendix 1

RubyGems 1.3.1 commands used to provide similar functionality as that provided by the deprecated executables

        gem_mirror                gem mirror -v
        gemwhich                  gem which -v
        gemri                     ri --gems --doc-dir
        index_gem_repository.rb   gem generate_index
        gem_server                gem server
        gem_lock                  gem lock
        update_rubygems           gem update --system

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

Sign up or Log in to add a comment or watch this page.


The individuals who post here are part of the extended Sun Microsystems community and they might not be employed or in any way formally affiliated with Sun Microsystems. The opinions expressed here are their own, are not necessarily reviewed in advance by anyone but the individual authors, and neither Sun nor any other party necessarily agrees with them.

Copyright 1994-2009 Sun Microsystems, Inc.
Powered by Atlassian Confluence
Sun Guidelines on Public Discourse Privacy Policy Terms of Use Trademarks Site Map Employment Investor Relations Contact