forked from rspec/rspec.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfile.Changelog.html
1845 lines (1845 loc) · 97.9 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>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
task when there is a failure. (Jon Rowe)</li>
<li>Restore behaviour whereby system exclusion filters take priority over working
directory (was broken in beta1). (Jon Rowe)</li>
<li>Prevent RSpec mangling file names that have substrings containing <code>line_number</code>
or <code>default_path</code>. (Matijs van Zuijlen)</li>
<li>Fix failure line detection so that it handles relative file paths
(which can happen when running specs through <code>ruby</code> using <code>rspec/autorun</code>).
(Myron Marston, #1829)</li>
</ul>
<h3>3.0.0.beta1 / 2013-11-07</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.99.1...v3.0.0.beta1">Full Changelog</a></p>
<p>Breaking Changes for 3.0.0:</p>
<ul>
<li>Remove explicit support for 1.8.6. (Jon Rowe)</li>
<li>Remove <code>RSpec::Core::ExampleGroup#example</code> and
<code>RSpec::Core::ExampleGroup#running_example</code> methods. If you need
access to the example (e.g. to get its metadata), use a block arg
instead. (David Chelimsky)</li>
<li>Remove <code>TextMateFormatter</code>, it has been moved to <code>rspec-tmbundle</code>.
(Aaron Kromer)</li>
<li>Remove RCov integration. (Jon Rowe)</li>
<li>Remove deprecated support for RSpec 1 constructs (Myron Marston):
<ul>
<li>The <code>Spec</code> and <code>Rspec</code> constants (rather than <code>RSpec</code>).</li>
<li><code>Spec::Runner.configure</code> rather than <code>RSpec.configure</code>.</li>
<li><code>Rake::SpecTask</code> rather than <code>RSpec::Core::RakeTask</code>.</li>
</ul></li>
<li>Remove deprecated support for <code>share_as</code>. (Myron Marston)</li>
<li>Remove <code>--debug</code> option (and corresponding option on
<code>RSpec::Core::Configuration</code>). Instead, use <code>-r<debugger gem name></code> to
load whichever debugger gem you wish to use (e.g. <code>ruby-debug</code>,
<code>debugger</code>, or <code>pry</code>). (Myron Marston)</li>
<li>Extract Autotest support to a seperate gem. (Jon Rowe)</li>
<li>Raise an error when a <code>let</code> or <code>subject</code> declaration is
accessed in a <code>before(:all)</code> or <code>after(:all)</code> hook. (Myron Marston)</li>
<li>Extract <code>its</code> support to a separate gem. (Peter Alfvin)</li>
<li>Disallow use of a shared example group from sibling contexts, making them
fully isolated. 2.14 and 2.99 allowed this but printed a deprecation warning.
(Jon Rowe)</li>
<li>Remove <code>RSpec::Core::Configuration#output</code> and
<code>RSpec::Core::Configuration#out</code> aliases of
<code>RSpec::Core::Configuration#output_stream</code>. (Myron Marston)</li>
<li>Remove legacy ordering APIs deprecated in 2.99.0.beta1. (Myron
Marston)</li>
</ul>
<p>Enhancements:</p>
<ul>
<li>Replace unmaintained syntax gem with coderay gem. (Xavier Shay)</li>
<li>Times in profile output are now bold instead of <code>failure_color</code>.
(Matthew Boedicker)</li>
<li>Add <code>--no-fail-fast</code> command line option. (Gonzalo Rodríguez-Baltanás Díaz)</li>
<li>Runner now considers the local system ip address when running under Drb.
(Adrian CB)</li>
<li>JsonFormatter now includes <code>--profile</code> information. (Alex / @MasterLambaster)</li>
<li>Always treat symbols passed as metadata args as hash
keys with true values. RSpec 2 supported this with the
<code>treat_symbols_as_metadata_keys_with_true_values</code> but
now this behavior is always enabled. (Myron Marston)</li>
<li>Add <code>--dry-run</code> option, which prints the formatter output
of your suite without running any examples or hooks.
(Thomas Stratmann, Myron Marston)</li>
<li>Document the configuration options and default values in the <code>spec_helper.rb</code>
file that is generated by RSpec. (Parker Selbert)</li>
<li>Give generated example group classes a friendly name derived
from the docstring, rather than something like "Nested_2".
(Myron Marston)</li>
<li>Avoid affecting randomization of user code when shuffling
examples so that users can count on their own seeds
working. (Travis Herrick)</li>
<li>Ordering is no longer a single global property of the test suite.
Each group can pick an ordering using <code>:order</code> metadata. (Andy
Lindeman, Sam Phippen, Myron Marston)</li>
<li>Allow named custom ordering strategies to be registered, which can
then be used on individual example groups. (Andy Lindeman, Sam
Phippen, Myron Marston)</li>
</ul>
<p>Deprecations:</p>
<ul>
<li><code>treat_symbols_as_metadata_keys_with_true_values</code> is deprecated and no
longer has an affect now that the behavior it enabled is always
enabled. (Myron Marston)</li>
</ul>
<h3>2.99.2 / 2014-08-19</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.99.1...v2.99.2">Full Changelog</a></p>
<p>Enhancements:</p>
<ul>
<li>Improve deprecation warning for RSpec 3 change in <code>describe <a symbol></code>
behavior. (Jon Rowe, #1667)</li>
</ul>
<h3>2.99.1 / 2014-06-19</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.99.0...v2.99.1">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Add missing deprecation warning for when <code>RSpec::Core::Runner</code> is used
multiple times in the same process. In 2.x RSpec's global state was
automatically cleared between runs but in 3.0 you need to call <code>RSpec.reset</code>
manually in these situations. (Sam Phippen, #1587)</li>
<li>Prevent deprecation being accidentally issues when doubles used with <code>be_</code>
matchers due to automatically generated descriptions. (Jon Rowe, #1573)</li>
<li>Load <code>rspec/core</code> when loading <code>rspec/core/rake_task</code> to ensure we can
issue deprecations correctly. (Jon Rowe, #1612)</li>
</ul>
<h3>2.99.0 / 2014-06-01</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.99.0.rc1...v2.99.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>Use <code>RSpec::Configuration#backtrace_exclusion_patterns</code> rather than the
deprecated <code>RSpec::Configuration#backtrace_clean_patterns</code> when mocking
with rr. (David Dollar)</li>
</ul>
<h3>2.99.0.rc1 / 2014-05-18</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.99.0.beta2...v2.99.0.rc1">Full Changelog</a></p>
<p>Enhancements:</p>
<ul>
<li>Add <code>--deprecation-out</code> CLI option which directs deprecation warnings
to the named file. (Myron Marston)</li>
<li>Backport support for <code>skip</code> in metadata to skip execution of an example.
(Xavier Shay, #1472)</li>
<li>Add <code>Pathname</code> support for setting all output streams. (Aaron Kromer)</li>
<li>Add <code>test_unit</code> and <code>minitest</code> expectation frameworks. (Aaron Kromer)</li>
</ul>
<p>Deprecations:</p>
<ul>
<li>Deprecate <code>RSpec::Core::Pending::PendingDeclaredInExample</code>, use
<code>SkipDeclaredInExample</code> instead. (Xavier Shay)</li>
<li>Issue a deprecation when <code>described_class</code> is accessed from within
a nested <code>describe <SomeClass></code> example group, since <code>described_class</code>
will return the innermost described class in RSpec 3 rather than the
outermost described class, as it behaved in RSpec 2. (Myron Marston)</li>
<li>Deprecate <code>RSpec::Core::FilterManager::DEFAULT_EXCLUSIONS</code>,
<code>RSpec::Core::FilterManager::STANDALONE_FILTERS</code> and use of
<code>#empty_without_conditional_filters?</code> on those filters. (Sergey Pchelincev)</li>
<li>Deprecate <code>RSpec::Core::Example#options</code> in favor of
<code>RSpec::Core::Example#metadata</code>. (Myron Marston)</li>
<li>Issue warning when passing a symbol or hash to <code>describe</code> or <code>context</code>
as the first argument. In RSpec 2.x this would be treated as metadata
but in RSpec 3 it'll be treated as the described object. To continue
having it treated as metadata, pass a description before the symbol or
hash. (Myron Marston)</li>
<li>Deprecate <code>RSpec::Core::BaseTextFormatter::VT100_COLORS</code> and
<code>RSpec::Core::BaseTextFormatter::VT100_COLOR_CODES</code> in favour
of <code>RSpec::Core::BaseTextFormatter::ConsoleCodes::VT100_CODES</code> and
<code>RSpec::Core::BaseTextFormatter::ConsoleCodes::VT100_CODE_VALUES</code>.
(Jon Rowe)</li>
<li>Deprecate <code>RSpec::Core::ExampleGroup.display_name</code> in favor of
<code>RSpec::Core::ExampleGroup.description</code>. (Myron Marston)</li>
<li>Deprecate <code>RSpec::Core::ExampleGroup.describes</code> in favor of
<code>RSpec::Core::ExampleGroup.described_class</code>. (Myron Marston)</li>
<li>Deprecate <code>RSpec::Core::ExampleGroup.alias_example_to</code> in favor of
<code>RSpec::Core::Configuration#alias_example_to</code>. (Myron Marston)</li>
<li>Deprecate <code>RSpec::Core::ExampleGroup.alias_it_behaves_like_to</code> in favor
of <code>RSpec::Core::Configuration#alias_it_behaves_like_to</code>. (Myron Marston)</li>
<li>Deprecate <code>RSpec::Core::ExampleGroup.focused</code> in favor of
<code>RSpec::Core::ExampleGroup.focus</code>. (Myron Marston)</li>
<li>Add deprecation warning for <code>config.filter_run :focused</code> since
example aliases <code>fit</code> and <code>focus</code> will no longer include
<code>:focused</code> metadata but will continue to include <code>:focus</code>. (Myron Marston)</li>
<li>Deprecate filtering by <code>:line_number</code> (e.g. <code>--line-number</code> from the
CLI). Use location filtering instead. (Myron Marston)</li>
<li>Deprecate <code>--default_path</code> as an alternative to <code>--default-path</code>. (Jon Rowe)</li>
<li>Deprecate <code>RSpec::Core::Configuration#warnings</code> in favor of
<code>RSpec::Core::Configuration#warnings?</code>. (Myron Marston)</li>
<li>Deprecate <code>share_examples_for</code> in favor of <code>shared_examples_for</code> or
just <code>shared_examples</code>. (Myron Marston)</li>
<li>Deprecate <code>RSpec::Core::CommandLine</code> in favor of
<code>RSpec::Core::Runner</code>. (Myron Marston)</li>
<li>Deprecate <code>#color_enabled</code>, <code>#color_enabled=</code> and <code>#color?</code> in favour of
<code>#color</code>, <code>#color=</code> and <code>#color_enabled? output</code>. (Jon Rowe)</li>
<li>Deprecate <code>#filename_pattern</code> in favour of <code>#pattern</code>. (Jon Rowe)</li>
<li>Deprecate <code>#backtrace_cleaner</code> in favour of <code>#backtrace_formatter</code>. (Jon Rowe)</li>
<li>Deprecate mutating <code>RSpec::Configuration#formatters</code>. (Jon Rowe)</li>
<li>Deprecate <code>stdlib</code> as an available expectation framework in favour of
<code>test_unit</code> and <code>minitest</code>. (Aaron Kromer)</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<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><code>skip</code> with a block should not execute the block. (Xavier Shay)</li>
</ul>
<h3>2.99.0.beta2 / 2014-02-17</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.99.0.beta1...v2.99.0.beta2">Full Changelog</a></p>
<p>Enhancements:</p>
<ul>
<li>Add <code>is_expected</code> for one-liners that read well with the
<code>expect</code>-based syntax. <code>is_expected</code> is simply defined as
<code>expect(subject)</code> and can be used in an expression like:
<code>it { is_expected.to read_well }</code>. (Myron Marston)</li>
<li>Backport <code>skip</code> from RSpec 3, which acts like <code>pending</code> did in RSpec 2
when not given a block, since the behavior of <code>pending</code> is changing in
RSpec 3. (Xavier Shay)</li>
</ul>
<p>Deprecations:</p>
<ul>
<li>Deprecate inexact <code>mock_with</code> config options. RSpec 3 will only support
the exact symbols <code>:rspec</code>, <code>:mocha</code>, <code>:flexmock</code>, <code>:rr</code> or <code>:nothing</code>
(or any module that implements the adapter interface). RSpec 2 did
fuzzy matching but this will not be supported going forward.
(Myron Marston)</li>
<li>Deprecate <code>show_failures_in_pending_blocks</code> config option. To achieve
the same behavior as the option enabled, you can use a custom
formatter instead. (Xavier Shay)</li>
<li>Add a deprecation warning for the fact that the behavior of <code>pending</code>
is changing in RSpec 3 -- rather than skipping the example (as it did
in 2.x when no block was provided), it will run the example and mark
it as failed if no exception is raised. Use <code>skip</code> instead to preserve
the old behavior. (Xavier Shay)</li>
<li>Deprecate 's', 'n', 'spec' and 'nested' as aliases for documentation
formatter. (Jon Rowe)</li>
<li>Deprecate <code>RSpec::Core::Reporter#abort</code> in favor of
<code>RSpec::Core::Reporter#finish</code>. (Jon Rowe)</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>Fix issue were overridding spec ordering from the command line wasn't
fully recognised interally. (Jon Rowe)</li>
</ul>
<h3>2.99.0.beta1 / 2013-11-07</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.14.7...v2.99.0.beta1">Full Changelog</a></p>
<p>Enhancements</p>
<ul>
<li>Block-based DSL methods that run in the context of an example
(<code>it</code>, <code>before(:each)</code>, <code>after(:each)</code>, <code>let</code> and <code>subject</code>)
now yield the example as a block argument. (David Chelimsky)</li>
<li>Warn when the name of more than one example group is submitted to
<code>include_examples</code> and it's aliases. (David Chelimsky)</li>
<li>Add <code>expose_current_running_example_as</code> config option for
use during the upgrade process when external gems use the
deprecated <code>RSpec::Core::ExampleGroup#example</code> and
<code>RSpec::Core::ExampleGroup#running_example</code> methods. (Myron Marston)</li>
<li>Limit spamminess of deprecation messages. (Bradley Schaefer, Loren Segal)</li>
<li>Add <code>config.raise_errors_for_deprecations!</code> option, which turns
deprecations warnings into errors to surface the full backtrace
of the call site. (Myron Marston)</li>
</ul>
<p>Deprecations</p>
<ul>
<li>Deprecate <code>RSpec::Core::ExampleGroup#example</code> and
<code>RSpec::Core::ExampleGroup#running_example</code> methods. If you need
access to the example (e.g. to get its metadata), use a block argument
instead. (David Chelimsky)</li>
<li>Deprecate use of <code>autotest/rspec2</code> in favour of <code>rspec-autotest</code>. (Jon Rowe)</li>
<li>Deprecate RSpec's built-in debugger support. Use a CLI option like
<code>-rruby-debug</code> (for the ruby-debug gem) or <code>-rdebugger</code> (for the
debugger gem) instead. (Myron Marston)</li>
<li>Deprecate <code>RSpec.configuration.treat_symbols_as_metadata_keys_with_true_values = false</code>.
RSpec 3 will not support having this option set to <code>false</code>. (Myron Marston)</li>
<li>Deprecate accessing a <code>let</code> or <code>subject</code> declaration in
a <code>after(:all)</code> hook. (Myron Marston, Jon Rowe)</li>
<li>Deprecate built-in <code>its</code> usage in favor of <code>rspec-its</code> gem due to planned
removal in RSpec 3. (Peter Alfvin)</li>
<li>Deprecate <code>RSpec::Core::PendingExampleFixedError</code> in favor of
<code>RSpec::Core::Pending::PendingExampleFixedError</code>. (Myron Marston)</li>
<li>Deprecate <code>RSpec::Core::Configuration#out</code> and
<code>RSpec::Core::Configuration#output</code> in favor of
<code>RSpec::Core::Configuration#output_stream</code>. (Myron Marston)</li>
<li>Deprecate legacy ordering APIs.
<ul>
<li>You should use <code>register_ordering(:global)</code> instead of these:</li>
<li><code>RSpec::Core::Configuration#order_examples</code></li>
<li><code>RSpec::Core::Configuration#order_groups</code></li>
<li><code>RSpec::Core::Configuration#order_groups_and_examples</code></li>
<li>These are deprecated with no replacement because in RSpec 3
ordering is a property of individual example groups rather than
just a global property of the entire test suite:</li>
<li><code>RSpec::Core::Configuration#order</code></li>
<li><code>RSpec::Core::Configuration#randomize?</code></li>
<li><code>--order default</code> is deprecated in favor of <code>--order defined</code>
(Myron Marston)</li>
</ul></li>
</ul>
<h3>2.14.8 / 2014-02-27</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.14.7...v2.14.8">Full Changelog</a></p>
<p>Bug fixes:</p>
<ul>
<li>Fix regression with the <code>textmateformatter</code> that prevented backtrace links
from being clickable. (Stefan Daschek)</li>
</ul>
<h3>2.14.7 / 2013-10-29</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.14.6...v2.14.7">Full Changelog</a></p>
<p>Bug fixes:</p>
<ul>
<li>Fix regression in 2.14.6 that broke the Fivemat formatter.
It depended upon either
<code>example.execution_result[:exception].pending_fixed?</code> (which
was removed in 2.14.6 to fix an issue with frozen error objects)
or <code>RSpec::Core::PendingExampleFixedError</code> (which was renamed
to <code>RSpec::Core::Pending::PendingExampleFixedError</code> in 2.8.
This fix makes a constant alias for the old error name.
(Myron Marston)</li>
</ul>
<h3>2.14.6 / 2013-10-15</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.14.5...v2.14.6">Full Changelog</a></p>
<p>Bug fixes:</p>
<ul>
<li>Format stringified numbers correctly when mathn library is loaded.
(Jay Hayes)</li>
<li>Fix an issue that prevented the use of frozen error objects. (Lars
Gierth)</li>
</ul>
<h3>2.14.5 / 2013-08-13</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.14.4...v2.14.5">Full Changelog</a></p>
<p>Bug fixes:</p>
<ul>
<li>Fix a <code>NoMethodError</code> that was being raised when there were no shared
examples or contexts declared and <code>RSpec.world.reset</code> is invoked.
(thepoho, Jon Rowe, Myron Marston)</li>
<li>Fix a deprecation warning that was being incorrectly displayed when
<code>shared_examples</code> are declared at top level in a <code>module</code> scope.
(Jon Rowe)</li>
<li>Fix after(:all) hooks so consecutive (same context) scopes will run even if
one raises an error. (Jon Rowe, Trejkaz)</li>
<li>JsonFormatter no longer dies if <code>dump_profile</code> isn't defined (Alex / @MasterLambaster, Jon Rowe)</li>
</ul>
<h3>2.14.4 / 2013-07-21</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.14.3...v2.14.4">Full Changelog</a></p>
<p>Bug fixes</p>
<ul>
<li>Fix regression in 2.14: ensure configured requires (via <code>-r</code> option)
are loaded before spec files are loaded. This allows the spec files
to programatically change the file pattern (Jon Rowe).</li>
<li>Autoload <code>RSpec::Mocks</code> and <code>RSpec::Expectations</code> when referenced if
they are not already loaded (<code>RSpec::Matches</code> has been autoloaded
for a while). In the <code>rspec</code> gem, we changed it recently to stop
loading <code>rspec/mocks</code> and <code>rspec/expectations</code> by default, as some
users reported problems where they were intending to use mocha,
not rspec-mocks, but rspec-mocks was loaded and causing a conflict.