@@ -17,55 +17,31 @@ The topics related to Ruby development covered here are:
1717* [ Improving Ruby, Patch by Patch] ( #patching-ruby )
1818* [ Rules for Core Developers] ( #coding-standards )
1919
20- ### Using Subversion to Track Ruby Development
21- {: #following-ruby}
20+ ### Using Git to Track Ruby Development
2221
23- Getting the latest Ruby source code is a matter of an anonymous checkout
24- from the [ Subversion] [ 1 ] repository. From your command line:
22+ The current primary repository of the latest Ruby source code is
23+ [ git.ruby-lang.org/ruby.git] [ gitrlo ] .
24+ There is also a [ mirror on GitHub] [ 7 ] . Usually, please use this mirror.
25+
26+ You can get the latest Ruby source code by using Git.
27+ From your command line:
2528
2629{% highlight sh %}
27- $ svn co https://svn.ruby-lang.org/repos/ ruby/trunk ruby
30+ $ git clone https://github.com/ ruby/ruby.git
2831{% endhighlight %}
2932
3033The ` ruby ` directory will now contain the latest source code
3134for the development version of Ruby (ruby-trunk).
32- Currently patches applied to the trunk are backported to the stable
33- {{ site.svn.stable.version }}, {{ site.svn.previous.version }},
34- and {{ site.svn.old.version }} branches (see below).
35-
36- If you’d like to follow patching of Ruby {{ site.svn.stable.version }},
37- you should use the ` {{ site.svn.stable.branch }} ` branch when checking out:
3835
39- {% highlight sh %}
40- $ svn co https://svn.ruby-lang.org/repos/ruby/branches/{{ site.svn.stable.branch }}
41- {% endhighlight %}
36+ See also [ Non-committer’s HOWTO to join our development] [ noncommitterhowto ] .
4237
43- Similarly for Ruby {{ site.svn.previous.version }}:
38+ If you have commit access, and if you want to push something,
39+ you should use the primary repository.
4440
4541{% highlight sh %}
46- $ svn co https://svn .ruby-lang.org/repos/ ruby/branches/{{ site.svn.previous.branch }}
42+ $ git clone git@git .ruby-lang.org: ruby /ruby.git
4743{% endhighlight %}
4844
49- This will check out the respective development tree into a
50- ` {{ site.svn.stable.branch }} ` or ` {{ site.svn.previous.branch }} ` directory.
51- Developers working on the maintenance branches are expected to migrate
52- their changes to Ruby’s trunk, so often the branches are very similar,
53- with the exception of improvements made by Matz and Nobu to the language
54- itself.
55-
56- If you prefer, you may browse [ Ruby’s Subversion repository via the web] [ 2 ] .
57-
58- For information about Subversion, please see the [ Subversion FAQ] [ 3 ]
59- and the [ Subversion book] [ 4 ] . Alternatively, you may find
60- [ Pragmatic Version Control with Subversion] [ 5 ] to be a useful introductory book.
61-
62- ### How to Use Git With the Main Ruby Repository
63- {: #git-ruby}
64-
65- Those who prefer to use [ Git] [ 6 ] over Subversion can find instructions
66- with the [ mirror on GitHub] [ 7 ] , both for [ those with commit access] [ 8 ]
67- and [ everybody else] [ 9 ] .
68-
6945### Improving Ruby, Patch by Patch
7046{: #patching-ruby}
7147
@@ -81,25 +57,24 @@ straight from Matz, on how to get your patches considered.
8157
8258To summarize, the steps for building a patch are:
8359
84- 1 . Check out a copy of the Ruby source code from Subversion .
60+ 1 . Check out a copy of the Ruby source code from GitHub .
8561 Usually patches for bugfixes or new features should be submitted
86- for the trunk of Ruby’s source. Even if you wish to add a feature
87- to Ruby {{ site.svn.previous.version }}, it has to be proven in
88- the trunk first.
62+ for the trunk of Ruby’s source.
8963
90- $ svn co https://svn.ruby-lang.org/repos/ ruby/trunk ruby
64+ $ git clone https://github.com/ ruby/ruby.git
9165
9266 If you are fixing a bug that is specific to only one maintenance branch,
93- check out a copy of the respective branch,
94- e.g. ` {{ site.svn.previous.branch }} ` .
67+ check out a copy of the respective branch.
9568
96- $ svn co https://svn.ruby-lang.org/repos/ruby/branches/{{ site.svn.previous.branch }}
69+ $ git checkout ruby_X_X
70+
71+ X_X should be replaced with a version that you want to check out.
9772
98732 . Add your improvements to the code.
9974
100753 . Create a patch.
10176
102- $ svn diff > ruby-changes.patch
77+ $ git diff > ruby-changes.patch
10378
104794 . Create a ticket in the [ issue tracker] [ 10 ] or email your patch to
10580 the [ Ruby-Core mailing list] [ mailing-lists ] with a ChangeLog entry
@@ -120,47 +95,40 @@ should be very low, topics should be pointed, well-conceived and
12095well-written. Since we’re addressing Ruby’s creator, let’s have some
12196reverence.
12297
123- Keep in mind that Ruby’s core developers live in Japan and, while many
98+ Keep in mind that many Ruby’s core developers live in Japan and, while many
12499speak very good English, there is a significant timezone difference.
125100They also have an entire body of Japanese development lists happening
126101alongside the English counterparts. Be patient, if your claim isn’t
127102resolved, be persistent—give it another shot a few days later.
128103
129- ### Rules for Core Developers
130- {: #coding-standards}
131104
132- Generally, the developers of Ruby should be familiar with the source
133- code and the style of development used by the team. To be clear, the
134- following guidelines should be honored when checking into Subversion:
105+ ### Note about branches
106+
107+ The source code of Ruby had been managed under Subversion repository until 22rd April 2019.
108+ Thus, some branches may be still managed under Subversion.
109+ You can view the SVN repository.
135110
136- * All check-ins should be described in the ` ChangeLog ` , following the
137- [ GNU conventions] [ 14 ] . (Many Ruby core developers use Emacs ` add-log `
138- mode, which can be accessed with the command ` C-x 4 a ` .)
139- * Check-in dates should be given in Japan Standard Time (UTC+9).
140- * The bulleted points from your ChangeLog should also be placed in the
141- Subversion commit message. This message will be automatically mailed
142- to the Ruby-CVS list after you commit.
143- * Function prototypes are used throughout Ruby’s source code and its
144- packaged extensions.
145- * Please, do not use C++-style comments (` // ` ), Ruby’s maintainers
146- instead prefer the standard C multi-line comment (` /* .. */ ` ).
111+ * [ < ; URL:https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?root=ruby > ; ] [ svn-viewvc ]
147112
148- See also the information in [ Ruby’s issue tracker] [ 10 ] .
113+ However, you don't have to care about it (unless you are a branch maintainer).
114+ You can check out the branches in your Git working copy.
115+ For example, run the following command.
116+
117+ {% highlight sh %}
118+ $ git checkout ruby_X_X
119+ {% endhighlight %}
149120
121+ X_X should be replaced with a version that you want to check out.
150122
123+ If you want to modify the branches, please open an issue in our [ issue tracker] [ 10 ] .
124+ See also the following section.
151125
126+ [ gitrlo ] : https://git.ruby-lang.org/ruby.git
152127[ mailing-lists ] : /en/community/mailing-lists/
153128[ writing-patches ] : /en/community/ruby-core/writing-patches/
154- [ 1 ] : http://subversion.apache.org/
155- [ 2 ] : https://svn.ruby-lang.org/cgi-bin/viewvc.cgi/
156- [ 3 ] : http://subversion.apache.org/faq.html
157- [ 4 ] : http://svnbook.org
158- [ 5 ] : http://www.pragmaticprogrammer.com/titles/svn/
159- [ 6 ] : http://git-scm.com/
129+ [ noncommitterhowto ] : https://github.com/shyouhei/ruby/wiki/noncommitterhowto
130+ [ svn-viewvc ] : https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?root=ruby
160131[ 7 ] : https://github.com/ruby/ruby
161- [ 8 ] : https://github.com/shyouhei/ruby/wiki/committerhowto
162- [ 9 ] : https://github.com/shyouhei/ruby/wiki/noncommitterhowto
163132[ 10 ] : https://bugs.ruby-lang.org/
164133[ 12 ] : http://www.gnu.org/software/diffutils/manual/html_node/Unified-Format.html
165134[ 13 ] : http://www.gnu.org/software/diffutils/manual/html_node/Merging-with-patch.html#Merging%20with%20patch
166- [ 14 ] : http://www.gnu.org/prep/standards/standards.html#Change-Logs
0 commit comments