forked from rspec/rspec.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfile.Changelog.html
2176 lines (2176 loc) · 115 KB
/
file.Changelog.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
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>
File: Changelog
— Documentation by YARD 0.8.7.6
</title>
<link rel="stylesheet" href="/stylesheets/docs/style.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="/stylesheets/docs/common.css" type="text/css" charset="utf-8" />
<script type="text/javascript" charset="utf-8">
hasFrames = window.top.frames.main ? true : false;
relpath = '';
framesUrl = "frames.html#!file.Changelog.html";
</script>
<script type="text/javascript" charset="utf-8" src="/javascripts/docs/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="/javascripts/docs/app.js"></script>
</head>
<body>
<div id="header">
<div id="menu">
<a href="_index.html">Index</a> »
<span class="title">File: Changelog</span>
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
</div>
<div id="search">
<a class="full_list_link" id="class_list_link"
href="class_list.html">
Class List
</a>
<a class="full_list_link" id="method_list_link"
href="method_list.html">
Method List
</a>
<a class="full_list_link" id="file_list_link"
href="file_list.html">
File List
</a>
</div>
<div class="clear"></div>
</div>
<iframe id="search_frame"></iframe>
<div id="content"><div id='filecontents'><h3>Development</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.7.0...master">Full Changelog</a></p>
<h3>3.7.0 / 2017-10-17</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.6.0...v3.7.0">Full Changelog</a></p>
<p>Enhancements:</p>
<ul>
<li>Add <code>-n</code> alias for <code>--next-failure</code>. (Ian Ker-Seymer, #2434)</li>
<li>Improve compatibility with <code>--enable-frozen-string-literal</code> option
on Ruby 2.3+. (Pat Allan, #2425, #2427, #2437)</li>
<li>Do not run <code>:context</code> hooks for example groups that have been skipped.
(Devon Estes, #2442)</li>
<li>Add <code>errors_outside_of_examples_count</code> to the JSON formatter.
(Takeshi Arabiki, #2448)</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<li>Improve compatibility with frozen string literal flag. (#2425, Pat Allan)</li>
</ul>
<h3>3.6.0 / 2017-05-04</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.6.0.beta2...v3.6.0">Full Changelog</a></p>
<p>Enhancements:</p>
<ul>
<li>Add seed information to JSON formatter output. (#2388, Mitsutaka Mimura)</li>
<li>Include example id in the JSON formatter output. (#2369, Xavier Shay)</li>
<li>Respect changes to <code>config.output_stream</code> after formatters have been
setup. (#2401, #2419, Ilya Lavrov)</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<li>Delay formatter loading until the last minute to allow accessing the reporter
without triggering formatter setup. (Jon Rowe, #2243)</li>
<li>Ensure context hook failures running before an example can access the
reporter. (Jon Jensen, #2387)</li>
<li>Multiple fixes to allow using the runner multiple times within the same
process: <code>RSpec.clear_examples</code> resets the formatter and no longer clears
shared examples, and streams can be used across multiple runs rather than
being closed after the first. (#2368, Xavier Shay)</li>
<li>Prevent unexpected <code>example_group_finished</code> notifications causing an error.
(#2396, VTJamie)</li>
<li>Fix bugs where <code>config.when_first_matching_example_defined</code> hooks would fire
multiple times in some cases. (Yuji Nakayama, #2400)</li>
<li>Default <code>last_run_status</code> to "unknown" when the <code>status</code> field in the
persistence file contains an unrecognized value. (#2360, matrinox)</li>
<li>Prevent <code>let</code> from defining an <code>initialize</code> method. (#2414, Jon Rowe)</li>
</ul>
<h3>3.6.0.beta2 / 2016-12-12</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.6.0.beta1...v3.6.0.beta2">Full Changelog</a></p>
<p>Enhancements:</p>
<ul>
<li>Include count of errors occurring outside examples in default summaries.
(#2351, Jon Rowe)</li>
<li>Warn when including shared example groups recursively. (#2356, Jon Rowe)</li>
<li>Improve failure snippet syntax highlighting with CodeRay to highlight
RSpec "keywords" like <code>expect</code>. (#2358, Myron Marston)</li>
</ul>
<h3>3.6.0.beta1 / 2016-10-09</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.5.4...v3.6.0.beta1">Full Changelog</a></p>
<p>Enhancements:</p>
<ul>
<li>Warn when duplicate shared examples definitions are loaded due to being
defined in files matching the spec pattern (e.g. <code>_spec.rb</code>) (#2278, Devon Estes)</li>
<li>Improve metadata filtering so that it can match against any object
that implements <code>===</code> instead of treating regular expressions as
special. (Myron Marston, #2294)</li>
<li>Improve <code>rspec -v</code> so that it prints out the versions of each part of
RSpec to prevent confusion. (Myron Marston, #2304)</li>
<li>Add <code>config.fail_if_no_examples</code> option which causes RSpec to fail if
no examples are found. (Ewa Czechowska, #2302)</li>
<li>Nicely format errors encountered while loading spec files.
(Myron Marston, #2323)</li>
<li>Improve the API for enabling and disabling color output (Josh
Justice, #2321):
<ul>
<li>Automatically enable color if the output is a TTY, since color is
nearly always desirable if the output can handle it.</li>
<li>Introduce new CLI flag to force color on (<code>--force-color</code>), even
if the output is not a TTY. <code>--no-color</code> continues to work as well.</li>
<li>Introduce <code>config.color_mode</code> for configuring the color from Ruby.
<code>:automatic</code> is the default and will produce color if the output is
a TTY. <code>:on</code> forces it on and <code>:off</code> forces it off.</li>
</ul></li>
</ul>
<h3>3.5.4 / 2016-09-30</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.5.3...v3.5.4">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Remove accumulated <code>ExampleGroup</code> constants when reseting RSpec,
preventing a memory leak. (TravisSpangle, #2328)</li>
</ul>
<h3>3.5.3 / 2016-09-02</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.5.2...v3.5.3">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>When applying shared group metadata to a host group, overwrite
conflicting keys if the value in the host group was inherited from
a parent group instead of being specified at that level.
(Myron Marston, #2307)</li>
<li>Handle errors in <code>:suite</code> hooks and provide the same nicely formatted
output as errors that happen in examples. (Myron Marston, #2316)</li>
<li>Set the exit status to non-zero when an error occurs in an
<code>after(:context)</code> hook. (Myron Marston, #2320)</li>
</ul>
<h3>3.5.2 / 2016-07-28</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.5.1...v3.5.2">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Wait to report <code>example_finished</code> until the example's <code>execution_result</code>
has been completely filled in. (Myron Marston, #2291)</li>
<li>Make sure example block is still available when using <code>duplicate_with</code>
to clone examples. (bootstraponline, #2298)</li>
<li>Don't include the default <code>--pattern</code> in the Rake task when
<code>rspec_opts</code> specifies its own. (Jon Rowe, #2305)</li>
</ul>
<h3>3.5.1 / 2016-07-06</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.5.0...v3.5.1">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Ensure that config hooks that are added to existing example groups are
added only once. (Eugene Kenny, #2280)</li>
</ul>
<h3>3.5.0 / 2016-07-01</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.5.0.beta4...v3.5.0">Full Changelog</a></p>
<p>Enhancements:</p>
<ul>
<li>Include any <code>SPEC_OPTS</code> in reproduction command printed at the end of
a bisect run. (Simon Coffey, #2274)</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<li>Handle <code>--bisect</code> in <code>SPEC_OPTS</code> environment variable correctly so as
to avoid infinite recursion. (Simon Coffey, #2271)</li>
</ul>
<h3>3.5.0.beta4 / 2016-06-05</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.5.0.beta3...v3.5.0.beta4">Full Changelog</a></p>
<p>Enhancements:</p>
<ul>
<li>Filter out bundler stackframes from backtraces by default, since
Bundler 1.12 now includes its own frames in stack traces produced
by using <code>bundle exec</code>. (Myron Marston, #2240)</li>
<li>HTML Formatter uses exception presenter to get failure message
for consistency with other formatters. (@mrageh, #2222)</li>
<li>Load spec files in the order of the directories or files passed
at the command line, making it easy to make some specs run before
others in a one-off manner. For example, <code>rspec spec/unit
spec/acceptance --order defined</code> will run unit specs before acceptance
specs. (Myron Marston, #2253)</li>
<li>Add new <code>config.include_context</code> API for configuring global or
filtered inclusion of shared contexts in example groups.
(Myron Marston, #2256)</li>
<li>Add new <code>config.shared_context_metadata_behavior = :apply_to_host_groups</code>
option, which causes shared context metadata to be inherited by the
metadata hash of all host groups and examples instead of configuring
implicit auto-inclusion based on the passed metadata. (Myron Marston, #2256)</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<li>Fix <code>--bisect</code> so it works on large spec suites that were previously triggering
"Argument list too long errors" due to all the spec locations being passed as
CLI args. (Matt Jones, #2223).</li>
<li>Fix deprecated <code>:example_group</code>-based filtering so that it properly
applies to matching example groups. (Myron Marston, #2234)</li>
<li>Fix <code>NoMethodError</code> caused by Java backtraces on JRuby. (Michele Piccirillo, #2244)</li>
</ul>
<h3>3.5.0.beta3 / 2016-04-02</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.5.0.beta2...v3.5.0.beta3">Full Changelog</a></p>
<p>Enhancements:</p>
<ul>
<li>Add new <code>config.filter_run_when_matching</code> API, intended to replace
the combination of <code>config.filter_run</code> and
<code>config.run_all_when_everything_filtered</code> (Myron Marston, #2206)</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<li>Use the encoded string logic for source extraction. (Jon Rowe, #2183)</li>
<li>Fix rounding issue in duration formatting helper. (Fabersky, Jon Rowe, #2208)</li>
<li>Fix failure snippet extraction so that <code>def-end</code> snippets
ending with <code>end</code>-only line can be extracted properly.
(Yuji Nakayama, #2215)</li>
</ul>
<h3>3.5.0.beta2 / 2016-03-10</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.5.0.beta1...v3.5.0.beta2">Full Changelog</a></p>
<p>Enhancements:</p>
<ul>
<li>Remove unneeded <code>:execution_result</code> example group metadata, saving a
bit of memory. (Myron Marston, #2172)</li>
<li>Apply hooks registered with <code>config</code> to previously defined groups.
(Myron Marston, #2189)</li>
<li><code>RSpec::Core::Configuration#reporter</code> is now public API under SemVer.
(Jon Rowe, #2193)</li>
<li>Add new <code>config.when_first_matching_example_defined</code> hook. (Myron
Marston, #2175)</li>
</ul>
<h3>3.5.0.beta1 / 2016-02-06</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.4.4...v3.5.0.beta1">Full Changelog</a></p>
<p>Enhancements:</p>
<ul>
<li>Add <code>RSpec::Core::ExampleGroup.currently_executing_a_context_hook?</code>,
primarily for use by rspec-rails. (Sam Phippen, #2131)</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<li>Ensure <code>MultipleExceptionError</code> does not contain a recursive reference
to itself. (Sam Phippen, #2133)</li>
</ul>
<h3>3.4.4 / 2016-03-09</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.4.3...v3.4.4">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix <code>RSpec::Core::RakeTask</code> so that it works with Rake 11.
(Travis Grathwell, #2197)</li>
</ul>
<h3>3.4.3 / 2016-02-19</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.4.2...v3.4.3">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Prevent a <code>TypeError</code> from occurring when running via the rake task when
Ruby crashes. (Patrik Wenger, #2161)</li>
<li>Only consider example and group declaration lines from a specific file
when applying line number filtering, instead of considering all
declaration lines from all spec files. (Myron Marston, #2170)</li>
<li>Fix failure snippet extraction so that snippets that contain <code>do-end</code> style
block and end with <code>end</code>-only line can be extracted properly.
(Yuji Nakayama, #2173)</li>
<li>Prevent infinite recursion when an exception is caused by itself.
(Jon Rowe, #2128)</li>
</ul>
<h3>3.4.2 / 2016-01-26</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.4.1...v3.4.2">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix <code>rspec --profile</code> when an example calls <code>abort</code> or <code>exit</code>.
(Bradley Schaefer, #2144)</li>
<li>Fix <code>--drb</code> so that when no DRb server is running, it prevents
the DRb connection error from being listed as the cause of all
expectation failures. (Myron Marston, #2156)</li>
<li>Fix syntax highlighter so that it works when the <code>coderay</code> gem is
installed as a rubygem but not already available on your load path
(as happens when you use bundler). (Myron Marston, #2159)</li>
</ul>
<h3>3.4.1 / 2015-11-18</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.4.0...v3.4.1">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix backtrace formatter to handle backtraces that are <code>nil</code>.
(Myron Marston, #2118)</li>
</ul>
<h3>3.4.0 / 2015-11-11</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.3.2...v3.4.0">Full Changelog</a></p>
<p>Enhancements:</p>
<ul>
<li>Combine multiple <code>--pattern</code> arguments making them equivalent to
<code>--pattern=1,2,...,n</code>. (Jon Rowe, #2002)</li>
<li>Improve <code>inspect</code> and <code>to_s</code> output for <code>RSpec::Core::Example</code>
objects, replacing Ruby's excessively verbose output. (Gavin Miller, #1922)</li>
<li>Add <code>silence_filter_announcements</code> configuration option.
(David Raffensperger, #2007)</li>
<li>Add optional <code>example_finished</code> notification to the reporter protocol for
when you don't care about the example outcome. (Jon Rowe, #2013)</li>
<li>Switch <code>--bisect</code> to a recursion-based bisection algorithm rather than
a permutation-based one. This better handles cases where an example
depends upon multiple other examples instead of just one and minimizes
the number of runs necessary to determine that an example set cannot be
minimized further. (Simon Coffey, #1997)</li>
<li>Allow simple filters (e.g. <code>:symbol</code> key only) to be triggered by truthey
values. (Tim Mertens, #2035)</li>
<li>Remove unneeded warning about need for <code>ansicon</code> on Windows when using
RSpec's <code>--color</code> option. (Ashley Engelund, #2038)</li>
<li>Add option to configure RSpec to raise errors when issuing warnings.
(Jon Rowe, #2052)</li>
<li>Append the root <code>cause</code> of a failure or error to the printed failure
output when a <code>cause</code> is available. (Adam Magan)</li>
<li>Stop rescuing <code>NoMemoryError</code>, <code>SignalExcepetion</code>, <code>Interrupt</code> and
<code>SystemExit</code>. It is dangerous to interfere with these. (Myron Marston, #2063)</li>
<li>Add <code>config.project_source_dirs</code> setting which RSpec uses to determine
if a backtrace line comes from your project source or from some
external library. It defaults to <code>spec</code>, <code>lib</code> and <code>app</code> but can be
configured differently. (Myron Marston, #2088)</li>
<li>Improve failure line detection so that it looks for the failure line
in any project source directory instead of just in the spec file.
In addition, if no backtrace lines can be found from a project source
file, we fall back to displaying the source of the first backtrace
line. This should virtually eliminate the "Unable to find matching
line from backtrace" messages. (Myron Marston, #2088)</li>
<li>Add support for <code>:extra_failure_lines</code> example metadata that will
be appended to the failure output. (bootstraponline, #2092).</li>
<li>Add <code>RSpec::Core::Example#duplicate_with</code> to produce new examples
with cloned metadata. (bootstraponline, #2098)</li>
<li>Add <code>RSpec::Core::Configuration#on_example_group_definition</code> to register
hooks to be invoked when example groups are created. (bootstraponline, #2094)</li>
<li>Add <code>add_example</code> and <code>remove_example</code> to <code>RSpec::Core::ExampleGroup</code> to
allow manipulating an example groups examples. (bootstraponline, #2095)</li>
<li>Display multiline failure source lines in failure output when Ripper is
available (MRI >= 1.9.2, and JRuby >= 1.7.5 && < 9.0.0.0.rc1).
(Yuji Nakayama, #2083)</li>
<li>Add <code>max_displayed_failure_line_count</code> configuration option
(defaults to 10). (Yuji Nakayama, #2083)</li>
<li>Enhance <code>fail_fast</code> option so it can take a number (e.g. <code>--fail-fast=3</code>)
to force the run to abort after the specified number of failures.
(Jack Scotti, #2065)</li>
<li>Syntax highlight the failure snippets in text formatters when <code>color</code>
is enabled and the <code>coderay</code> gem is installed on a POSIX system.
(Myron Marston, #2109)</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<li>Lock <code>example_status_persistence_file</code> when reading from and writing
to it to prevent race conditions when multiple processes try to use
it. (Ben Woosley, #2029)</li>
<li>Fix regression in 3.3 that caused spec file names with square brackets in
them (such as <code>1[]_spec.rb</code>) to not be loaded properly. (Myron Marston, #2041)</li>
<li>Fix output encoding issue caused by ASCII literal on 1.9.3 (Jon Rowe, #2072)</li>
<li>Fix requires in <code>rspec/core/rake_task.rb</code> to avoid double requires
seen by some users. (Myron Marston, #2101)</li>
</ul>
<h3>3.3.2 / 2015-07-15</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.3.1...v3.3.2">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix formatters to handle exceptions for which <code>backtrace</code> returns <code>nil</code>.
(Myron Marston, #2023)</li>
<li>Fix duplicate formatter detection so that it allows subclasses of formatters
to be added. (Sebastián Tello, #2019)</li>
</ul>
<h3>3.3.1 / 2015-06-18</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.3.0...v3.3.1">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Correctly run <code>before(:suite)</code> (and friends) in the context of an example
group instance, thus making the expected RSpec environment available.
(Jon Rowe, #1986)</li>
</ul>
<h3>3.3.0 / 2015-06-12</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.2.3...v3.3.0">Full Changelog</a></p>
<p>Enhancements:</p>
<ul>
<li>Expose the reporter used to run examples via <code>RSpec::Core::Example#reporter</code>.
(Jon Rowe, #1866)</li>
<li>Make <code>RSpec::Core::Reporter#message</code> a public supported API. (Jon Rowe, #1866)</li>
<li>Allow custom formatter events to be published via
<code>RSpec::Core::Reporter#publish(event_name, hash_of_attributes)</code>. (Jon Rowe, #1869)</li>
<li>Remove dependency on the standard library <code>Set</code> and replace with <code>RSpec::Core::Set</code>.
(Jon Rowe, #1870)</li>
<li>Assign a unique id to each example and group so that they can be
uniquely identified, even for shared examples (and similar situations)
where the location isn't unique. (Myron Marston, #1884)</li>
<li>Use the example id in the rerun command printed for failed examples
when the location is not unique. (Myron Marston, #1884)</li>
<li>Add <code>config.example_status_persistence_file_path</code> option, which is
used to persist the last run status of each example. (Myron Marston, #1888)</li>
<li>Add <code>:last_run_status</code> metadata to each example, which indicates what
happened the last time an example ran. (Myron Marston, #1888)</li>
<li>Add <code>--only-failures</code> CLI option which filters to only the examples
that failed the last time they ran. (Myron Marston, #1888)</li>
<li>Add <code>--next-failure</code> CLI option which allows you to repeatedly focus
on just one of the currently failing examples, then move on to the
next failure, etc. (Myron Marston, #1888)</li>
<li>Make <code>--order random</code> ordering stable, so that when you rerun a
subset with a given seed, the examples will be order consistently
relative to each other. (Myron Marston, #1908)</li>
<li>Set example group constant earlier so errors when evaluating the context
include the example group name (Myron Marson, #1911)</li>
<li>Make <code>let</code> and <code>subject</code> threadsafe. (Josh Cheek, #1858)</li>
<li>Add version information into the JSON formatter. (Mark Swinson, #1883)</li>
<li>Add <code>--bisect</code> CLI option, which will repeatedly run your suite in
order to isolate the failures to the smallest reproducible case.
(Myron Marston, #1917)</li>
<li>For <code>config.include</code>, <code>config.extend</code> and <code>config.prepend</code>, apply the
module to previously defined matching example groups. (Eugene Kenny, #1935)</li>
<li>When invalid options are parsed, notify users where they came from
(e.g. <code>.rspec</code> or <code>~/.rspec</code> or <code>ENV['SPEC_OPTS']</code>) so they can
easily find the source of the problem. (Myron Marston, #1940)</li>
<li>Add pending message contents to the json formatter output. (Jon Rowe, #1949)</li>
<li>Add shared group backtrace to the output displayed by the built-in
formatters for pending examples that have been fixed. (Myron Marston, #1946)</li>
<li>Add support for <code>:aggregate_failures</code> metadata. Tag an example or
group with this metadata and it'll use rspec-expectations'
<code>aggregate_failures</code> feature to allow multiple failures in an example
and list them all, rather than aborting on the first failure. (Myron
Marston, #1946)</li>
<li>When no formatter implements #message add a fallback to prevent those
messages being lost. (Jon Rowe, #1980)</li>
<li>Profiling examples now takes into account time spent in <code>before(:context)</code>
hooks. (Denis Laliberté, Jon Rowe, #1971)</li>
<li>Improve failure output when an example has multiple exceptions, such
as one from an <code>it</code> block and one from an <code>after</code> block. (Myron Marston, #1985)</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<li>Handle invalid UTF-8 strings within exception methods. (Benjamin Fleischer, #1760)</li>
<li>Fix Rake Task quoting of file names with quotes to work properly on
Windows. (Myron Marston, #1887)</li>
<li>Fix <code>RSpec::Core::RakeTask#failure_message</code> so that it gets printed
when the task failed. (Myron Marston, #1905)</li>
<li>Make <code>let</code> work properly when defined in a shared context that is applied
to an individual example via metadata. (Myron Marston, #1912)</li>
<li>Ensure <code>rspec/autorun</code> respects configuration defaults. (Jon Rowe, #1933)</li>
<li>Prevent modules overriding example group defined methods when included,
prepended or extended by config defined after an example group. (Eugene Kenny, #1935)</li>
<li>Fix regression which caused shared examples to be mistakenly run when specs
where filtered to a particular location. (Ben Axnick, #1963)</li>
<li>Fix time formatting logic so that it displays 70 seconds as "1 minute,
10 seconds" rather than "1 minute, 1 second". (Paul Brennan, #1984)</li>
<li>Fix regression where the formatter loader would allow duplicate formatters.
(Jon Rowe, #1990)</li>
</ul>
<h3>3.2.3 / 2015-04-06</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.2.2...v3.2.3">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix how the DSL methods are defined so that RSpec is compatible with
gems that define methods of the same name on <code>Kernel</code> (such as
the <code>its-it</code> gem). (Alex Kwiatkowski, Ryan Ong, #1907)</li>
<li>Fix <code>before(:context) { skip }</code> so that it does not wrongly cause the
spec suite to exit with a non-zero status when no examples failed.
(Myron Marston, #1926)</li>
</ul>
<h3>3.2.2 / 2015-03-11</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.2.1...v3.2.2">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix regression in 3.2.0 that allowed tag-filtered examples to
run even if there was a location filter applied to the spec
file that was intended to limit the file to other examples.
(#1894, Myron Marston)</li>
</ul>
<h3>3.2.1 / 2015-02-23</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.2.0...v3.2.1">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Notify start-of-run seed <em>before</em> <code>start</code> notification rather than
<em>after</em> so that formatters like Fuubar work properly. (Samuel Esposito, #1882)</li>
</ul>
<h3>3.2.0 / 2015-02-03</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.1.7...v3.2.0">Full Changelog</a></p>
<p>Enhancements:</p>
<ul>
<li>Improve the <code>inspect</code> output of example groups. (Mike Dalton, #1687)</li>
<li>When rake task fails, only output the command if <code>verbose</code> flag is
set. (Ben Snape, #1704)</li>
<li>Add <code>RSpec.clear_examples</code> as a clear way to reset examples in between
spec runs, whilst retaining user configuration. (Alexey Fedorov, #1706)</li>
<li>Reduce string allocations when defining and running examples by 70%
and 50% respectively. (Myron Marston, #1738)</li>
<li>Removed dependency on pathname from stdlib. (Sam Phippen, #1703)</li>
<li>Improve the message presented when a user hits Ctrl-C.
(Alex Chaffee #1717, #1742)</li>
<li>Improve shared example group inclusion backtrace displayed
in failed example output so that it works for all methods
of including shared example groups and shows all inclusion
locations. (Myron Marston, #1763)</li>
<li>Issue seed notification at start (as well as the end) of the reporter
run. (Arlandis Word, #1761)</li>
<li>Improve the documentation of around hooks. (Jim Kingdon, #1772)</li>
<li>Support prepending of modules into example groups from config and allow
filtering based on metadata. (Arlandis Word, #1806)</li>
<li>Emit warnings when <code>:suite</code> hooks are registered on an example group
(where it has always been ignored) or are registered with metadata
(which has always been ignored). (Myron Marston, #1805)</li>
<li>Provide a friendly error message when users call RSpec example group
APIs (e.g. <code>context</code>, <code>describe</code>, <code>it</code>, <code>let</code>, <code>before</code>, etc) from
within an example where those APIs are unavailable. (Myron Marston, #1819)</li>
<li>Provide a friendly error message when users call RSpec example
APIs (e.g. <code>expect</code>, <code>double</code>, <code>stub_const</code>, etc) from
within an example group where those APIs are unavailable.
(Myron Marston, #1819)</li>
<li>Add new <code>RSpec::Core::Sandbox.sandboxed { }</code> API that facilitates
testing RSpec with RSpec, allowing you to define example groups
and example from within an example without affecting the global
<code>RSpec.world</code> state. (Tyler Ball, 1808)</li>
<li>Apply line-number filters only to the files they are scoped to,
allowing you to mix filtered and unfiltered files. (Myron Marston, #1839)</li>
<li>When dumping pending examples, include the failure details so that you
don't have to un-pend the example to see it. (Myron Marston, #1844)</li>
<li>Make <code>-I</code> option support multiple values when separated by
<code>File::PATH_SEPARATOR</code>, such as <code>rspec -I foo:bar</code>. This matches
the behavior of Ruby's <code>-I</code> option. (Fumiaki Matsushima, #1855).</li>
<li>Treat each example as having a singleton example group for the
purposes of applying metadata-based features that normally apply
to example groups to individually tagged examples. For example,
<code>RSpec.shared_context "Uses redis", :uses_redis</code> will now apply
to individual examples tagged with <code>:uses_redis</code>, as will
<code>config.include RedisHelpers, :uses_redis</code>, and
<code>config.before(:context, :uses_redis) { }</code>, etc. (Myron Marston, #1749)</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<li>When assigning generated example descriptions, surface errors
raised by <code>matcher.description</code> in the example description.
(Myron Marston, #1771)</li>
<li>Don't consider expectations from <code>after</code> hooks when generating
example descriptions. (Myron Marston, #1771)</li>
<li>Don't apply metadata-filtered config hooks to examples in groups
with matching metadata when those examples override the parent
metadata value to not match. (Myron Marston, #1796)</li>
<li>Fix <code>config.expect_with :minitest</code> so that <code>skip</code> uses RSpec's
implementation rather than Minitest's. (Jonathan Rochkind, #1822)</li>
<li>Fix <code>NameError</code> caused when duplicate example group aliases are defined and
the DSL is not globally exposed. (Aaron Kromer, #1825)</li>
<li>When a shared example defined in an external file fails, use the host
example group (from a loaded spec file) for the re-run command to
ensure the command will actually work. (Myron Marston, #1835)</li>
<li>Fix location filtering to work properly for examples defined in
a nested example group within a shared example group defined in
an external file. (Bradley Schaefer, Xavier Shay, Myron Marston, #1837)</li>
<li>When a pending example fails (as expected) due to a mock expectation,
set <code>RSpec::Core::Example::ExecutionResult#pending_exception</code> --
previously it was not being set but should have been. (Myron Marston, #1844)</li>
<li>Fix rake task to work when <code>rspec-core</code> is installed in a directory
containing a space. (Guido Günther, #1845)</li>
<li>Fix regression in 3.1 that caused <code>describe Regexp</code> to raise errors.
(Durran Jordan, #1853)</li>
<li>Fix regression in 3.x that caused the profile information to be printed
after the summary. (Max Lincoln, #1857)</li>
<li>Apply <code>--seed</code> before loading <code>--require</code> files so that required files
can access the provided seed. (Myron Marston, #1745)</li>
<li>Handle <code>RSpec::Core::Formatters::DeprecationFormatter::FileStream</code> being
reopened with an IO stream, which sometimes happens with spring.
(Kevin Mook, #1757)</li>
</ul>
<h3>3.1.7 / 2014-10-11</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.1.6...v3.1.7">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix <code>Metadata.relative_path</code> so that for a current directory of
<code>/foo/bar</code>, <code>/foo/bar_1</code> is not wrongly converted to <code>._1</code>.
(Akos Vandra, #1730)</li>
<li>Prevent constant lookup mistakenly finding <code>RSpec::ExampleGroups</code> generated
constants on 1.9.2 by appending a trailing <code>_</code> to the generated names.
(Jon Rowe, #1737)</li>
<li>Fix bug in <code>:pending</code> metadata. If it got set in any way besides passing
it as part of the metadata literal passed to <code>it</code> (such as by using
<code>define_derived_metadata</code>), it did not have the desired effect,
instead marking the example as <code>:passed</code>. (Myron Marston, #1739)</li>
</ul>
<h3>3.1.6 / 2014-10-08</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.1.5...v3.1.6">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix regression in rake task pattern handling, that prevented patterns
that were relative from the current directory rather than from <code>spec</code>
from working properly. (Myron Marston, #1734)</li>
<li>Prevent rake task from generating duplicate load path entries.
(Myron Marston, #1735)</li>
</ul>
<h3>3.1.5 / 2014-09-29</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.1.4...v3.1.5">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix issue with the rake task incorrectly escaping strings on Windows.
(Jon Rowe #1718)</li>
<li>Support absolute path patterns. While this wasn't officially supported
previously, setting <code>rake_task.pattern</code> to an absolute path pattern in
RSpec 3.0 and before worked since it delegated to <code>FileList</code> internally
(but now just forwards the pattern on to the <code>rspec</code> command).
(Myron Marston, #1726)</li>
</ul>
<h3>3.1.4 / 2014-09-18</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.1.3...v3.1.4">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix implicit <code>subject</code> when using <code>describe false</code> or <code>describe nil</code>
so that it returns the provided primitive rather than the string
representation. (Myron Marston, #1710)</li>
<li>Fix backtrace filtering to allow code in subdirectories of your
current working directory (such as vendor/bundle/...) to be filtered
from backtraces. (Myron Marston, #1708)</li>
</ul>
<h3>3.1.3 / 2014-09-15</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.1.2...v3.1.3">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix yet another regression in rake task pattern handling, to allow
<code>task.pattern = FileList["..."]</code> to work. That was never intended
to be supported but accidentally worked in 3.0 and earlier.
(Myron Marston, #1701)</li>
<li>Fix pattern handling so that files are normalized to absolute paths
before subtracting the <code>--exclude-pattern</code> matched files from the
<code>--pattern</code> matched files so that it still works even if the patterns
are in slightly different forms (e.g. one starting with <code>./</code>).
(Christian Nelson, #1698)</li>
</ul>
<h3>3.1.2 / 2014-09-08</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.1.1...v3.1.2">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix another regression in rake task pattern handling, so that patterns
that start with <code>./</code> still work. (Christian Nelson, #1696)</li>
</ul>
<h3>3.1.1 / 2014-09-05</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.1.0...v3.1.1">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix a regression in rake task pattern handling, so that <code>rake_task.pattern = array</code>
works again. While we never intended to support array values (or even knew that worked!),
the implementation from 3.0 and earlier used <code>FileList</code> internally, which allows arrays.
The fix restores the old behavior. (Myron Marston, #1694)</li>
</ul>
<h3>3.1.0 / 2014-09-04</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.0.4...v3.1.0">Full Changelog</a></p>
<p>Enhancements:</p>
<ul>
<li>Update files generated by <code>rspec --init</code> so that warnings are enabled
in commented out section of <code>spec_helper</code> rather than <code>.rspec</code> so users
have to consciously opt-in to the setting. (Andrew Hooker, #1572)</li>
<li>Update <code>spec_helper</code> generated by <code>rspec --init</code> so that it sets the new
rspec-expectations <code>include_chain_clauses_in_custom_matcher_descriptions</code>
config option (which will be on by default in RSpec 4) and also sets the
rspec-mocks <code>verify_partial_doubles</code> option (which will also default
to on in RSpec 4). (Myron Marston, #1647)</li>
<li>Provide an <code>inspect</code> output for example procsy objects (used in around
hooks) that doesn't make them look like procs. (Jon Rowe, #1620)</li>
<li>Remove a few unneeded <code>require</code> statements from
<code>rspec/core/rake_task.rb</code>, making it even more lighterweight.
(Myron Marston, #1640)</li>
<li>Allow rspec-core to be used when neither rspec-mocks or
rspec-expectations are installed, without requiring any
user configuration. (Sam Phippen, Myron Marston, #1615)</li>
<li>Don't filter out gems from backtraces by default. (The RSpec
gems will still be filtered). User feedback has indicated
that including gems in default backtraces will be useful.
(Myron Marston, #1641)</li>
<li>Add new <code>config.filter_gems_from_backtrace "rack", "rake"</code> API
to easily filter the named gems from backtraces. (Myron Marston, #1682)</li>
<li>Fix default backtrace filters so that the RSpec binary is
excluded when installing RSpec as a bundler <code>:git</code> dependency.
(Myron Marston, #1648)</li>
<li>Simplify command generated by the rake task so that it no longer
includes unnecessary <code>-S</code>. (Myron Marston, #1559)</li>
<li>Add <code>--exclude-pattern</code> CLI option, <code>config.exclude_pattern =</code> config
option and <code>task.exclude_pattern =</code> rake task config option. Matching
files will be excluded. (John Gesimondo, Myron Marston, #1651, #1671)</li>
<li>When an around hook fails to execute the example, mark it as
pending (rather than passing) so the user is made aware of the
fact that the example did not actually run. (Myron Marston, #1660)</li>
<li>Remove dependency on <code>FileUtils</code> from the standard library so that users do
not get false positives where their code relies on it but they are not
requiring it. (Sam Phippen, #1565)</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<li>Fix rake task <code>t.pattern =</code> option so that it does not run all specs
when it matches no files, by passing along a <code>--pattern</code> option to
the <code>rspec</code> command, rather than resolving the file list and passing
along the files individually. (Evgeny Zislis, #1653)</li>
<li>Fix rake task default pattern so that it follows symlinks properly.
(Myron Marston, #1672)</li>
<li>Fix default pattern used with <code>rspec</code> command so that it follows
symlinks properly. (Myron Marston, #1672)</li>
<li>Change how we assign constant names to example group classes so that
it avoids a problem with <code>describe "Core"</code>. (Daniela Wellisz, #1679)</li>
<li>Handle rendering exceptions that have a different encoding than that
of their original source file. (Jon Rowe, #1681)</li>
<li>Allow access to message_lines without colour for failed examples even
when they're part of a shared example group. (tomykaira, #1689)</li>
</ul>
<h3>3.0.4 / 2014-08-14</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.0.3...v3.0.4">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix processing order of CLI options so that if <code>config.files_to_run</code>
is accessed from a file loaded by <code>--require</code>, <code>--pattern</code> is still
applied. (Myron Marston, #1652)</li>
<li>Fix <code>config.pattern=</code> so that it still takes affect even if
<code>config.files_to_run</code> has already been accessed. (Myron Marston, #1652)</li>
</ul>
<h3>3.0.3 / 2014-07-21</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.0.2...v3.0.3">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Properly convert both parts of a description into strings before
concatenation. (@nicklink483, #1636)</li>
<li>Exclude the working directory when figuring out folders to ignore.
(Jon Rowe, Myron Marston, #1616)</li>
<li>Allow <code>::RSpec::Core::Notifications::FailedExampleNotification#message_lines</code>
to be accessed without a colouriser. (@tomykaira, #1637)</li>
</ul>
<h3>3.0.2 / 2014-06-19</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.0.1...v3.0.2">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix regression in CLI option handling that prevented <code>--tag slow</code>
passed at the command line from overriding <code>--tag ~slow</code> in <code>.rspec</code>.
(Colin Jones, #1602)</li>
<li>Fix metadata <code>:example_group</code> deprecation warning so that it gets
issued at the call site of the configuration that specified it as
a filter rather than later when an example group is defined.
(Myron Marston, #1562)</li>
<li>Make the line that is printed when a shared example group fails indicating
where the concrete example group is white, separating it from the stack trace
that is produced for the failure. (Sam Phippen, Jon Rowe, #1606)</li>
</ul>
<h3>3.0.1 / 2014-06-12</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.0.0...v3.0.1">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix a couple ruby warnings caused by rspec-core when loaded.
(Prem Sichanugrist, #1584)</li>
<li>Example groups named <code>Config</code> will no longer cause a Ruby warning to be
issued. (Jimmy Cuadra, #1580)</li>
</ul>
<h3>3.0.0 / 2014-06-01</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.0.0.rc1...v3.0.0">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix <code>BaseTextFormatter</code> so that it does not re-close a closed output
stream. (Myron Marston)</li>
<li>Fix regression in metadata that caused the metadata hash of a top-level
example group to have a <code>:parent_example_group</code> key even though it has
no parent example group. (Myron Marston)</li>
</ul>
<p>Enhancements:</p>
<ul>
<li>Alter the default <code>spec_helper.rb</code> to no longer recommend
<code>config.full_backtrace = true</code> see #1536 for discussion. (Jon Rowe)</li>
</ul>
<h3>3.0.0.rc1 / 2014-05-18</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.0.0.beta2...v3.0.0.rc1">Full Changelog</a></p>
<p>Breaking Changes for 3.0.0:</p>
<ul>
<li>Change <code>described_class</code> so that in a nested group like <code>describe
MyClass</code>, it returns <code>MyClass</code> rather than the outer group's described
class. (Myron Marston)</li>
<li>Refactor filter manager so that it no longer subclasses Hash and has a
tighter, more domain-specific interface. (Sergey Pchelincev)</li>
<li>Remove legacy colours definitions from <code>BaseTextFormatter</code>. (Jon Rowe)</li>
<li>Remove console color definitions from <code>BaseTextFormatter</code>. (Jon Rowe)</li>
<li>Restructure example group metadata so that the computed keys are
exposed directly off of the metadata hash rather than being on
a nested <code>:example_group</code> subhash. In addition, the parent example
group metadata is now available as <code>[:parent_example_group]</code> rather
than <code>[:example_group][:example_group]</code>. Deprecated access via the
old key structure is still provided. (Myron Marston)</li>
<li>Remove <code>:describes</code> metadata key. It duplicates <code>:described_class</code>
for no good reason. Deprecated access via <code>:describes</code> is still
provided. (Myron Marston)</li>
<li>Rename <code>:example_group_block</code> metadata key to <code>:block</code>.
(Myron Marston)</li>
<li>Remove deprecated <code>RSpec::Core::Example#options</code>. (Myron Marston)</li>
<li>Move <code>BaseTextFormatter#colorize_summary</code> to <code>SummaryNotification#colorize_with</code>
(Jon Rowe).</li>
<li><code>describe some_hash</code> treated <code>some_hash</code> as metadata in RSpec 2.x but
will treat it as the described object in RSpec 3.0. Metadata must
always come after the description args. (Myron Marston)</li>
<li>Remove deprecated <code>display_name</code> alias of <code>ExampleGroup.description</code>.
(Myron Marston)</li>
<li>Remove deprecated <code>describes</code> alias of <code>ExampleGroup.described_class</code>.
(Myron Marston)</li>
<li>Remove deprecated <code>RSpec::Core::ExampleGroup.alias_it_behaves_like_to</code>.
Use <code>RSpec::Core::Configuration#alias_it_behaves_like_to</code> instead.
(Myron Marston)</li>
<li>Remove deprecated <code>RSpec::Core::ExampleGroup.alias_example_to</code>.
Use <code>RSpec::Core::Configuration#alias_example_to</code> instead.
(Myron Marston)</li>
<li>Removed <code>focused</code> example alias and change example/group aliases
<code>fit</code>, <code>focus</code>, <code>fcontext</code> and <code>fdescribe</code> to no longer include
<code>:focused => true</code> metadata. They only contain <code>:focus => true</code>
metadata now. This means that you will need to filter them with
<code>filter_run :focus</code>, not <code>filter_run :focused</code>. (Myron Marston)</li>
<li>Remove <code>--line-number</code> filtering. It's semantically dubious since it's
a global filter (potentially applied to multiple files) but there's no
meaningful connection between the same line number in multiple files.
Instead use the <code>rspec path/to/spec.rb:23:46</code> form, which is terser
and makes more sense as it is scoped to a file. (Myron Marston)</li>
<li>Remove <code>--default_path</code> as an alias for <code>--default-path</code>. (Jon Rowe)</li>
<li>Remove deprecated <code>share_examples_for</code>. There's still
<code>shared_examples</code> and <code>shared_examples_for</code>. (Myron Marston)</li>
<li>Rename <code>RSpec::Core::Configuration#warnings</code> to
<code>RSpec::Core::Configuration#warnings?</code> since it's a boolean flag.
(Myron Marston)</li>
<li>RSpec's global state is no longer reset after a spec run. This gives
more flexibility to alternate runners to decide when and if they
want the state reset. Alternate runners are now responsible for
calling this (or doing a similar reset) if they are going to run
the spec suite multiple times in the same process. (Sam Phippen)</li>
<li>Merge <code>RSpec::Core::CommandLine</code> (never formally declared public)
into <code>RSpec::Core::Runner</code>. (Myron Marston)</li>
<li>Remove <code>color_enabled</code> as an alias of <code>color</code>. (Jon Rowe)</li>
<li>Remove <code>backtrace_cleaner</code> as an alias of <code>backtrace_formatter</code>. (Jon Rowe)</li>
<li>Remove <code>filename_pattern</code> as an alias of <code>pattern</code>. (Jon Rowe)</li>
<li>Extract support for legacy formatters to <code>rspec-legacy_formatters</code>. (Jon Rowe)</li>
<li><code>RSpec::Configuration#formatters</code> now returns a dup to prevent mutation. (Jon Rowe)</li>
<li>Replace <code>stdlib</code> as an available expectation framework with <code>test_unit</code> and
<code>minitest</code>. (Aaron Kromer)</li>
<li>Remove backtrace formatting helpers from <code>BaseTextFormatter</code>. (Jon Rowe)</li>
<li>Extract profiler support to <code>ProfileFormatter</code> and <code>ProfileNotification</code>.
Formatters should implement <code>dump_profile</code> if they wish to respond to <code>--profile</code>.
(Jon Rowe)</li>
<li>Extract remaining formatter state to reporter and notifications. Introduce
<code>ExamplesNotification</code> to share information about examples that was previously
held in <code>BaseFormatter</code>. (Jon Rowe)</li>
</ul>
<p>Enhancements:</p>
<ul>
<li>Add <code>config.default_formatter</code> attribute, which can be used to set a
formatter which will only be used if no other formatter is set
(e.g. via <code>--formatter</code>). (Myron Marston)</li>
<li>Support legacy colour definitions in <code>LegacyFormatterAdaptor</code>. (Jon Rowe)</li>
<li>Migrate <code>execution_result</code> (exposed by metadata) from a hash to a
first-class object with appropriate attributes. <code>status</code> is now
stored and returned as a symbol rather than a string. It retains
deprecated hash behavior for backwards compatibility. (Myron Marston)</li>
<li>Provide console code helper for formatters. (Jon Rowe)</li>
<li>Use raw ruby hashes for the metadata hashes rather than a subclass of
a hash. Computed metadata entries are now computed in advance rather
than being done lazily on first access. (Myron Marston)</li>
<li>Add <code>:block</code> metadata entry to the example metadata, bringing
parity with <code>:block</code> in the example group metadata. (Myron Marston)</li>
<li>Add <code>fspecify</code> and <code>fexample</code> as aliases of <code>specify</code> and <code>example</code>
with <code>:focus => true</code> metadata for parity with <code>fit</code>. (Myron Marston)</li>
<li>Add legacy support for <code>colorize_summary</code>. (Jon Rowe)</li>
<li>Restructure runner so it can be more easily customized in a subclass
for an alternate runner. (Ben Hoskings)</li>
<li>Document <code>RSpec::Core::ConfigurationOptions</code> as an officially
supported public API. (Myron Marston)</li>
<li>Add <code>--deprecation-out</code> CLI option which directs deprecation warnings
to the named file. (Myron Marston)</li>
<li>Minitest 5 compatability for <code>expect_with :stdlib</code> (now available as
<code>expect_with :minitest</code>). (Xavier Shay)</li>
<li>Reporter now notifies formatters of the load time of RSpec and your
specs via <code>StartNotification</code> and <code>SummaryNotification</code>. (Jon Rowe)</li>
<li>Add <code>disable_monkey_patching!</code> config option that disables all monkey
patching from whatever pieces of RSpec you use. (Alexey Fedorov)</li>
<li>Add <code>Pathname</code> support for setting all output streams. (Aaron Kromer)</li>
<li>Add <code>config.define_derived_metadata</code>, which can be used to apply
additional metadata to all groups or examples that match a given
filter. (Myron Marston)</li>
<li>Provide formatted and colorized backtraces via <code>FailedExampleNotification</code>
and send <code>PendingExampleFixedNotifications</code> when the error is due to a
passing spec you expect to fail. (Jon Rowe)</li>
<li>Add <code>dump_profile</code> to formatter API to allow formatters to implement
support for <code>--profile</code>. (Jon Rowe)</li>
<li>Allow colourising text via <code>ConsoleCodes</code> with RSpec 'states'
(e.g. <code>:success</code>, <code>:failure</code>) rather than direct colour codes. (Jon Rowe)</li>
<li>Expose <code>fully_formatted</code> methods off the formatter notification objects
that make it easy for a custom formatter to produce formatted output
like rspec-core's. (Myron Marston)</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<li>Fix <code>spec_helper.rb</code> file generated by <code>rspec --init</code> so that the
recommended settings correctly use the documentation formatter
when running one file. (Myron Marston)</li>
<li>Fix ordering problem where descriptions were generated after
tearing down mocks, which resulted in unexpected exceptions.
(Bradley Schaefer, Aaron Kromer, Andrey Savchenko)</li>
<li>Allow a symbol to be used as an implicit subject (e.g. <code>describe
:foo</code>). (Myron Marston)</li>
<li>Prevent creating an isolated context (i.e. using <code>RSpec.describe</code>) when
already inside a context. There is no reason to do this, and it could
potentially cause unexpected bugs. (Xavier Shay)</li>
<li>Fix shared example group scoping so that when two shared example
groups share the same name at different levels of nested contexts,
the one in the nearest context is used. (Myron Marston)</li>
<li>Fix <code>--warnings</code> option so that it enables warnings immediately so
that it applies to files loaded by <code>--require</code>. (Myron Marston)</li>
<li>Issue a warning when you set <code>config.deprecation_stream</code> too late for
it to take effect because the reporter has already been setup. (Myron Marston)</li>
<li>Add the full <code>RSpec::Core::Example</code> interface to the argument yielded
to <code>around</code> hooks. (Myron Marston)</li>
<li>Line number always takes precendence when running specs with filters.
(Xavier Shay)</li>
<li>Ensure :if and :unless metadata filters are treated as a special case
and are always in-effect. (Bradley Schaefer)</li>
<li>Ensure the currently running installation of RSpec is used when
the rake task shells out to <code>rspec</code>, even if a newer version is also
installed. (Postmodern)</li>
<li>Using a legacy formatter as default no longer causes an infinite loop.
(Xavier Shay)</li>
</ul>
<h3>3.0.0.beta2 / 2014-02-17</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.0.0.beta1...v3.0.0.beta2">Full Changelog</a></p>
<p>Breaking Changes for 3.0.0:</p>
<ul>
<li>Make <code>mock_with</code> option more strict. Strings are no longer supported
(e.g. <code>mock_with "mocha"</code>) -- use a symbol instead. Also, unrecognized
values will now result in an error rather than falling back to the
null mocking adapter. If you want to use the null mocking adapter,
use <code>mock_with :nothing</code> (as has been documented for a long time).
(Myron Marston)</li>
<li>Remove support for overriding RSpec's built-in <code>:if</code> and <code>:unless</code>
filters. (Ashish Dixit)</li>
<li>Custom formatters are now required to call
<code>RSpec::Core::Formatters.register(formatter_class, *notifications)</code>
where <code>notifications</code> is the list of events the formatter wishes to
be notified about. Notifications are handled by methods matching the
names on formatters. This allows us to add or remove notifications
without breaking existing formatters. (Jon Rowe)</li>
<li>Change arguments passed to formatters. Rather than passing multiple
arguments (which limits are ability to add additional arguments as
doing so would break existing formatters), we now pass a notification
value object that exposes the same data via attributes. This will
allow us to add new bits of data to a notification event without
breaking existing formatters. (Jon Rowe)</li>
<li>Remove support for deprecated <code>:alias</code> option for
<code>RSpec.configuration.add_setting</code>. (Myron Marston)</li>
<li>Remove support for deprecated <code>RSpec.configuration.requires = [...]</code>.
(Myron Marston)</li>
<li>Remove support for deprecated <code>--formatter</code> CLI option. (Myron Marston)</li>
<li>Remove support for deprecated <code>--configure</code> CLI option. (Myron Marston)</li>
<li>Remove support for deprecated <code>RSpec::Core::RakeTask#spec_opts=</code>.
(Myron Marston)</li>
<li>An example group level <code>pending</code> block or <code>:pending</code> metadata now executes
the example and cause a failure if it passes, otherwise it will be pending if
it fails. The old "never run" behaviour is still used for <code>xexample</code>, <code>xit</code>,
and <code>xspecify</code>, or via a new <code>skip</code> method or <code>:skip</code> metadata option.
(Xavier Shay)</li>
<li>After calling <code>pending</code> inside an example, the remainder of the example will
now be run. If it passes a failure is raised, otherwise the example is marked
pending. The old "never run" behaviour is provided a by a new <code>skip</code> method.
(Xavier Shay)</li>
<li>Pending blocks inside an example have been removed as a feature with no
direct replacement. Use <code>skip</code> or <code>pending</code> without a block. (Xavier Shay)</li>
<li>Pending statement is no longer allowed in <code>before(:all)</code> hooks. Use <code>skip</code>
instead. (Xavier Shay)</li>
<li>Remove <code>show_failures_in_pending_blocks</code> configuration option. (Xavier Shay)</li>
<li>Remove support for specifying the documentation formatter using
's', 'n', 'spec' or 'nested'. (Jon Rowe)</li>
</ul>
<p>Enhancements:</p>
<ul>
<li>Add example run time to JSON formatter output. (Karthik Kastury)</li>
<li>Add more suggested settings to the files generated by
<code>rspec --init</code>. (Myron Marston)</li>
<li>Add <code>config.alias_example_group_to</code>, which can be used to define a
new method that defines an example group with the provided metadata.
(Michi Huber)</li>
<li>Add <code>xdescribe</code> and <code>xcontext</code> as shortcuts to skip an example group.
(Myron Marston)</li>
<li>Add <code>fdescribe</code> and <code>fcontext</code> as shortcuts to focus an example group.
(Myron Marston)</li>
<li>Don't autorun specs via <code>#at_exit</code> by default. <code>require 'rspec/autorun'</code>
is only needed when running specs via <code>ruby</code>, as it always has been.
Running specs via <code>rake</code> or <code>rspec</code> are both unaffected. (Ben Hoskings)</li>
<li>Add <code>expose_dsl_globally</code> config option, defaulting to true. When disabled
it will remove the monkey patches rspec-core adds to <code>main</code> and <code>Module</code>
(e.g. <code>describe</code>, <code>shared_examples_for</code>, etc). (Jon Rowe)</li>
<li>Expose RSpec DSL entry point methods (<code>describe</code>,
<code>shared_examples_for</code>, etc) on the <code>RSpec</code> constant. Intended for use
when <code>expose_dsl_globally</code> is set to <code>false</code>. (Jon Rowe)</li>
<li>For consistency, expose all example group aliases (including
<code>context</code>) on the <code>RSpec</code> constant. If <code>expose_dsl_globally</code> is set to
<code>true</code>, also expose them on <code>main</code> and <code>Module</code>. Historically, only <code>describe</code>
was exposed. (Jon Rowe, Michi Huber)</li>
<li>Add hook scope <code>:example</code> as an alias for <code>:each</code>, and <code>:context</code> as an alias
for <code>:all</code>. (John Feminella)</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<li>Fix failure (undefined method <code>path</code>) in end-of-run summary
when <code>raise_errors_for_deprecations!</code> is configured. (Myron Marston)</li>
<li>Issue error when attempting to use <code>-i</code> or <code>--I</code> on command line,
too close to <code>-I</code> to be considered short hand for <code>--init</code>. (Jon Rowe)</li>
<li>Prevent adding formatters to an output target if the same
formatter has already been added to that output. (Alex Peattie)</li>
<li>Allow a matcher-generated example description to be used when
the example is pending. (Myron Marston)</li>
<li>Ensure the configured <code>failure_exit_code</code> is used by the rake