tork 19.4.0 → 19.5.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/tork/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Tork
2
- VERSION = "19.4.0"
2
+ VERSION = "19.5.0"
3
3
  end
data/man/index.html CHANGED
@@ -7,5 +7,5 @@
7
7
  <link rel="stylesheet" href="style.css"/>
8
8
  <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
9
9
  </head>
10
- <body><div class="container-fluid"><h2 id="man0">man0</h2><dl class="dl-horizontal"><dt><a href="man0/README.html">README</a></dt><dd></dd></dl><dl class="dl-horizontal"><dt><a href="man0/VERSION.html">VERSION</a></dt><dd></dd></dl><h2 id="man1">man1</h2><dl class="dl-horizontal"><dt><a href="man1/tork-driver.1.html">tork-driver(1)</a></dt><dd>drives tork-engine(1) when files change</dd></dl><dl class="dl-horizontal"><dt><a href="man1/tork-engine.1.html">tork-engine(1)</a></dt><dd>wraps tork-master(1) with bookkeeping</dd></dl><dl class="dl-horizontal"><dt><a href="man1/tork-herald.1.html">tork-herald(1)</a></dt><dd>reports modified files</dd></dl><dl class="dl-horizontal"><dt><a href="man1/tork-master.1.html">tork-master(1)</a></dt><dd>absorbs overhead and runs tests</dd></dl><dl class="dl-horizontal"><dt><a href="man1/tork-notify.1.html">tork-notify(1)</a></dt><dd>notifies you of test status changes</dd></dl><dl class="dl-horizontal"><dt><a href="man1/tork-remote.1.html">tork-remote(1)</a></dt><dd>controls tork(1) programs</dd></dl><dl class="dl-horizontal"><dt><a href="man1/tork.1.html">tork(1)</a></dt><dd>Continuous testing tool for Ruby</dd></dl></div></body>
10
+ <body><div class="container-fluid"><h2 id="man0">man0</h2><dl class="dl-horizontal"><dt><a href="man0/README.html">README</a></dt><dd></dd></dl><dl class="dl-horizontal"><dt><a href="man0/VERSION.html">VERSION</a></dt><dd></dd></dl><h2 id="man1">man1</h2><dl class="dl-horizontal"><dt><a href="man1/tork-driver.1.html">tork-driver(1)</a></dt><dd>drives tork-engine(1) when files change</dd></dl><dl class="dl-horizontal"><dt><a href="man1/tork-engine.1.html">tork-engine(1)</a></dt><dd>wraps tork-master(1) with bookkeeping</dd></dl><dl class="dl-horizontal"><dt><a href="man1/tork-herald.1.html">tork-herald(1)</a></dt><dd>reports modified files</dd></dl><dl class="dl-horizontal"><dt><a href="man1/tork-master.1.html">tork-master(1)</a></dt><dd>absorbs overhead and runs tests</dd></dl><dl class="dl-horizontal"><dt><a href="man1/tork-notify.1.html">tork-notify(1)</a></dt><dd>notifies you of test status changes</dd></dl><dl class="dl-horizontal"><dt><a href="man1/tork-remote.1.html">tork-remote(1)</a></dt><dd>controls tork(1) programs</dd></dl><dl class="dl-horizontal"><dt><a href="man1/tork-runner.1.html">tork-runner(1)</a></dt><dd>runs tests once, non-interactively</dd></dl><dl class="dl-horizontal"><dt><a href="man1/tork.1.html">tork(1)</a></dt><dd>Continuous testing tool for Ruby</dd></dl></div></body>
11
11
  </html>
data/man/man0/README.html CHANGED
@@ -39,12 +39,13 @@ your application&#39;s <code>test/test_helper.rb</code> or <code>spec/spec_helpe
39
39
  for Tork by wrapping the <a class="md2man-xref" href="../man1/tork-driver.1.html">tork-driver(1)</a> program appropriately!</p>
40
40
  <ul>
41
41
  <li><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a> is an interactive command-line user interface for <a class="md2man-xref" href="../man1/tork-driver.1.html">tork-driver(1)</a></li>
42
+ <li><a class="md2man-xref" href="../man1/tork-runner.1.html">tork-runner(1)</a> runs your test suite once, non-interactively, and then exits</li>
42
43
  <li><a class="md2man-xref" href="../man1/tork-herald.1.html">tork-herald(1)</a> monitors current directory tree and reports changed files</li>
43
44
  <li><a class="md2man-xref" href="../man1/tork-driver.1.html">tork-driver(1)</a> drives the engine according to the herald&#39;s observations</li>
44
45
  <li><a class="md2man-xref" href="../man1/tork-engine.1.html">tork-engine(1)</a> tells master to run tests and keeps track of test results</li>
45
46
  <li><a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a> absorbs test execution overhead and forks to run your tests</li>
46
47
  <li><a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a> remotely controls any Tork program running in the same <code>pwd</code></li>
47
- <li><a class="md2man-xref" href="../man1/tork-notify.1.html">tork-notify(1)</a> shows how to receive and process messages from Tork programs</li>
48
+ <li><a class="md2man-xref" href="../man1/tork-notify.1.html">tork-notify(1)</a> notifies you when previously passing tests fail or vice versa</li>
48
49
  </ul>
49
50
  <p>When the herald observes that files in or beneath the current directory have
50
51
  been written to, it tells the driver, which then commands the master to fork a
@@ -70,7 +71,8 @@ echo run_test_file test/some_test.rb | tork-remote tork-engine
70
71
  echo run_test_file test/some_test.rb 4 33 21 | tork-remote tork-engine
71
72
  </code></pre></li>
72
73
  </ol>
73
- <h2 id="Installation">Installation</h2>
74
+ <p>Alternatively, you can use <a class="md2man-xref" href="../man1/tork-runner.1.html">tork-runner(1)</a> to run your test suite in one shot
75
+ and then exit with a nonzero status if tests failed, similar to <code>rake test</code>.</p><h2 id="Installation">Installation</h2>
74
76
  <pre><code>gem install tork
75
77
  </code></pre>
76
78
  <h3 id="Prerequisites">Prerequisites</h3>
@@ -110,7 +112,7 @@ bundle exec rake --tasks # packaging tasks
110
112
  echo run_test_file test/some_test.rb 4 33 21 | tork-remote tork-engine
111
113
  </code></pre>
112
114
  <p>You can monitor your test processes from another terminal:</p>
113
- <pre><code>watch &#39;pgrep -f ^tork | xargs -r ps u&#39;
115
+ <pre><code>watch &#39;pgrep -f ^tork | xargs -r ps uf&#39;
114
116
  </code></pre>
115
117
  <h3 id="With-MiniTest">With MiniTest</h3><p>MiniTest 1.3.2 and newer contain a bug where <code>minitest/autorun</code> won&#39;t run any
116
118
  tests if someone calls <code>Kernel#exit</code> explicitly or simply loads a library
data/man/man0/README.md CHANGED
@@ -43,12 +43,13 @@ Following UNIX philosophy, Tork is composed of simple text-based programs that
43
43
  for Tork by wrapping the tork-driver(1) program appropriately!
44
44
 
45
45
  * tork(1) is an interactive command-line user interface for tork-driver(1)
46
+ * tork-runner(1) runs your test suite once, non-interactively, and then exits
46
47
  * tork-herald(1) monitors current directory tree and reports changed files
47
48
  * tork-driver(1) drives the engine according to the herald's observations
48
49
  * tork-engine(1) tells master to run tests and keeps track of test results
49
50
  * tork-master(1) absorbs test execution overhead and forks to run your tests
50
51
  * tork-remote(1) remotely controls any Tork program running in the same `pwd`
51
- * tork-notify(1) shows how to receive and process messages from Tork programs
52
+ * tork-notify(1) notifies you when previously passing tests fail or vice versa
52
53
 
53
54
  When the herald observes that files in or beneath the current directory have
54
55
  been written to, it tells the driver, which then commands the master to fork a
@@ -76,6 +77,9 @@ performed *automatically*. However, to run a test file *manually*, you can:
76
77
  # run lines 4, 33, and 21 of test/some_test.rb
77
78
  echo run_test_file test/some_test.rb 4 33 21 | tork-remote tork-engine
78
79
 
80
+ Alternatively, you can use tork-runner(1) to run your test suite in one shot
81
+ and then exit with a nonzero status if tests failed, similar to `rake test`.
82
+
79
83
  ## Installation
80
84
 
81
85
  gem install tork
@@ -127,7 +131,7 @@ You can also do the same non-interactively using a pipeline:
127
131
 
128
132
  You can monitor your test processes from another terminal:
129
133
 
130
- watch 'pgrep -f ^tork | xargs -r ps u'
134
+ watch 'pgrep -f ^tork | xargs -r ps uf'
131
135
 
132
136
  ### With MiniTest
133
137
 
@@ -7,53 +7,107 @@
7
7
  <link rel="stylesheet" href="../style.css"/>
8
8
  <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
9
9
  </head>
10
- <body><div class="navbar"><div class="navbar-inner"><span class="brand"><a href="../index.html#man0">man0</a>/VERSION</span></div></div><div class="container-fluid"><h2 id="Version-19-4-0-2013-11-25">Version 19.4.0 (2013-11-25)</h2><p>Minor:</p>
10
+ <body><div class="navbar"><div class="navbar-inner"><span class="brand"><a href="../index.html#man0">man0</a>/VERSION</span></div></div><div class="container-fluid"><h2 id="Version-19-5-0-2013-11-30">Version 19.5.0 (2013-11-30)</h2><p>This release adds a <a class="md2man-xref" href="../man1/tork-runner.1.html">tork-runner(1)</a> program for non-interactive test execution,
11
+ makes connections to tork subprocesses self-healing, eliminates &quot;address
12
+ already in use&quot; errors, and fixes bugs in <a class="md2man-xref" href="../man1/tork-herald.1.html">tork-herald(1)</a> and <a class="md2man-xref" href="../man1/tork-notify.1.html">tork-notify(1)</a>.</p><h3 id="Minor">Minor:</h3>
13
+ <ul>
14
+ <li><p>Add <a class="md2man-xref" href="../man1/tork-runner.1.html">tork-runner(1)</a> to run tests once, non-interactively, and then exit.</p><p>You can use <a class="md2man-xref" href="../man1/tork-runner.1.html">tork-runner(1)</a> to run your test suite in one shot and then
15
+ exit with a nonzero status if tests failed, similar to <code>rake test</code>.</p></li>
16
+ <li><p>Add Tork::Bridge to make connections to tork subprocesses self-healing.</p><p>When a tork subprocess terminates, its parent process now replaces it
17
+ with a fresh instance. Thus the tork process tree is now self-healing.</p></li>
18
+ <li><p>Server: become a remote control to existing instance on socket fail.</p><p>If an another instance of this tork program is already running, then
19
+ become a remote to it rather than failing on binding its socket file.</p><p>This lets you run the same tork program more than once in the same working
20
+ directory; latter runs will become remote controls for the first instance!</p><p>This also lets you run an instance of <a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a> for interactive usage and
21
+ then run <a class="md2man-xref" href="../man1/tork-runner.1.html">tork-runner(1)</a> in another terminal in the same working directory
22
+ to re-use the former&#39;s resources to run your test suite non-interactively.</p></li>
23
+ <li><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>: show help message to clients upon connecting.</p></li>
24
+ <li><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>: tell user to input &#39;h&#39; key for help message.</p></li>
25
+ </ul>
26
+ <h3 id="Patch">Patch:</h3>
27
+ <ul>
28
+ <li><p><a class="md2man-xref" href="../man1/tork-notify.1.html">tork-notify(1)</a>: must pass mutable local variables into Thread.new.</p><p>The <code>icon</code> local variable would be overwritten (to nil sometimes)
29
+ outside of the thread and cause the thread body to silently fail.</p><p>See <a href="http://stackoverflow.com/q/16745840">http://stackoverflow.com/q/16745840</a> for details.</p></li>
30
+ <li><p>Socket files were always deleted: even if not ours.</p><p>If a tork instance was already running and a new tork instance was
31
+ started up in the same directory, then the latter would always delete
32
+ the common socket files (currently belonging to the former) upon exit.</p></li>
33
+ <li><p>Fail earlier on socket bind: avoid wasted overhead.</p><p>Before this patch, <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a> would first pay the price of absorbing
34
+ the test execution overhead before trying to bind its socket. In case
35
+ of socket bind failure, the process would exit and the overhead wasted.</p></li>
36
+ <li><p>Server: don&#39;t call method for empty command array.</p><p>This error would occur when pressing ENTER in tork-remote tork-driver:</p>
37
+ <pre><code>tork-driver: #&lt;ArgumentError: no method name given&gt;
38
+ tork-driver: /home/skurapati/lab/tork/lib/tork/server.rb:74:in `recv&#39;
39
+ tork-driver: /home/skurapati/lab/tork/lib/tork/driver.rb:64:in `recv&#39;
40
+ tork-driver: /home/skurapati/lab/tork/lib/tork/server.rb:46:in `block (2 levels) in loop&#39;
41
+ tork-driver: /home/skurapati/lab/tork/lib/tork/server.rb:37:in `each&#39;
42
+ tork-driver: /home/skurapati/lab/tork/lib/tork/server.rb:37:in `block in loop&#39;
43
+ tork-driver: /home/skurapati/lab/tork/lib/tork/server.rb:35:in `catch&#39;
44
+ tork-driver: /home/skurapati/lab/tork/lib/tork/server.rb:35:in `loop&#39;
45
+ tork-driver: /home/skurapati/lab/tork/lib/tork/driver.rb:21:in `loop&#39;
46
+ tork-driver: /home/skurapati/lab/tork/bin/tork-driver:173:in `&lt;top (required)&gt;&#39;
47
+ tork-driver: /home/skurapati/.rvm/gems/ruby-1.9.3-p448/bin/tork-driver:23:in `load&#39;
48
+ tork-driver: /home/skurapati/.rvm/gems/ruby-1.9.3-p448/bin/tork-driver:23:in `&lt;main&gt;&#39;
49
+ </code></pre></li>
50
+ <li><p><a class="md2man-xref" href="../man1/tork-herald.1.html">tork-herald(1)</a>: listen 2.2.0 gem is non-blocking and gives absolute paths.</p>
51
+ <ul>
52
+ <li>Calling #start no longer blocks the caller.</li>
53
+ <li>The <code>:relative_paths</code> option no longer works:
54
+ <a href="https://github.com/guard/listen/issues/170">https://github.com/guard/listen/issues/170</a></li>
55
+ </ul></li>
56
+ <li><p><a class="md2man-xref" href="../man1/tork-herald.1.html">tork-herald(1)</a>: downgrade to listen 1.x gem to maintain Ruby 1.8 support.</p></li>
57
+ </ul>
58
+ <h3 id="Other">Other:</h3>
59
+ <ul>
60
+ <li><p>GH-56: specify license in gemspec for rubygems.org.</p></li>
61
+ <li><p>Document <a class="md2man-xref">sh(1)</a> word splitting in manual pages of all tork servers.</p></li>
62
+ <li><p>README: use <code>ps uf</code> to visualize process hierarchy.</p></li>
63
+ </ul>
64
+ <h2 id="Version-19-4-0-2013-11-25">Version 19.4.0 (2013-11-25)</h2><h3 id="Minor">Minor:</h3>
11
65
  <ul>
12
66
  <li>The &quot;rails&quot; configuration helper now automatically sets up your test
13
67
  database for Tork&#39;s parallel testing system if your test database is
14
68
  SQLite3 and you are using Rails 3 or newer.</li>
15
69
  </ul>
16
- <p>Other:</p>
70
+ <h3 id="Other">Other:</h3>
17
71
  <ul>
18
72
  <li><p>rails: remove unused capture of rescued exception</p></li>
19
73
  <li><p>coverage: document the use of Ruby 1.9 hash syntax</p></li>
20
74
  <li><p>rename <code>*.markdown</code> file extension to shorter <code>*.md</code></p></li>
21
75
  </ul>
22
- <h2 id="Version-19-3-2-2013-10-29">Version 19.3.2 (2013-10-29)</h2><p>Other:</p>
76
+ <h2 id="Version-19-3-2-2013-10-29">Version 19.3.2 (2013-10-29)</h2><h3 id="Other">Other:</h3>
23
77
  <ul>
24
78
  <li><p>GH-55: upgrade listen &amp; rake gem dependencies.</p><p>Thanks to Matthew Albright for reporting this issue in GH-55:
25
79
  <a href="https://github.com/sunaku/tork/issues/55">https://github.com/sunaku/tork/issues/55</a></p></li>
26
80
  </ul>
27
- <h2 id="Version-19-3-1-2013-06-07">Version 19.3.1 (2013-06-07)</h2><p>Patch:</p>
81
+ <h2 id="Version-19-3-1-2013-06-07">Version 19.3.1 (2013-06-07)</h2><h3 id="Patch">Patch:</h3>
28
82
  <ul>
29
83
  <li><p>server: rescue from failed writes to asynchronously closed clients.</p><p>Thanks to Jonathan Cairns for reporting and fixing this bug in GH-53:
30
84
  <a href="https://github.com/sunaku/tork/issues/53">https://github.com/sunaku/tork/issues/53</a></p></li>
31
85
  </ul>
32
- <p>Other:</p>
86
+ <h3 id="Other">Other:</h3>
33
87
  <ul>
34
88
  <li>Upgrade to md2man 2.0.</li>
35
89
  </ul>
36
- <h2 id="Version-19-3-0-2013-05-05">Version 19.3.0 (2013-05-05)</h2><p>Minor:</p>
90
+ <h2 id="Version-19-3-0-2013-05-05">Version 19.3.0 (2013-05-05)</h2><h3 id="Minor">Minor:</h3>
37
91
  <ul>
38
92
  <li><p><a class="md2man-xref" href="../man1/tork-engine.1.html">tork-engine(1)</a> now emits <code>[&quot;idle&quot;]</code> messages whenever all tests
39
93
  have finished running and no more tests are queued for running.</p><p>Thanks to Jonathan Cairns for requesting this feature in GH-50:
40
94
  <a href="https://github.com/sunaku/tork/issues/50">https://github.com/sunaku/tork/issues/50</a></p></li>
41
95
  </ul>
42
- <p>Other:</p>
96
+ <h3 id="Other">Other:</h3>
43
97
  <ul>
44
98
  <li><p>add man/man0 subdir containing README and VERSION</p></li>
45
99
  <li><p>README: use manpage xrefs for linking in HTML mans</p></li>
46
100
  </ul>
47
101
  <h2 id="Version-19-2-2-2013-05-04">Version 19.2.2 (2013-05-04)</h2><p>This release makes Tork resilient to <code>Errno::EADDRINUSE</code> errors that may occur
48
- sometimes, intermittently, when test execution overhead is being reabsorbed.</p><p>Patch:</p>
102
+ sometimes, intermittently, when test execution overhead is being reabsorbed.</p><h3 id="Patch">Patch:</h3>
49
103
  <ul>
50
104
  <li>server: retry until the socket opens successfully</li>
51
105
  </ul>
52
- <p>Other:</p>
106
+ <h3 id="Other">Other:</h3>
53
107
  <ul>
54
108
  <li>include md2man rake tasks in developer&#39;s rakefile</li>
55
109
  </ul>
56
- <h2 id="Version-19-2-1-2013-02-08">Version 19.2.1 (2013-02-08)</h2><p>Patch:</p>
110
+ <h2 id="Version-19-2-1-2013-02-08">Version 19.2.1 (2013-02-08)</h2><h3 id="Patch">Patch:</h3>
57
111
  <ul>
58
112
  <li><p>GH-46: allow reassigning <code>$tork_*</code> variable values. Thanks to Joe
59
113
  Escalante for reminding me to fix this issue.</p></li>
@@ -61,40 +115,40 @@ Escalante for reminding me to fix this issue.</p></li>
61
115
  Thanks to Ryan Ahearn for fixing this issue and to Jonathan Cairns for
62
116
  reporting it.</p></li>
63
117
  </ul>
64
- <h2 id="Version-19-2-0-2012-12-30">Version 19.2.0 (2012-12-30)</h2><p>Minor:</p>
118
+ <h2 id="Version-19-2-0-2012-12-30">Version 19.2.0 (2012-12-30)</h2><h3 id="Minor">Minor:</h3>
65
119
  <ul>
66
120
  <li>Add &quot;devise&quot; configuration helper that adds support for testing Rails
67
121
  applications that use the Devise authentication framework. Thanks to Ryan
68
122
  Ahearn for this contribution.</li>
69
123
  </ul>
70
- <p>Patch:</p>
124
+ <h3 id="Patch">Patch:</h3>
71
125
  <ul>
72
126
  <li><p>gemspec: upgrade to <em>listen</em> 0.7.0 to fix issue #43. Thanks to Ryan
73
127
  Ahearn for reporting this issue and helping debug it, and to Thibaud
74
128
  Guillaume-Gentil for fixing this issue upstream in the <em>listen</em> library.</p></li>
75
129
  <li><p>Fix <code>undefined method &#39;path&#39; for nil</code> error on socket file removal.</p></li>
76
130
  </ul>
77
- <h2 id="Version-19-1-0-2012-12-12">Version 19.1.0 (2012-12-12)</h2><p>Minor:</p>
131
+ <h2 id="Version-19-1-0-2012-12-12">Version 19.1.0 (2012-12-12)</h2><h3 id="Minor">Minor:</h3>
78
132
  <ul>
79
133
  <li>tork-driver: don&#39;t run overhead files as test files</li>
80
134
  </ul>
81
- <p>Patch:</p>
135
+ <h3 id="Patch">Patch:</h3>
82
136
  <ul>
83
137
  <li><p>rails: run dependent tests when <code>app/views/*</code> change</p></li>
84
138
  <li><p>Clear FactoryGirl sequences and traits on fork in the <code>factory_girl</code>
85
139
  configuration helper. Thanks to Ryan Ahearn for this contribution.</p></li>
86
140
  <li><p>server: fix clean up of socket files upon exit</p></li>
87
141
  </ul>
88
- <h2 id="Version-19-0-2-2012-11-07">Version 19.0.2 (2012-11-07)</h2><p>Patch:</p>
142
+ <h2 id="Version-19-0-2-2012-11-07">Version 19.0.2 (2012-11-07)</h2><h3 id="Patch">Patch:</h3>
89
143
  <ul>
90
144
  <li><p>Monkeypatch <code>at_exit()</code> to fix RSpec and MiniTest:</p><p><a href="https://github.com/rspec/rspec-core/pull/720">https://github.com/rspec/rspec-core/pull/720</a></p><p><a href="https://github.com/seattlerb/minitest/pull/183">https://github.com/seattlerb/minitest/pull/183</a></p></li>
91
145
  </ul>
92
- <p>Other:</p>
146
+ <h3 id="Other">Other:</h3>
93
147
  <ul>
94
148
  <li><p>README: document RSpec 2.9.0+ autorun skipping bug</p></li>
95
149
  <li><p>README: MiniTest 1.3.2+ also has autorun skip bug</p></li>
96
150
  </ul>
97
- <h2 id="Version-19-0-1-2012-10-26">Version 19.0.1 (2012-10-26)</h2><p>Patch:</p>
151
+ <h2 id="Version-19-0-1-2012-10-26">Version 19.0.1 (2012-10-26)</h2><h3 id="Patch">Patch:</h3>
98
152
  <ul>
99
153
  <li><p>Support testing projects that have both test/ and spec/ directories.</p><p>I assumed that users would only have either test/ or spec/ but not both.
100
154
  Do you know what happens when a test/ is run by RSpec or vice versa? :-)</p><p>Thanks to Kyle Peyton for reporting this issue.</p></li>
@@ -102,12 +156,12 @@ Do you know what happens when a test/ is run by RSpec or vice versa? :-)</p><p>T
102
156
  their spec/spec_helper.rb file because they use the <a class="md2man-xref">rspec(1)</a> executable
103
157
  to run their tests. This commit makes things Just Work for them again.</p></li>
104
158
  </ul>
105
- <p>Other:</p>
159
+ <h3 id="Other">Other:</h3>
106
160
  <ul>
107
161
  <li><p>test whether input is JSON by actually parsing it</p></li>
108
162
  <li><p>server: use Set instead of Array for faster lookup</p></li>
109
163
  </ul>
110
- <h2 id="Version-19-0-0-2012-10-17">Version 19.0.0 (2012-10-17)</h2><p>Major:</p>
164
+ <h2 id="Version-19-0-0-2012-10-17">Version 19.0.0 (2012-10-17)</h2><h3 id="Major">Major:</h3>
111
165
  <ul>
112
166
  <li><p>The <code>.tork.rb</code> configuration file has been replaced by the <code>.tork/</code>
113
167
  directory, which contains specially-named Ruby scripts. Refer to the
@@ -130,7 +184,7 @@ must specify load paths and overhead files in the <code>.tork/master.rb</code> f
130
184
  <li><p>The <code>tork/client</code> library has been removed. The threaded IO and popen()
131
185
  wrappers that it provided have been replaced by the powerful IO.select().</p></li>
132
186
  </ul>
133
- <p>Minor:</p>
187
+ <h3 id="Minor">Minor:</h3>
134
188
  <ul>
135
189
  <li><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>: allow user to specify arguments after command key</p></li>
136
190
  <li><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>: add &#39;k&#39; to stop all currently running tests with SIGKILL</p></li>
@@ -142,30 +196,30 @@ made possible by the awesome power of IO.select() and UNIX domain sockets.</p></
142
196
  events to notify you about changes in a test file&#39;s pass/fail status.</p></li>
143
197
  <li><p>typing Control-D now breaks tork programs out of <code>Tork::Server#loop()</code></p></li>
144
198
  </ul>
145
- <p>Patch:</p>
199
+ <h3 id="Patch">Patch:</h3>
146
200
  <ul>
147
201
  <li><a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a>: stop workers with SIGKILL when quitting</li>
148
202
  </ul>
149
- <p>Other:</p>
203
+ <h3 id="Other">Other:</h3>
150
204
  <ul>
151
205
  <li><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>: document parameters for <code>t</code> and <code>s</code> commands</p></li>
152
206
  <li><p>README: add tip about rlwrap for better interactive</p></li>
153
207
  <li><p>README: simplify watch command using pgrep &amp; xargs</p></li>
154
208
  <li><p>README: use standard bundle exec; no <code>--binstubs</code></p></li>
155
209
  </ul>
156
- <h2 id="Version-18-2-4-2012-10-10">Version 18.2.4 (2012-10-10)</h2><p>Other:</p>
210
+ <h2 id="Version-18-2-4-2012-10-10">Version 18.2.4 (2012-10-10)</h2><h3 id="Other">Other:</h3>
157
211
  <ul>
158
212
  <li>GH-39: upgrade listen gem version to fix a bug in OSX.
159
213
  Thanks to Adam Grant for reporting this issue.</li>
160
214
  </ul>
161
- <h2 id="Version-18-2-3-2012-09-26">Version 18.2.3 (2012-09-26)</h2><p>Patch:</p>
215
+ <h2 id="Version-18-2-3-2012-09-26">Version 18.2.3 (2012-09-26)</h2><h3 id="Patch">Patch:</h3>
162
216
  <ul>
163
217
  <li><p>Restored support for building Tork from its gemspec under Ruby 1.8.
164
218
  Thanks to Ohno Shin&#39;ichi for reporting this issue and contributing a
165
219
  preliminary fix.</p></li>
166
220
  <li><p>Add resilience against failed command dispatch in <code>Tork::Server#loop()</code>.</p></li>
167
221
  </ul>
168
- <p>Other:</p>
222
+ <h3 id="Other">Other:</h3>
169
223
  <ul>
170
224
  <li><p>It&#39;s not worth rescuing Interrupt only to exit silently.
171
225
  Let the user see stack traces when they press Control-C.</p></li>
@@ -173,7 +227,7 @@ Let the user see stack traces when they press Control-C.</p></li>
173
227
  replaced by reaping threads quite a few releases ago.</p></li>
174
228
  <li><p>Use $0 instead of hard-coding the program name.</p></li>
175
229
  </ul>
176
- <h2 id="Version-18-2-2-2012-07-11">Version 18.2.2 (2012-07-11)</h2><p>Patch:</p>
230
+ <h2 id="Version-18-2-2-2012-07-11">Version 18.2.2 (2012-07-11)</h2><h3 id="Patch">Patch:</h3>
177
231
  <ul>
178
232
  <li><p>GH-35: resume dispatched but not yet started tests.</p><p>After reabsorbing overhead, we need to resume previously dispatched test
179
233
  files that have not yet finished running. This includes the waiting set
@@ -181,17 +235,17 @@ files that have not yet finished running. This includes the waiting set
181
235
  and already started running). Otherwise, we encounter a bug where test
182
236
  files in the waiting set can NEVER be run again!</p></li>
183
237
  </ul>
184
- <h2 id="Version-18-2-1-2012-07-05">Version 18.2.1 (2012-07-05)</h2><p>Patch:</p>
238
+ <h2 id="Version-18-2-1-2012-07-05">Version 18.2.1 (2012-07-05)</h2><h3 id="Patch">Patch:</h3>
185
239
  <ul>
186
240
  <li>GH-37: switch from Guard::Listener to Listen gem.
187
241
  Thanks to Jesse Cooke for reporting this issue.</li>
188
242
  </ul>
189
- <p>Other:</p>
243
+ <h3 id="Other">Other:</h3>
190
244
  <ul>
191
245
  <li><p>gemspec: need to provide .0 suffix for ~&gt; operator.</p></li>
192
246
  <li><p>gemspec: LICENSE file contains UTF-8 author names.</p></li>
193
247
  </ul>
194
- <h2 id="Version-18-2-0-2012-03-27">Version 18.2.0 (2012-03-27)</h2><p>Minor:</p>
248
+ <h2 id="Version-18-2-0-2012-03-27">Version 18.2.0 (2012-03-27)</h2><h3 id="Minor">Minor:</h3>
195
249
  <ul>
196
250
  <li>Emit warnings when commands cannot be performed. This improves the user
197
251
  experience by giving them immediate feedback. For example, if you issue
@@ -199,7 +253,7 @@ the &quot;rerun<em>failed</em>tests&quot; command and no tests have failed yet,
199
253
  now see a warning message that explains the situation. Thanks to
200
254
  NagaChaitanya Vellanki (@chaitanyav) for suggesting this change.</li>
201
255
  </ul>
202
- <p>Patch:</p>
256
+ <h3 id="Patch">Patch:</h3>
203
257
  <ul>
204
258
  <li><p>GH-32: Restore support for Selenium and Capybara by replacing the global
205
259
  SIGCHLD handler in <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a> with individual threads, one per forked
@@ -207,7 +261,7 @@ worker process. Thanks to Bjørn Trondsen (@Sharagoz) for reporting this
207
261
  issue and verifying the fix.</p></li>
208
262
  <li><p>README: Recommend a newer fork of the &quot;memory<em>test</em>fix&quot; Rails plugin.</p></li>
209
263
  </ul>
210
- <h2 id="Version-18-1-0-2012-02-26">Version 18.1.0 (2012-02-26)</h2><p>Minor:</p>
264
+ <h2 id="Version-18-1-0-2012-02-26">Version 18.1.0 (2012-02-26)</h2><h3 id="Minor">Minor:</h3>
211
265
  <ul>
212
266
  <li><p>Add <code>tork/config/coverage</code> configuration helper for Ruby 1.9, which prints
213
267
  a coverage report at the end of your log file in YAML format. The report
@@ -219,19 +273,19 @@ that exist in or beneath the current working directory:</p>
219
273
  <li>:holes - line numbers of source lines that were not covered</li>
220
274
  </ul></li>
221
275
  </ul>
222
- <h2 id="Version-18-0-1-2012-02-13">Version 18.0.1 (2012-02-13)</h2><p>Alert:</p>
276
+ <h2 id="Version-18-0-1-2012-02-13">Version 18.0.1 (2012-02-13)</h2><h3 id="Alert">Alert:</h3>
223
277
  <ul>
224
278
  <li>If you&#39;re on Ruby 1.9, please use 1.9.3 or newer because 1.9.2 is
225
279
  known to segfault under RSpec and Rails. See GH-30 and GH-32.</li>
226
280
  </ul>
227
- <p>Patch:</p>
281
+ <h3 id="Patch">Patch:</h3>
228
282
  <ul>
229
283
  <li><p>GH-27: Cucumber features now run correctly under RSpec. Thanks to Scott
230
284
  Radcliff for reporting this issue and to David Burrows for solving it!</p></li>
231
285
  <li><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>: fix undefined method `strip&#39; for nil:NilClass error.</p></li>
232
286
  <li><p>tork/config: ignore directories given as configuration files.</p></li>
233
287
  </ul>
234
- <h2 id="Version-18-0-0-2012-02-06">Version 18.0.0 (2012-02-06)</h2><p>Alert:</p>
288
+ <h2 id="Version-18-0-0-2012-02-06">Version 18.0.0 (2012-02-06)</h2><h3 id="Alert">Alert:</h3>
235
289
  <ul>
236
290
  <li>RSpec 2.8.0 and older contain <a href="https://github.com/sunaku/tork/issues/31">a bug</a> where a nonzero
237
291
  exit status (caused by an uncaught exception) is overridden
@@ -239,7 +293,7 @@ by RSpec&#39;s <code>Kernel#at_exit</code> handler to be zero, thereby
239
293
  falsely indicating that a spec had passed. <a href="https://github.com/rspec/rspec-core/pull/569/files">This patch</a> fixes the
240
294
  problem. Thanks to Gumaro Melendez for reporting this issue.</li>
241
295
  </ul>
242
- <p>Major:</p>
296
+ <h3 id="Major">Major:</h3>
243
297
  <ul>
244
298
  <li><p>Dropped first parameter to <code>Tork::Config::test_file_globbers</code>.</p></li>
245
299
  <li><p>GH-31: tork-master now emits separate exit code and info.
@@ -247,12 +301,12 @@ Update your <code>Tork::Config::test_event_hooks</code> accordingly.</p></li>
247
301
  <li><p>tork/server: switch from modules to class inheritance.</p></li>
248
302
  <li><p>tork/config: switch to Struct to prevent misspellings.</p></li>
249
303
  </ul>
250
- <p>Minor:</p>
304
+ <h3 id="Minor">Minor:</h3>
251
305
  <ul>
252
306
  <li><p>tork-driver now recursively expands dependent test files while globbing.</p></li>
253
307
  <li><p>Extracted bookkeeping stuff from tork-driver into tork-engine component.</p></li>
254
308
  </ul>
255
- <p>Other:</p>
309
+ <h3 id="Other">Other:</h3>
256
310
  <ul>
257
311
  <li><p>tork/config: do not reabsorb when .tork.rb
258
312
  changes. Since the configuration is loaded in
@@ -264,7 +318,7 @@ restart Tork if you change your configuration.</p></li>
264
318
  <li><p>GH-29: bump guard version requirement to v1 series.</p></li>
265
319
  <li><p>Improve documentation; revise markdown; clean up.</p></li>
266
320
  </ul>
267
- <h2 id="Version-17-1-0-2012-01-30">Version 17.1.0 (2012-01-30)</h2><p>Minor:</p>
321
+ <h2 id="Version-17-1-0-2012-01-30">Version 17.1.0 (2012-01-30)</h2><h3 id="Minor">Minor:</h3>
268
322
  <ul>
269
323
  <li><p>Added <code>Tork::Config.test_event_hooks</code> configuration option.</p></li>
270
324
  <li><p>Added <code>tork/config/notify</code> configuration helper for receiving
@@ -278,19 +332,19 @@ multiple globs in an array, in addition to just a single glob or <code>nil</code
278
332
  <li><p>Added support for the MiniTest convention of naming test files as
279
333
  <code>test/**/test_*.rb</code> and <code>spec/**/spec_*.rb</code>. (Jose Pablo Barrantes)</p></li>
280
334
  </ul>
281
- <h2 id="Version-17-0-1-2012-01-29">Version 17.0.1 (2012-01-29)</h2><p>Patch:</p>
335
+ <h2 id="Version-17-0-1-2012-01-29">Version 17.0.1 (2012-01-29)</h2><h3 id="Patch">Patch:</h3>
282
336
  <ul>
283
337
  <li><p><a class="md2man-xref" href="../man1/tork-herald.1.html">tork-herald(1)</a> <em>sometimes</em> reported changed test files twice.</p></li>
284
338
  <li><p>tork/driver: only whole test file runs should qualify as pass.</p></li>
285
339
  <li><p>tork/config/cucumber: only set ARGV for <code>*.feature</code> test files.</p></li>
286
340
  <li><p>Tork::Client::Transceiver needs to stop both TX &amp; RX loops.</p></li>
287
341
  </ul>
288
- <p>Other:</p>
342
+ <h3 id="Other">Other:</h3>
289
343
  <ul>
290
344
  <li><p>tork/driver: store test file lists in Set, not Array.</p></li>
291
345
  <li><p>HISTORY: use single-word change-set descriptions.</p></li>
292
346
  </ul>
293
- <h2 id="Version-17-0-0-2012-01-27">Version 17.0.0 (2012-01-27)</h2><p>Major:</p>
347
+ <h2 id="Version-17-0-0-2012-01-27">Version 17.0.0 (2012-01-27)</h2><h3 id="Major">Major:</h3>
294
348
  <ul>
295
349
  <li><p><a class="md2man-xref" href="../man1/tork-herald.1.html">tork-herald(1)</a> now emits batches of single-line JSON arrays instead of
296
350
  printing one (raw) path per line. This makes IPC uniform across Tork.</p></li>
@@ -302,7 +356,7 @@ better reflect the order of items in <a class="md2man-xref" href="../man1/tork-m
302
356
  <li>The new order is: test<em>file, line</em>numbers, log<em>file, worker</em>number.</li>
303
357
  </ul></li>
304
358
  </ul>
305
- <p>Minor:</p>
359
+ <h3 id="Minor">Minor:</h3>
306
360
  <ul>
307
361
  <li><p>GH-24: add <code>tork/config/dotlog</code> configuration helper to &quot;hide&quot; log files.
308
362
  (Nicolas Fouché)</p></li>
@@ -311,7 +365,7 @@ better reflect the order of items in <a class="md2man-xref" href="../man1/tork-m
311
365
  <li><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a> now strips all whitespace from your input, in case you pressed
312
366
  spacebar or tab a few times, by accident, before entering your command.</p></li>
313
367
  </ul>
314
- <p>Other:</p>
368
+ <h3 id="Other">Other:</h3>
315
369
  <ul>
316
370
  <li><p>tork/client: Replace write lock with queue to support SIGCHLD handler.</p><p>The SIGCHLD handler in <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a> can be triggered at any time, even
317
371
  in the middle of writing to the standard output stream! Locking access
@@ -325,25 +379,25 @@ responsibility of (and access to) continually writing those outgoing
325
379
  items to the output stream.</p></li>
326
380
  <li><p>README: revise instructions, reorganize document, and other improvements.</p></li>
327
381
  </ul>
328
- <h2 id="Version-16-0-0-2012-01-25">Version 16.0.0 (2012-01-25)</h2><p>Major:</p>
382
+ <h2 id="Version-16-0-0-2012-01-25">Version 16.0.0 (2012-01-25)</h2><h3 id="Major">Major:</h3>
329
383
  <ul>
330
384
  <li><p>Drop the <code>Tork::Config.test_name_extractor</code> configuration option.</p></li>
331
385
  <li><p>Pass line numbers instead of test names to before/after fork hooks.</p></li>
332
386
  <li><p>Pass $~ (MatchData) to <code>Tork::Config::test_file_globbers</code> functions.</p></li>
333
387
  </ul>
334
- <p>Minor:</p>
388
+ <h3 id="Minor">Minor:</h3>
335
389
  <ul>
336
390
  <li>tork/config/cucumber: only run changed scenarios in changed features.</li>
337
391
  </ul>
338
- <p>Other:</p>
392
+ <h3 id="Other">Other:</h3>
339
393
  <ul>
340
394
  <li>README: update instructions on running Tork directly from Git clone.</li>
341
395
  </ul>
342
- <h2 id="Version-15-1-0-2012-01-25">Version 15.1.0 (2012-01-25)</h2><p>Minor:</p>
396
+ <h2 id="Version-15-1-0-2012-01-25">Version 15.1.0 (2012-01-25)</h2><h3 id="Minor">Minor:</h3>
343
397
  <ul>
344
398
  <li>GH-19: add <code>tork cucumber</code> for running cucumber features.</li>
345
399
  </ul>
346
- <p>Patch:</p>
400
+ <h3 id="Patch">Patch:</h3>
347
401
  <ul>
348
402
  <li><p>tork/config/rails: support Rails 2 and don&#39;t assume AR is used. (Benjamin
349
403
  Quorning)</p></li>
@@ -354,12 +408,12 @@ $TORK_CONFIGS should override settings from the <code>.tork.rb</code> file.</p><
354
408
  See <a href="http://stackoverflow.com/questions/1497756">http://stackoverflow.com/questions/1497756</a>.
355
409
  Also added forgotten Luke Wendling to the list.</p></li>
356
410
  </ul>
357
- <h2 id="Version-15-0-1-2012-01-24">Version 15.0.1 (2012-01-24)</h2><p>Patch:</p>
411
+ <h2 id="Version-15-0-1-2012-01-24">Version 15.0.1 (2012-01-24)</h2><h3 id="Patch">Patch:</h3>
358
412
  <ul>
359
413
  <li><p>GH-21: Ruby 1.9 class_eval() is smarter than 1.8.</p></li>
360
414
  <li><p>GH-20: forgot <code>require &#39;thread&#39;</code> for Mutex class. (Jesse Cooke)</p></li>
361
415
  </ul>
362
- <p>Other:</p>
416
+ <h3 id="Other">Other:</h3>
363
417
  <ul>
364
418
  <li><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>: fix shadowed variable names. (Jose Pablo Barrantes)</p></li>
365
419
  <li><p>GH-22: fix command to build &amp; install gem from source.</p></li>
@@ -369,7 +423,7 @@ Also added forgotten Luke Wendling to the list.</p></li>
369
423
  <li><p>README: missed a testr =&gt; tork rename in watch cmd.</p></li>
370
424
  <li><p>README: add tip about Guard&#39;s FS watching backends.</p></li>
371
425
  </ul>
372
- <h2 id="Version-15-0-0-2012-01-23">Version 15.0.0 (2012-01-23)</h2><p>Major:</p>
426
+ <h2 id="Version-15-0-0-2012-01-23">Version 15.0.0 (2012-01-23)</h2><h3 id="Major">Major:</h3>
373
427
  <ul>
374
428
  <li><p>This project has been renamed from TestR to Tork (test with fork) in order
375
429
  to better compete with rival projects, namely Spork! &gt;:-) Credit goes to
@@ -377,7 +431,7 @@ Brian D. Burns for thinking of this most succinct &amp; awesome project name!
377
431
  He also created the snazzy ASCII-art logo featured in the project README.</p></li>
378
432
  <li><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>: rename <code>r</code> command, which runs all tests, to <code>t</code>, for <em>t</em>ork.</p></li>
379
433
  </ul>
380
- <h2 id="Version-14-3-0-2012-01-20">Version 14.3.0 (2012-01-20)</h2><p>Minor:</p>
434
+ <h2 id="Version-14-3-0-2012-01-20">Version 14.3.0 (2012-01-20)</h2><h3 id="Minor">Minor:</h3>
381
435
  <ul>
382
436
  <li><p><a class="md2man-xref">testr(1)</a>: notify user while dispatching their commands. This is especially
383
437
  useful when the &quot;rerun<em>passed</em>test_files&quot; command has been dispatched but
@@ -390,7 +444,7 @@ PGError: connection not open
390
444
  <p>Thanks to Spencer Steffen for <a href="https://github.com/sunaku/tork/issues/14#issuecomment-3539470">contributing this solution</a>.</p></li>
391
445
  <li><p><a class="md2man-xref">testr-driver(1)</a>: document the &quot;over&quot; status message in manual page.</p></li>
392
446
  </ul>
393
- <p>Other:</p>
447
+ <h3 id="Other">Other:</h3>
394
448
  <ul>
395
449
  <li><p><a class="md2man-xref">testr-driver(1)</a>: keep same herald; only replace master.</p></li>
396
450
  <li><p><a class="md2man-xref">testr(1)</a>: shorten code for loop break on quit command.</p></li>
@@ -399,35 +453,35 @@ PGError: connection not open
399
453
  <li><p>Explain <code>$0</code> override at the start of bin/ scripts.</p></li>
400
454
  <li><p>LICENSE: credit our most recent contributors.</p></li>
401
455
  </ul>
402
- <h2 id="Version-14-2-0-2012-01-16">Version 14.2.0 (2012-01-16)</h2><p>Minor:</p>
456
+ <h2 id="Version-14-2-0-2012-01-16">Version 14.2.0 (2012-01-16)</h2><h3 id="Minor">Minor:</h3>
403
457
  <ul>
404
458
  <li><p>Add ability to run <code>testr rails</code> without needing a <code>.testr.rb</code> file.</p></li>
405
459
  <li><p><a class="md2man-xref">testr(1)</a> no longer shows command menu at startup. Press ENTER to see it.</p></li>
406
460
  <li><p><a class="md2man-xref">testr(1)</a> now notifies you before absorbing overhead at startup.</p></li>
407
461
  </ul>
408
- <p>Patch:</p>
462
+ <h3 id="Patch">Patch:</h3>
409
463
  <ul>
410
464
  <li><a class="md2man-xref">testr(1)</a> now accepts death silently when Control-C is pressed.</li>
411
465
  </ul>
412
- <h2 id="Version-14-1-3-2012-01-13">Version 14.1.3 (2012-01-13)</h2><p>Patch:</p>
466
+ <h2 id="Version-14-1-3-2012-01-13">Version 14.1.3 (2012-01-13)</h2><h3 id="Patch">Patch:</h3>
413
467
  <ul>
414
468
  <li>Add support Guard v0.9.0 and newer in <code>testr-herald</code>. (Jose Pablo
415
469
  Barrantes)</li>
416
470
  </ul>
417
- <p>Other:</p>
471
+ <h3 id="Other">Other:</h3>
418
472
  <ul>
419
473
  <li>Tighten version constraints for gem dependencies to avoid future
420
474
  breakages.</li>
421
475
  </ul>
422
- <h2 id="Version-14-1-2-2012-01-09">Version 14.1.2 (2012-01-09)</h2><p>Minor:</p>
476
+ <h2 id="Version-14-1-2-2012-01-09">Version 14.1.2 (2012-01-09)</h2><h3 id="Minor">Minor:</h3>
423
477
  <ul>
424
478
  <li>Don&#39;t consider partial test file pass as full pass.</li>
425
479
  </ul>
426
- <p>Other:</p>
480
+ <h3 id="Other">Other:</h3>
427
481
  <ul>
428
482
  <li>Upgrade to binman 3 for better bundler support.</li>
429
483
  </ul>
430
- <h2 id="Version-14-1-1-2011-12-07">Version 14.1.1 (2011-12-07)</h2><p>Patch:</p>
484
+ <h2 id="Version-14-1-1-2011-12-07">Version 14.1.1 (2011-12-07)</h2><h3 id="Patch">Patch:</h3>
431
485
  <ul>
432
486
  <li><p>Do not fail when given test file no longer exists.</p></li>
433
487
  <li><p>Make xUnit <code>--name</code> option regexp case-insensitive.</p></li>
@@ -436,7 +490,7 @@ see <a href="https://github.com/rspec/rspec-core/issues/445">https://github.com/
436
490
  and <a href="https://github.com/dchelimsky/rspec/issues/44">https://github.com/dchelimsky/rspec/issues/44</a></p></li>
437
491
  <li><p>Ruby 187 does not have Symbol#upcase() method.</p></li>
438
492
  </ul>
439
- <p>Other:</p>
493
+ <h3 id="Other">Other:</h3>
440
494
  <ul>
441
495
  <li><p>README: add another SQLite3 error to known issues.
442
496
  Thanks to Luke Wendling for contributing this patch.</p></li>
@@ -446,7 +500,7 @@ Thanks to Luke Wendling for contributing this patch.</p></li>
446
500
  <li><p>Better variable naming for self-documentation.</p></li>
447
501
  <li><p>Upgrade to binman 2.0.0 for UNIX man pages.</p></li>
448
502
  </ul>
449
- <h2 id="Version-14-1-0-2011-11-03">Version 14.1.0 (2011-11-03)</h2><p>Minor:</p>
503
+ <h2 id="Version-14-1-0-2011-11-03">Version 14.1.0 (2011-11-03)</h2><h3 id="Minor">Minor:</h3>
450
504
  <ul>
451
505
  <li><p>Make servers responsive to quit request (SIGTERM) from upstream.</p><p>This change lets the user quit <a class="md2man-xref">testr-master(1)</a> while it is loading
452
506
  test execution overhead (which can be a lengthy, blocking operation).</p><p>By sending a signal to the server, we don&#39;t have to wait for it to
@@ -456,44 +510,44 @@ have a <code>--help</code> option which displays their UNIX manual page. Try it
456
510
  documented in their manual pages, so you should have everything you
457
511
  need to create <em>your own custom user interface to TestR</em> if you wish! :-)</p></li>
458
512
  </ul>
459
- <p>Patch:</p>
513
+ <h3 id="Patch">Patch:</h3>
460
514
  <ul>
461
515
  <li>SIGCHLD does not awaken main thread in Ruby 1.9.3p0.</li>
462
516
  </ul>
463
- <p>Other:</p>
517
+ <h3 id="Other">Other:</h3>
464
518
  <ul>
465
519
  <li><p>Simplify <a class="md2man-xref">watch(1)</a> <a class="md2man-xref">ps(1)</a> process title monitoring.</p></li>
466
520
  <li><p>Testr: tell user to press ENTER after command key.</p></li>
467
521
  <li><p>README: add tip on loading factory_girl factories.</p></li>
468
522
  </ul>
469
- <h2 id="Version-14-0-3-2011-10-11">Version 14.0.3 (2011-10-11)</h2><p>Patch:</p>
523
+ <h2 id="Version-14-0-3-2011-10-11">Version 14.0.3 (2011-10-11)</h2><h3 id="Patch">Patch:</h3>
470
524
  <ul>
471
525
  <li>Forgot to migrate the <code>testr/config/rails</code> configuration helper to use the
472
526
  new TestR configuration parameter names.</li>
473
527
  </ul>
474
- <h2 id="Version-14-0-2-2011-10-11">Version 14.0.2 (2011-10-11)</h2><p>Patch:</p>
528
+ <h2 id="Version-14-0-2-2011-10-11">Version 14.0.2 (2011-10-11)</h2><h3 id="Patch">Patch:</h3>
475
529
  <ul>
476
530
  <li><p>Fix updating passed/failed test files bookkeeping. Once a test file
477
531
  failed, it was (incorrectly) always considered failed, even if it passed
478
532
  later on.</p></li>
479
533
  <li><p>Do not requeue test files that are waiting to run.</p></li>
480
534
  </ul>
481
- <p>Other:</p>
535
+ <h3 id="Other">Other:</h3>
482
536
  <ul>
483
537
  <li>Rename <code>*.md</code> files to <code>*.markdown</code> to avoid ambiguity.</li>
484
538
  </ul>
485
- <h2 id="Version-14-0-1-2011-10-10">Version 14.0.1 (2011-10-10)</h2><p>Patch:</p>
539
+ <h2 id="Version-14-0-1-2011-10-10">Version 14.0.1 (2011-10-10)</h2><h3 id="Patch">Patch:</h3>
486
540
  <ul>
487
541
  <li><p>Use blue/red for pass/fail instead of green/red to accommodate the color
488
542
  blind.</p></li>
489
543
  <li><p>Incorrect test name regexp was passed down to Test::Unit. This broke
490
544
  focused testing, where only changed tests in a changed test file are run.</p></li>
491
545
  </ul>
492
- <p>Other:</p>
546
+ <h3 id="Other">Other:</h3>
493
547
  <ul>
494
548
  <li>Make <code>testr-master</code> wait for killed worker processes before exiting.</li>
495
549
  </ul>
496
- <h2 id="Version-14-0-0-2011-10-09">Version 14.0.0 (2011-10-09)</h2><p>Major:</p>
550
+ <h2 id="Version-14-0-0-2011-10-09">Version 14.0.0 (2011-10-09)</h2><h3 id="Major">Major:</h3>
497
551
  <ul>
498
552
  <li><p>Renamed this project and its resources from test-loop to TestR.</p></li>
499
553
  <li><p>Renamed the <code>reabsorb_file_globs</code> configuration parameter to
@@ -510,7 +564,7 @@ focused testing, where only changed tests in a changed test file are run.</p></l
510
564
  parameters.</p></li>
511
565
  <li><p>Removed the <code>test/loop/notify</code> and <code>test-loop/coco</code> libraries.</p></li>
512
566
  </ul>
513
- <p>Minor:</p>
567
+ <h3 id="Minor">Minor:</h3>
514
568
  <ul>
515
569
  <li><p>The file system is no longer polled to detect modified files. Instead, it
516
570
  is monitored for file modification events in a portable and efficient
@@ -521,24 +575,24 @@ manner using the <a href="https://github.com/guard/guard">Guard</a> library.</p>
521
575
  <code>before_fork_hooks</code> configuration parameters.</p></li>
522
576
  <li><p>Added ability to re-run passed and failed tests in the <code>testr</code> script.</p></li>
523
577
  </ul>
524
- <p>Other:</p>
578
+ <h3 id="Other">Other:</h3>
525
579
  <ul>
526
580
  <li><p>The monolithic <code>test-loop</code> script has been replaced by several smaller
527
581
  ones that communicate with each other using single-line JSON messages via
528
582
  their standard input &amp; output streams. See &quot;Architecture&quot; in the README.</p></li>
529
583
  <li><p>Now using Bundler to manage development dependencies and gem packaging.</p></li>
530
584
  </ul>
531
- <h2 id="Version-13-0-1-2011-09-21">Version 13.0.1 (2011-09-21)</h2><p>Other:</p>
585
+ <h2 id="Version-13-0-1-2011-09-21">Version 13.0.1 (2011-09-21)</h2><h3 id="Other">Other:</h3>
532
586
  <ul>
533
587
  <li><p>Forgot to include <code>test/loop/coco</code> preset in gem package.</p></li>
534
588
  <li><p>Forgot to mention <code>test/loop/parallel_tests</code> preset in README.</p></li>
535
589
  </ul>
536
- <h2 id="Version-13-0-0-2011-08-24">Version 13.0.0 (2011-08-24)</h2><p>Major:</p>
590
+ <h2 id="Version-13-0-0-2011-08-24">Version 13.0.0 (2011-08-24)</h2><h3 id="Major">Major:</h3>
537
591
  <ul>
538
592
  <li>Pass worker sequence number as the last argument to lambda functions in
539
593
  <code>Test::Loop.before_each_test</code> and <code>Test::Loop.after_each_test</code> arrays.</li>
540
594
  </ul>
541
- <p>Minor:</p>
595
+ <h3 id="Minor">Minor:</h3>
542
596
  <ul>
543
597
  <li><p>In the <code>test/loop/rails</code> configuration preset:</p>
544
598
  <ul>
@@ -552,22 +606,22 @@ gem. (Corné Verbruggen)</p></li>
552
606
  processes like connecting to separate databases better. (Corné
553
607
  Verbruggen)</p></li>
554
608
  </ul>
555
- <p>Other:</p>
609
+ <h3 id="Other">Other:</h3>
556
610
  <ul>
557
611
  <li><p>README: move configuration presets above options.</p></li>
558
612
  <li><p>Eliminate 1 SLOC: .rb extension used in file glob.</p></li>
559
613
  <li><p>Turn off executable bit on loop.rb file mode.</p></li>
560
614
  <li><p>Pass child ENV directly to exec() for atomicity.</p></li>
561
615
  </ul>
562
- <h2 id="Version-12-3-1-2011-07-19">Version 12.3.1 (2011-07-19)</h2><p>Patch:</p>
616
+ <h2 id="Version-12-3-1-2011-07-19">Version 12.3.1 (2011-07-19)</h2><h3 id="Patch">Patch:</h3>
563
617
  <ul>
564
618
  <li>Binary data could not be stored in environment variable values.</li>
565
619
  </ul>
566
- <p>Other:</p>
620
+ <h3 id="Other">Other:</h3>
567
621
  <ul>
568
622
  <li>Forgot to add Jacob Helwig to the gemspec&#39;s authors list.</li>
569
623
  </ul>
570
- <h2 id="Version-12-3-0-2011-07-19">Version 12.3.0 (2011-07-19)</h2><p>Minor:</p>
624
+ <h2 id="Version-12-3-0-2011-07-19">Version 12.3.0 (2011-07-19)</h2><h3 id="Minor">Minor:</h3>
571
625
  <ul>
572
626
  <li><p>Add <code>Test::Loop::max_concurrent_tests</code> configuration parameter to limit
573
627
  the number of test files run concurrently (default 4). Otherwise, with
@@ -575,7 +629,7 @@ large test suites, we could end up swamping the machine running the tests
575
629
  by forking hundreds of test files at once. (Jacob Helwig)</p></li>
576
630
  <li><p>Rails: add matcher for <code>test/factories/*_factory.rb</code>.</p></li>
577
631
  </ul>
578
- <p>Other:</p>
632
+ <h3 id="Other">Other:</h3>
579
633
  <ul>
580
634
  <li><p>ENV returns a Hash with duplicate/frozen keys/values. (Brian D. Burns)</p></li>
581
635
  <li><p>Use Marshal to propagate resume_files to reabsorb.</p></li>
@@ -589,12 +643,12 @@ requested by Juan G. Hurtado..</p></li>
589
643
  <li><p>Add <code>test/loop/coco</code> preset for integrating the <a href="http://lkdjiin.github.com/coco/">Coco code coverage
590
644
  library</a>.</p></li>
591
645
  </ul>
592
- <h2 id="Version-12-1-0-2011-04-29">Version 12.1.0 (2011-04-29)</h2><p>Minor:</p>
646
+ <h2 id="Version-12-1-0-2011-04-29">Version 12.1.0 (2011-04-29)</h2><h3 id="Minor">Minor:</h3>
593
647
  <ul>
594
648
  <li>Add <code>Test::Loop.delay_per_iteration</code> parameter to control the number of
595
649
  seconds (or fractions thereof) to sleep in between test-loop iterations.</li>
596
650
  </ul>
597
- <h2 id="Version-12-0-4-2011-04-29">Version 12.0.4 (2011-04-29)</h2><p>Patch:</p>
651
+ <h2 id="Version-12-0-4-2011-04-29">Version 12.0.4 (2011-04-29)</h2><h3 id="Patch">Patch:</h3>
598
652
  <ul>
599
653
  <li><p>Reabsorb overhead when user&#39;s configuration file changes. (Brian D. Burns
600
654
  and Daniel Pittman)</p></li>
@@ -602,7 +656,7 @@ and Daniel Pittman)</p></li>
602
656
  not necessary! <a href="https://github.com/sunaku/test-loop/issues/5">This issue</a>
603
657
  was solved by upgrading to the newer 2.6.38.4-1 Linux kernel on my system.</p></li>
604
658
  </ul>
605
- <h2 id="Version-12-0-3-2011-04-25">Version 12.0.3 (2011-04-25)</h2><p>Patch:</p>
659
+ <h2 id="Version-12-0-3-2011-04-25">Version 12.0.3 (2011-04-25)</h2><h3 id="Patch">Patch:</h3>
606
660
  <ul>
607
661
  <li><p>Fix SIGCHLD handling and test completion reporting (Daniel Pittman).</p><p>We need to reap all ready children in SIGCHLD, not just the first, and
608
662
  should not be reporting completion in the signal handler.</p><p>On a fast machine, or where there is a slow hook executed at the
@@ -635,13 +689,13 @@ that would also stop you from doing clever things.&quot; ~Doug Gwyn</p></blockqu
635
689
  Many thanks to Brian D. Burns and Daniel Pittman for helping solve <a href="https://github.com/sunaku/test-loop/issues/5">this
636
690
  issue</a>.</p></li>
637
691
  </ul>
638
- <h2 id="Version-12-0-2-2011-04-21">Version 12.0.2 (2011-04-21)</h2><p>Patch:</p>
692
+ <h2 id="Version-12-0-2-2011-04-21">Version 12.0.2 (2011-04-21)</h2><h3 id="Patch">Patch:</h3>
639
693
  <ul>
640
694
  <li><p>Consider DB schema dump file as overhead in Rails.</p></li>
641
695
  <li><p>Do not consider test factories as overhead in Rails.</p></li>
642
696
  <li><p>Run test files when test factory files change in Rails.</p></li>
643
697
  </ul>
644
- <p>Other:</p>
698
+ <h3 id="Other">Other:</h3>
645
699
  <ul>
646
700
  <li><p>Detach worker from master&#39;s terminal device sooner.</p></li>
647
701
  <li><p>All required signals must be present in irb check.</p></li>
@@ -649,19 +703,19 @@ issue</a>.</p></li>
649
703
  <li><p>Retain <a class="md2man-xref">ps(1)</a> column header in watch command output.</p></li>
650
704
  <li><p>Begin parameter descriptions with the noun itself.</p></li>
651
705
  </ul>
652
- <h2 id="Version-12-0-1-2011-04-20">Version 12.0.1 (2011-04-20)</h2><p>Patch:</p>
706
+ <h2 id="Version-12-0-1-2011-04-20">Version 12.0.1 (2011-04-20)</h2><h3 id="Patch">Patch:</h3>
653
707
  <ul>
654
708
  <li><p>Restore support for Ruby 1.8.7.</p></li>
655
709
  <li><p>Allow user&#39;s test execution overhead to fork.</p></li>
656
710
  </ul>
657
- <p>Other:</p>
711
+ <h3 id="Other">Other:</h3>
658
712
  <ul>
659
713
  <li><p>Freeze master&#39;s ENV properly; keep resume key.</p></li>
660
714
  <li><p>Remove completed test from running list sooner.</p></li>
661
715
  <li><p>Add instructions to check for POSIX prerequisites.</p></li>
662
716
  <li><p>Support multiple test-loop instances in watch command.</p></li>
663
717
  </ul>
664
- <h2 id="Version-12-0-0-2011-04-19">Version 12.0.0 (2011-04-19)</h2><p>Major:</p>
718
+ <h2 id="Version-12-0-0-2011-04-19">Version 12.0.0 (2011-04-19)</h2><h3 id="Major">Major:</h3>
665
719
  <ul>
666
720
  <li><p>You must now explicitly <code>require &#39;test/loop/rails&#39;</code> for Rails support
667
721
  because we can only <em>automatically</em> apply our Railtie (to disable class
@@ -670,7 +724,7 @@ your models are already loaded &amp; cached by the Rails environment.</p></li>
670
724
  <li><p>Your tests can no longer read from the user&#39;s terminal (master&#39;s STDIN);
671
725
  instead they will read from an empty stream (the reading end of IO.popen).</p></li>
672
726
  </ul>
673
- <p>Patch:</p>
727
+ <h3 id="Patch">Patch:</h3>
674
728
  <ul>
675
729
  <li><p>Replace threads with SIGCHLD for reporting test results.</p><p>This fixes deadlock errors that sometimes occurred when the user&#39;s chosen
676
730
  test library tried to print something to STDOUT/STDERR (even though those
@@ -678,7 +732,7 @@ streams were redirected to a log file in the worker process).</p><p>Thanks to Br
678
732
  threads to monitor workers was the culprit behind the deadlocks errors.</p></li>
679
733
  <li><p>Ctrl-C did not raise Interrupt in my Rails 3 test suite.</p></li>
680
734
  </ul>
681
- <p>Other:</p>
735
+ <h3 id="Other">Other:</h3>
682
736
  <ul>
683
737
  <li><p>Ensure a clean ENV when reabsorbing overhead. Environment variables set
684
738
  by your test execution overhead are not propagated to subsequent
@@ -694,22 +748,22 @@ reabsorptions. (Brian D. Burns)</p></li>
694
748
  <li><p>Add tip about annihilating test-loop processes.</p></li>
695
749
  <li><p>Fix markdown formatting.</p></li>
696
750
  </ul>
697
- <h2 id="Version-11-0-1-2011-04-14">Version 11.0.1 (2011-04-14)</h2><p>Patch:</p>
751
+ <h2 id="Version-11-0-1-2011-04-14">Version 11.0.1 (2011-04-14)</h2><h3 id="Patch">Patch:</h3>
698
752
  <ul>
699
753
  <li>Only attempt to define Railtie if the current Rails version supports it.</li>
700
754
  </ul>
701
- <h2 id="Version-11-0-0-2011-04-14">Version 11.0.0 (2011-04-14)</h2><p>Major:</p>
755
+ <h2 id="Version-11-0-0-2011-04-14">Version 11.0.0 (2011-04-14)</h2><h3 id="Major">Major:</h3>
702
756
  <ul>
703
757
  <li>The <code>test/loop/rails</code> preset has been internalized and is now applied
704
758
  automatically if your test execution overhead includes Ruby on Rails.</li>
705
759
  </ul>
706
- <p>Minor:</p>
760
+ <h3 id="Minor">Minor:</h3>
707
761
  <ul>
708
762
  <li>If you are using Rails 3, test-loop will automatically set
709
763
  <code>config.cache_classes = false</code> for your test environment. (Brian D.
710
764
  Burns)</li>
711
765
  </ul>
712
- <p>Patch:</p>
766
+ <h3 id="Patch">Patch:</h3>
713
767
  <ul>
714
768
  <li><p>Avoid deadlock errors when printing output from Test::Unit and MiniTest.
715
769
  (Brian D. Burns)</p>
@@ -719,7 +773,7 @@ Burns)</li>
719
773
  Do not treat it as a failure by printing the log file.</p></li>
720
774
  <li><p>Ignore SIGINT in workers; only master must honor it.</p></li>
721
775
  </ul>
722
- <h2 id="Version-10-0-1-2011-04-08">Version 10.0.1 (2011-04-08)</h2><p>Patch:</p>
776
+ <h2 id="Version-10-0-1-2011-04-08">Version 10.0.1 (2011-04-08)</h2><h3 id="Patch">Patch:</h3>
723
777
  <ul>
724
778
  <li><p>Workers must ignore SIGTSTP, otherwise master waits forever before
725
779
  exiting.</p></li>
@@ -728,12 +782,12 @@ unregister the trap handlers inherited from the master process.</p></li>
728
782
  <li><p>Prevent uncaught throw error on subsequent Ctrl-C.</p></li>
729
783
  <li><p>Simpler solution for terminating loop upon Ctrl-C.</p></li>
730
784
  </ul>
731
- <h2 id="Version-10-0-0-2011-04-06">Version 10.0.0 (2011-04-06)</h2><p>Major:</p>
785
+ <h2 id="Version-10-0-0-2011-04-06">Version 10.0.0 (2011-04-06)</h2><h3 id="Major">Major:</h3>
732
786
  <ul>
733
787
  <li>The <code>Test::Loop.before_each_test</code> and <code>Test::Loop.after_each_test</code>
734
788
  parameters are arrays now.</li>
735
789
  </ul>
736
- <h2 id="Version-9-4-0-2011-04-06">Version 9.4.0 (2011-04-06)</h2><p>Minor:</p>
790
+ <h2 id="Version-9-4-0-2011-04-06">Version 9.4.0 (2011-04-06)</h2><h3 id="Minor">Minor:</h3>
737
791
  <ul>
738
792
  <li><p>Allow lambda functions in <code>Test::Loop.test_file_matchers</code> to return <code>nil</code>
739
793
  so that you can exclude certain tests from being executed. (Brian D.
@@ -744,20 +798,20 @@ the following:</p>
744
798
  <pre><code>watch &#39;ps xf | grep test-loop | sed 1,3d&#39;
745
799
  </code></pre></li>
746
800
  </ul>
747
- <p>Patch:</p>
801
+ <h3 id="Patch">Patch:</h3>
748
802
  <ul>
749
803
  <li>Skip <code>at_exit()</code> when exiting master process. This prevents an empty test
750
804
  from being run when exiting the loop after having processed a test/spec
751
805
  helper that loads the Test::Unit library. (Brian D. Burns)</li>
752
806
  </ul>
753
- <p>Other:</p>
807
+ <h3 id="Other">Other:</h3>
754
808
  <ul>
755
809
  <li><p>Use throw/catch to break loop instead of raising SystemExit exception.</p></li>
756
810
  <li><p>Trap SIGTERM with IGNORE/DEFAULT instead of using a closure in master.</p></li>
757
811
  <li><p>Unregister master&#39;s custom signal handlers inside worker processes.</p></li>
758
812
  <li><p>Separate configuration parameters into subsections in README.</p></li>
759
813
  </ul>
760
- <h2 id="Version-9-3-0-2011-04-01">Version 9.3.0 (2011-04-01)</h2><p>Minor:</p>
814
+ <h2 id="Version-9-3-0-2011-04-01">Version 9.3.0 (2011-04-01)</h2><h3 id="Minor">Minor:</h3>
761
815
  <ul>
762
816
  <li><p>Resume currently running tests--as well as those currently needing to be
763
817
  run--after reabsorbing test execution overhead. (Brian D. Burns)</p></li>
@@ -770,7 +824,7 @@ system resources.</p></li>
770
824
  <li><p>Use ANSI clear line command to erase control-key combinations outputted by
771
825
  shells such as BASH and ZSH in test-loop&#39;s output. (Brian D. Burns)</p></li>
772
826
  </ul>
773
- <p>Patch:</p>
827
+ <h3 id="Patch">Patch:</h3>
774
828
  <ul>
775
829
  <li><p><code>@last_ran_at</code> was being set during every iteration of the loop. This is
776
830
  problematic when Ruby&#39;s <code>Time.now</code> is more precise than your filesystem&#39;s
@@ -782,7 +836,7 @@ running waitall(), instead of sending SIGKILL to the entire process group.
782
836
  As a result, test-loop no longer exits with a non-zero status upon SIGINT.</p></li>
783
837
  <li><p>Remove &#39;ansi&#39; gem dependency. (Brian D. Burns)</p></li>
784
838
  </ul>
785
- <p>Other:</p>
839
+ <h3 id="Other">Other:</h3>
786
840
  <ul>
787
841
  <li><p>Add tip on deleting logs for passing tests. (Brian D. Burns)</p></li>
788
842
  <li><p>Add tip on monitoring test processes with <a class="md2man-xref">watch(1)</a> in README.</p></li>