-
Notifications
You must be signed in to change notification settings - Fork 608
/
index.html
361 lines (252 loc) · 11 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
<!DOCTYPE html>
<html>
<head>
<title>How-To - Write a Ticket - Rubinius</title>
<meta content='text/html;charset=utf-8' http-equiv='content-type'>
<meta content='pl' http-equiv='content-language'>
<meta content='Rubinius is an implementation of the Ruby programming language. The Rubinius bytecode virtual machine is written in C++. The bytecode compiler is written in pure Ruby. The vast majority of the core library is also written in Ruby, with some supporting primitives that interact with the VM directly.' name='description'>
<meta content='Less Than Three. <3. http://less.thanthree.com' name='author'>
<link href='/' rel='home'>
<link href='/' rel='start'>
<link href='/doc/pl/how-to' rel='prev' title='How-To'>
<link href='/doc/pl/how-to/write-a-ruby-spec' rel='next' title='Write a Ruby Spec'>
<!--[if IE]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script><![endif]-->
<script src="/javascripts/jquery-1.3.2.js" type="text/javascript"></script>
<script src="/javascripts/paging_keys.js" type="text/javascript"></script>
<script src="/javascripts/application.js" type="text/javascript"></script>
<style>article, aside, dialog, figure, footer, header, hgroup, menu, nav, section { display: block; }</style>
<link href="/stylesheets/blueprint/screen.css" media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/blueprint/print.css" media="print" rel="stylesheet" type="text/css" />
<!--[if IE]><link href="/stylesheets/blueprint/ie.css" media="screen" rel="stylesheet" type="text/css" /><![endif]-->
<!--[if IE]><link href="/stylesheets/ie.css" media="screen" rel="stylesheet" type="text/css" /><![endif]-->
<link href="/stylesheets/pygments.css" media="screen" rel="stylesheet" type="text/css" />
</head>
<body>
<div class='container'>
<div class='span-21 doc_menu'>
<header>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a id="blog" href="/blog/">Blog</a></li>
<li><a id="documentation" href="/doc/en/">Documentation</a></li>
<li><a href="/projects/">Projects</a></li>
<li><a href="/roadmap/">Roadmap</a></li>
<li><a href="/releases/">Releases</a></li>
</ul>
</nav>
</header>
</div>
<div class='span-3 last'>
<div id='version'>
<a href="/releases/1.2.3">1.2.3</a>
</div>
</div>
</div>
<div class="container languages">
<nav>
<span class="label">Język:</span>
<ul>
<li><a href="/doc/de/how-to/write-a-ticket/"
>de</a></li>
<li><a href="/doc/en/how-to/write-a-ticket/"
>en</a></li>
<li><a href="/doc/es/how-to/write-a-ticket/"
>es</a></li>
<li><a href="/doc/fr/how-to/write-a-ticket/"
>fr</a></li>
<li><a href="/doc/ja/how-to/write-a-ticket/"
>ja</a></li>
<li><a href="/doc/pl/how-to/write-a-ticket/"
class="current"
>pl</a></li>
<li><a href="/doc/pt-br/how-to/write-a-ticket/"
>pt-br</a></li>
<li><a href="/doc/ru/how-to/write-a-ticket/"
>ru</a></li>
</ul>
</nav>
</div>
<div class="container doc_page_nav">
<span class="label">Wstecz:</span>
<a href="/doc/pl/how-to">How-To</a>
<span class="label">Do góry:</span>
<a href="/doc/pl/">Spis treści</a>
<span class="label">Dalej:</span>
<a href="/doc/pl/how-to/write-a-ruby-spec">Write a Ruby Spec</a>
</div>
<div class="container documentation">
<h2>How-To - Write a Ticket</h2>
<p>The Rubinius issue tracker is <a href="http://github.com/rubinius/rubinius/issues">http://github.com/rubinius/rubinius/issues</a>.</p>
<p>To be useful, tickets must be concise, focused, and actionable. If not, the
ticket will languish and become clutter. Accordingly, tickets must fall into
one (or more) of the following categories:</p>
<ol>
<li>A precise command line history showing how to install and invoke the
program and showing the backtrace for an exception.</li>
<li>A short piece of code illustrating the problem and the command line to
invoke it.</li>
<li>A patch, <strong>including specs if they do not already exist</strong>, and showing
the spec runs before and after applying the patch.</li>
</ol>
<p>If your issue doesn’t fit into one of the categories, it is not invalid. It is
simply not appropriate for a ticket.</p>
<ol>
<li>If it is a feature, consider discussing it on the mailing list. Also, you
could take a crack at implementing it and demonstrate how your feature is
useful.</li>
<li>If it is a library or gem that is not working, take some time to dig in
and see if you can create a reproduction for an issue and post that as a
ticket.</li>
</ol>
<h2 id="general-procedure-for-submitting-a-ticket">General procedure for submitting a ticket</h2>
<ol>
<li>
<p>Double-check.</p>
<ol>
<li>Do a full rebuild (‘rake clean; rake’) after a ‘git pull’ or fresh clone.</li>
<li>Read <a href="/doc/en/getting-started/troubleshooting">Troubleshooting</a>
to see if something there resolves the issue.</li>
<li>Read <a href="/doc/en/specs/">Specs</a>.</li>
</ol>
</li>
<li>
<p>Give your ticket a specific, preferably short title.</p>
</li>
<li>
<p>Give your ticket appropriate tags.</p>
</li>
<li>
<p>Give enough detail about the issue.</p>
<ul>
<li>The command line for invoking the program</li>
<li>The backtrace or result from the program versus expected result.</li>
<li>Your machine information. <code>uname -a</code> is usually good (if there are any
“unknown” fields in it, please elaborate on those.)</li>
</ul>
</li>
</ol>
<h2 id="additional-instructions-for-tickets-with-patches">Additional instructions for tickets with patches</h2>
<ul>
<li>Can be just a set of specs.</li>
<li>Patches must be accompanied by specs unless the specs already exist.</li>
<li>Relevant part of spec output and the exact ‘bin/mspec’ invocation from the
existing or added spec <em>before the fix</em>.</li>
<li>The spec output and the exact ‘bin/mspec’ invocation showing success
<em>after</em> the fix.</li>
<li>Additional description of your patch and how it fixes the problem. In
particular with new functionality please indicate if it was already
discussed on #rubinius or ruby-dev.</li>
</ul>
<p>Unless for some reason impossible, please use ‘git-format-patch’ to create the
patchset. It is much easier to apply and it preserves the correct attribution.
Otherwise, a unified diff.</p>
<h2 id="example-of-submitting-a-patch">Example of submitting a patch</h2>
<p>Suppose the following spec exists and is failing:</p>
<pre><code>describe "Kernel.format" do
it "is accessible as a module function" do
Kernel.format("%s", "hello").should == "hello"
end
end
</code></pre>
<ol>
<li>
<p>Ticket Title:</p>
<p>“[PATCH] No method ‘format’ on Kernel (Module)”</p>
</li>
<li>
<p>Tags:</p>
<p>“patch core spec”</p>
</li>
<li>
<p>Ticket Message:</p>
<p>The method ‘format’ is not available as a module function of Kernel.</p>
<pre><code>$ bin/mspec spec/ruby/core/kernel/format_spec.rb
Started
.E
1)
Kernel.format is accessible as a module function ERROR
No method 'format' on Kernel (Module):
</code></pre>
<p>The method ‘format’ already exists but has not been set as a module
function. This patch does so.</p>
<p>After the patch is applied:</p>
<pre><code>$ bin/mspec spec/ruby/core/kernel/format_spec.rb
Started
..
Finished in 0.016031 seconds
2 examples, 2 expectations, 0 failures, 0 errors
</code></pre>
</li>
<li>
<p>Attachment:</p>
</li>
</ol>
<p>Finally, put your patch in a gist and add the link to the gist to your issue.
Below the patch is reproduced inline for completeness:</p>
<pre><code>From c61cecce6442347ebbdf1ded7a5c0832c97582c1 Mon Sep 17 00:00:00 2001
From: Brian Ford <bford@engineyard.com>
Date: Sat, 19 Jan 2008 17:48:19 -0800
Subject: [PATCH] Set Kernel#format as a module function.
diff --git a/kernel/core/kernel.rb b/kernel/core/kernel.rb
index 2d2e508..f2a382e 100644
--- a/kernel/core/kernel.rb
+++ b/kernel/core/kernel.rb
@@ -150,6 +150,7 @@ module Kernel
end
alias_method :format, :sprintf
module_function :sprintf
+ module_function :format
module_function :abort
def puts(*a)
</code></pre>
</div>
<div class="container doc_page_nav">
<span class="label">Wstecz:</span>
<a href="/doc/pl/how-to">How-To</a>
<span class="label">Do góry:</span>
<a href="/doc/pl/">Spis treści</a>
<span class="label">Dalej:</span>
<a href="/doc/pl/how-to/write-a-ruby-spec">Write a Ruby Spec</a>
</div>
<div class="container">
<div id="disqus_thread"></div>
<script type="text/javascript">
var disqus_shortname = 'rubinius';
var disqus_identifier = '/doc/pl/how-to/write-a-ticket/';
var disqus_url = 'http://rubini.us/doc/pl/how-to/write-a-ticket/';
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<footer>
<div class='container'>
<nav>
<ul>
<li><a href="http://twitter.com/rubinius">Follow Rubinius on Twitter</a></li>
<li><a href="http://github.com/evanphx/rubinius">Fork Rubinius on github</a></li>
<li><a href="http://engineyard.com">An Engine Yard project</a></li>
<li id='credit'>
Site design by
<a href="http://less.thanthree.com">Less Than Three</a>
</li>
</ul>
</nav>
</div>
</footer>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-12328521-1");
pageTracker._trackPageview();
} catch(err) {}</script>
</body>
</html>