Skip to content

Commit c658179

Browse files
committedJun 12, 2015
Update with 3.3 release info.
1 parent 153291f commit c658179

File tree

1 file changed

+233
-22
lines changed

1 file changed

+233
-22
lines changed
 

‎source/blog/2015-06-12-rspec-3-3-has-been-released.md

+233-22
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ any regressions, please let us know, and we'll get a patch release
1010
out with a fix ASAP.
1111

1212
RSpec continues to be a community-driven project with contributors
13-
from all over the world. This release includes 752 commits and 198
13+
from all over the world. This release includes 769 commits and 200
1414
merged pull requests from nearly 50 different contributors!
1515

1616
Thank you to everyone who helped make this release happen!
@@ -84,7 +84,7 @@ run it), and it failed the last time it ran locally, even if it was weeks ago,
8484
it'll be included when you run `rspec --only-failures`.
8585

8686
See our [relish
87-
docs (TODO)](https://relishapp.com/rspec-staging/rspec-core/docs/command-line/only-failures)
87+
docs](https://relishapp.com/rspec/rspec-core/v/3-3/docs/command-line/only-failures)
8888
for an end-to-end example of this feature.
8989

9090
### Core: New `--next-failure` option
@@ -157,7 +157,7 @@ of the suite to try to narrow an ordering dependency down to a minimal
157157
reproduction case.
158158

159159
See our [relish
160-
docs (TODO)](https://relishapp.com/rspec-staging/rspec-core/docs/command-line/bisect)
160+
docs](https://relishapp.com/rspec/rspec-core/v/3-3/docs/command-line/bisect)
161161
for an end-to-end example of this feature.
162162

163163
### Core: Thread Safe `let` and `subject`
@@ -170,7 +170,7 @@ work](https://github.com/rspec/rspec-core/pull/1858) of Josh Cheek.
170170
Note that the thread safety synchronization does add a bit of overhead,
171171
as you'd expect. If you're not spinning up any threads in your examples
172172
and want to avoid that overhead, you can configure RSpec to
173-
[disable](TODO) the thread safety.
173+
[disable](http://rspec.info/documentation/3.3/rspec-core/RSpec/Core/Configuration.html#threadsafe-instance_method) the thread safety.
174174

175175
### Expectations: New `aggregrate_failures` API
176176

@@ -286,7 +286,7 @@ RSpec.describe Client, :aggregate_failures do
286286
end
287287
~~~
288288

289-
If you want to enable this feature everywhere, you can use [`define_derived_metadata`](TODO):
289+
If you want to enable this feature everywhere, you can use [`define_derived_metadata`](http://rspec.info/documentation/3.3/rspec-core/RSpec/Core/Configuration.html#define_derived_metadata-instance_method):
290290

291291
~~~ ruby
292292
RSpec.configure do |c|
@@ -373,8 +373,7 @@ Thanks to John Ceh for implementing the latter improvement!
373373

374374
### Mocks: Stubbing `MyClass.new` Verifies Against `MyClass#initialize`
375375

376-
RSpec's [verifying doubles
377-
(TODO)](https://relishapp.com/rspec/rspec-mocks/v/3-2/docs/verifying-doubles)
376+
RSpec's [verifying doubles](https://relishapp.com/rspec/rspec-mocks/v/3-3/docs/verifying-doubles)
378377
use the metadata that Ruby's reflection capabilities provide to verify,
379378
among other things, that passed arguments are valid according to the
380379
original method's signature. However, when a method is defined using
@@ -426,39 +425,39 @@ Thanks to Gabe Martin-Dempesy for this improvement!
426425

427426
## Stats
428427

429-
### Combined:
428+
### Combined:
430429

431-
* **Total Commits**: 752
432-
* **Merged pull requests**: 198
430+
* **Total Commits**: 769
431+
* **Merged pull requests**: 200
433432
* **49 contributors**: Aaron Kromer, Alex Kwiatkowski, Andrey Botalov, Anton Davydov, Ben Axnick, Benjamin Fleischer, Bradley Schaefer, ChrisArcand, David Daniell, Denis Laliberté, Eugene Kenny, Fabian Wiesel, Fabien Schurter, Fabio Napoleoni, Gabe Martin-Dempesy, Gavin Miller, Igor Zubkov, Jared Beck, Jean van der Walt, Joe Grossberg, Johannes Gorset, John Ceh, Jon Rowe, Josh Cheek, Leo Arnold, Lucas Mazza, Mark Swinson, Mauricio Linhares, Melissa Xie, Myron Marston, Nicholas Chmielewski, Nicholas Henry, Orien Madgwick, Pavel Shpak, Raymond Sanchez, Ryan Mulligan, Ryan Ong, Sam Phippen, Samnang Chhun, Samuel Esposito, Siva Gollapalli, Tim Wade, Tony Ta, Vít Ondruch, Yule, charlierudolph, machty, raymond sanchez, takiy33
434433

435-
### rspec-core:
434+
### rspec-core:
436435

437-
* **Total Commits**: 314
438-
* **Merged pull requests**: 63
436+
* **Total Commits**: 323
437+
* **Merged pull requests**: 65
439438
* **19 contributors**: Alex Kwiatkowski, Ben Axnick, Benjamin Fleischer, Denis Laliberté, Eugene Kenny, Fabien Schurter, Fabio Napoleoni, Jon Rowe, Josh Cheek, Leo Arnold, Mark Swinson, Melissa Xie, Myron Marston, Raymond Sanchez, Ryan Ong, Samuel Esposito, Yule, raymond sanchez, takiy33
440439

441-
### rspec-expectations:
440+
### rspec-expectations:
442441

443-
* **Total Commits**: 146
442+
* **Total Commits**: 148
444443
* **Merged pull requests**: 40
445444
* **12 contributors**: Andrey Botalov, ChrisArcand, Fabien Schurter, Gavin Miller, Jared Beck, Jon Rowe, Myron Marston, Ryan Mulligan, Tim Wade, charlierudolph, machty, takiy33
446445

447-
### rspec-mocks:
446+
### rspec-mocks:
448447

449-
* **Total Commits**: 130
448+
* **Total Commits**: 132
450449
* **Merged pull requests**: 39
451450
* **13 contributors**: Bradley Schaefer, Fabien Schurter, John Ceh, Jon Rowe, Mauricio Linhares, Myron Marston, Nicholas Henry, Pavel Shpak, Sam Phippen, Samnang Chhun, Siva Gollapalli, Tim Wade, takiy33
452451

453-
### rspec-rails:
452+
### rspec-rails:
454453

455-
* **Total Commits**: 81
454+
* **Total Commits**: 83
456455
* **Merged pull requests**: 24
457456
* **15 contributors**: Aaron Kromer, Anton Davydov, David Daniell, Gabe Martin-Dempesy, Igor Zubkov, Jean van der Walt, Joe Grossberg, Johannes Gorset, Jon Rowe, Lucas Mazza, Myron Marston, Orien Madgwick, Tony Ta, Vít Ondruch, takiy33
458457

459-
### rspec-support:
458+
### rspec-support:
460459

461-
* **Total Commits**: 81
460+
* **Total Commits**: 83
462461
* **Merged pull requests**: 32
463462
* **8 contributors**: Benjamin Fleischer, Fabian Wiesel, Gavin Miller, Jon Rowe, Myron Marston, Nicholas Chmielewski, Siva Gollapalli, takiy33
464463

@@ -480,4 +479,216 @@ Thanks to Gabe Martin-Dempesy for this improvement!
480479

481480
## Release Notes
482481

483-
TODO
482+
### rspec-core-3.3.0
483+
[Full Changelog](http://github.com/rspec/rspec-core/compare/v3.2.3...v3.3.0)
484+
485+
Enhancements:
486+
487+
* Expose the reporter used to run examples via `RSpec::Core::Example#reporter`.
488+
(Jon Rowe, #1866)
489+
* Make `RSpec::Core::Reporter#message` a public supported API. (Jon Rowe, #1866)
490+
* Allow custom formatter events to be published via
491+
`RSpec::Core::Reporter#publish(event_name, hash_of_attributes)`. (Jon Rowe, #1869)
492+
* Remove dependency on the standard library `Set` and replace with `RSpec::Core::Set`.
493+
(Jon Rowe, #1870)
494+
* Assign a unique id to each example and group so that they can be
495+
uniquely identified, even for shared examples (and similar situations)
496+
where the location isn't unique. (Myron Marston, #1884)
497+
* Use the example id in the rerun command printed for failed examples
498+
when the location is not unique. (Myron Marston, #1884)
499+
* Add `config.example_status_persistence_file_path` option, which is
500+
used to persist the last run status of each example. (Myron Marston, #1888)
501+
* Add `:last_run_status` metadata to each example, which indicates what
502+
happened the last time an example ran. (Myron Marston, #1888)
503+
* Add `--only-failures` CLI option which filters to only the examples
504+
that failed the last time they ran. (Myron Marston, #1888)
505+
* Add `--next-failure` CLI option which allows you to repeatedly focus
506+
on just one of the currently failing examples, then move on to the
507+
next failure, etc. (Myron Marston, #1888)
508+
* Make `--order random` ordering stable, so that when you rerun a
509+
subset with a given seed, the examples will be order consistently
510+
relative to each other. (Myron Marston, #1908)
511+
* Set example group constant earlier so errors when evaluating the context
512+
include the example group name (Myron Marson, #1911)
513+
* Make `let` and `subject` threadsafe. (Josh Cheek, #1858)
514+
* Add version information into the JSON formatter. (Mark Swinson, #1883)
515+
* Add `--bisect` CLI option, which will repeatedly run your suite in
516+
order to isolate the failures to the smallest reproducible case.
517+
(Myron Marston, #1917)
518+
* For `config.include`, `config.extend` and `config.prepend`, apply the
519+
module to previously defined matching example groups. (Eugene Kenny, #1935)
520+
* When invalid options are parsed, notify users where they came from
521+
(e.g. `.rspec` or `~/.rspec` or `ENV['SPEC_OPTS']`) so they can
522+
easily find the source of the problem. (Myron Marston, #1940)
523+
* Add pending message contents to the json formatter output. (Jon Rowe, #1949)
524+
* Add shared group backtrace to the output displayed by the built-in
525+
formatters for pending examples that have been fixed. (Myron Marston, #1946)
526+
* Add support for `:aggregate_failures` metadata. Tag an example or
527+
group with this metadata and it'll use rspec-expectations'
528+
`aggregate_failures` feature to allow multiple failures in an example
529+
and list them all, rather than aborting on the first failure. (Myron
530+
Marston, #1946)
531+
* When no formatter implements #message add a fallback to prevent those
532+
messages being lost. (Jon Rowe, #1980)
533+
* Profiling examples now takes into account time spent in `before(:context)`
534+
hooks. (Denis Laliberté, Jon Rowe, #1971)
535+
* Improve failure output when an example has multiple exceptions, such
536+
as one from an `it` block and one from an `after` block. (Myron Marston, #1985)
537+
538+
Bug Fixes:
539+
540+
* Handle invalid UTF-8 strings within exception methods. (Benjamin Fleischer, #1760)
541+
* Fix Rake Task quoting of file names with quotes to work properly on
542+
Windows. (Myron Marston, #1887)
543+
* Fix `RSpec::Core::RakeTask#failure_message` so that it gets printed
544+
when the task failed. (Myron Marston, #1905)
545+
* Make `let` work properly when defined in a shared context that is applied
546+
to an individual example via metadata. (Myron Marston, #1912)
547+
* Ensure `rspec/autorun` respects configuration defaults. (Jon Rowe, #1933)
548+
* Prevent modules overriding example group defined methods when included,
549+
prepended or extended by config defined after an example group. (Eugene Kenny, #1935)
550+
* Fix regression which caused shared examples to be mistakenly run when specs
551+
where filtered to a particular location. (Ben Axnick, #1963)
552+
* Fix time formatting logic so that it displays 70 seconds as "1 minute,
553+
10 seconds" rather than "1 minute, 1 second". (Paul Brennan, #1984)
554+
* Fix regression where the formatter loader would allow duplicate formatters.
555+
(Jon Rowe, #1990)
556+
557+
558+
### rspec-expectations-3.3.0
559+
[Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.2.1...v3.3.0)
560+
561+
Enhancements:
562+
563+
* Expose `RSpec::Matchers::EnglishPhrasing` to make it easier to write
564+
nice failure messages in custom matchers. (Jared Beck, #736)
565+
* Add `RSpec::Matchers::FailMatchers`, a mixin which provides
566+
`fail`, `fail_with` and `fail_including` matchers for use in
567+
specifying that an expectation fails for use by
568+
extension/plugin authors. (Charlie Rudolph, #729)
569+
* Avoid loading `tempfile` (and its dependencies) unless
570+
it is absolutely needed. (Myron Marston, #735)
571+
* Improve failure output when attempting to use `be_true` or `be_false`.
572+
(Tim Wade, #744)
573+
* Define `RSpec::Matchers#respond_to_missing?` so that
574+
`RSpec::Matchers#respond_to?` and `RSpec::Matchers#method` handle
575+
dynamic predicate matchers. (Andrei Botalov, #751)
576+
* Use custom Time/DateTime/BigDecimal formatting for all matchers
577+
so they are consistently represented in failure messages.
578+
(Gavin Miller, #740)
579+
* Add configuration to turn off warnings about matcher combinations that
580+
may cause false positives. (Jon Rowe, #768)
581+
* Warn when using a bare `raise_error` matcher that you may be subject to
582+
false positives. (Jon Rowe, #768)
583+
* Warn rather than raise when using the`raise_error` matcher in negative
584+
expectations that may be subject to false positives. (Jon Rowe, #775)
585+
* Improve failure message for `include(a, b, c)` so that if `a` and `b`
586+
are included the failure message only mentions `c`. (Chris Arcand, #780)
587+
* Allow `satisfy` matcher to take an optional description argument
588+
that will be used in the `description`, `failure_message` and
589+
`failure_message_when_negated` in place of the undescriptive
590+
"sastify block". (Chris Arcand, #783)
591+
* Add new `aggregate_failures` API that allows multiple independent
592+
expectations to all fail and be listed in the failure output, rather
593+
than the example aborting on the first failure. (Myron Marston, #776)
594+
* Improve `raise_error` matcher so that it can accept a matcher as a single argument
595+
that matches the message. (Time Wade, #782)
596+
597+
Bug Fixes:
598+
599+
* Make `contain_exactly` / `match_array` work with strict test doubles
600+
that have not defined `<=>`. (Myron Marston, #758)
601+
* Fix `include` matcher so that it omits the diff when it would
602+
confusingly highlight items that are actually included but are not
603+
an exact match in a line-by-line diff. (Tim Wade, #763)
604+
* Fix `match` matcher so that it does not blow up when matching a string
605+
or regex against another matcher (rather than a string or regex).
606+
(Myron Marston, #772)
607+
* Silence whitespace-only diffs. (Myron Marston, #801)
608+
609+
610+
### rspec-mocks-3.3.0
611+
[Full Changelog](http://github.com/rspec/rspec-mocks/compare/v3.2.1...v3.3.0)
612+
613+
Enhancements:
614+
615+
* When stubbing `new` on `MyClass` or `class_double(MyClass)`, use the
616+
method signature from `MyClass#initialize` to verify arguments.
617+
(Myron Marston, #886)
618+
* Use matcher descriptions when generating description of received arguments
619+
for mock expectation failures. (Tim Wade, #891)
620+
* Avoid loading `stringio` unnecessarily. (Myron Marston, #894)
621+
* Verifying doubles failure messages now distinguish between class and instance
622+
level methods. (Tim Wade, #896, #908)
623+
* Improve mock expectation failure messages so that it combines both
624+
number of times and the received arguments in the output. (John Ceh, #918)
625+
* Improve how test doubles are represented in failure messages.
626+
(Siva Gollapalli, Myron Marston, #932)
627+
* Rename `RSpec::Mocks::Configuration#when_declaring_verifying_double` to
628+
`RSpec::Mocks::Configuration#before_verifying_doubles` and utilise when
629+
verifying partial doubles. (Jon Rowe, #940)
630+
* Use rspec-support's `ObjectFormatter` for improved formatting of
631+
arguments in failure messages so that, for example, full time
632+
precisions is displayed for time objects. (Gavin Miller, Myron Marston, #955)
633+
634+
Bug Fixes:
635+
636+
* Ensure expectations that raise eagerly also raise during RSpec verification.
637+
This means that if exceptions are caught inside test execution the test will
638+
still fail. (Sam Phippen, #884)
639+
* Fix `have_received(msg).with(args).exactly(n).times` and
640+
`receive(msg).with(args).exactly(n).times` failure messages
641+
for when the message was received the wrong number of times with
642+
the specified args, and also received additional times with other
643+
arguments. Previously it confusingly listed the arguments as being
644+
mis-matched (even when the double was allowed to receive with any
645+
args) rather than listing the count. (John Ceh, #918)
646+
* Fix `any_args`/`anything` support so that we avoid calling `obj == anything`
647+
on user objects that may have improperly implemented `==` in a way that
648+
raises errors. (Myron Marston, #924)
649+
* Fix edge case involving stubbing the same method on a class and a subclass
650+
which previously hit a `NoMethodError` internally in RSpec. (Myron Marston #954)
651+
* Fix edge case where the message received count would be incremented multiple
652+
times for one failure. (Myron Marston, #957)
653+
* Fix failure messages for when spies received the expected message with
654+
different arguments and also received another message. (Maurício Linhares, #960)
655+
* Silence whitespace-only diffs. (Myron Marston, #969)
656+
657+
658+
### rspec-rails-3.3.0
659+
[Full Changelog](http://github.com/rspec/rspec-rails/compare/v3.2.3...v3.3.0)
660+
661+
Enhancements:
662+
663+
* Add support for PATCH to route specs created via scaffold. (Igor Zubkov, #1336)
664+
* Improve controller and routing spec calls to `routes` by using `yield`
665+
instead of `call`. (Anton Davydov, #1308)
666+
* Add support for `ActiveJob` specs as standard `RSpec::Rails::RailsExampleGoup`s
667+
via both `:type => :job` and inferring type from spec directory `spec/jobs`.
668+
(Gabe Martin-Dempesy, #1361)
669+
* Include `RSpec::Rails::FixtureSupport` into example groups using metadata
670+
`:use_fixtures => true`. (Aaron Kromer, #1372)
671+
* Include `rspec:request` generator for generating request specs; this is an
672+
alias of `rspec:integration` (Aaron Kromer, #1378)
673+
* Update `rails_helper` generator with a default check to abort the spec run
674+
when the Rails environment is production. (Aaron Kromer, #1383)
675+
676+
677+
### rspec-support-3.3.0
678+
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.2.2...v3.3.0)
679+
680+
Enhancements:
681+
682+
* Improve formatting of arrays and hashes in failure messages so they
683+
use our custom formatting of matchers, time objects, etc.
684+
(Myron Marston, Nicholas Chmielewski, #205)
685+
* Use improved formatting for diffs as well. (Nicholas Chmielewski, #205)
686+
687+
Bug Fixes:
688+
689+
* Fix `FuzzyMatcher` so that it checks `expected == actual` rather than
690+
`actual == expected`, which avoids errors in situations where the
691+
`actual` object's `==` is improperly implemented to assume that only
692+
objects of the same type will be given. This allows rspec-mocks'
693+
`anything` to match against objects with buggy `==` definitions.
694+
(Myron Marston, #193)

0 commit comments

Comments
 (0)
Please sign in to comment.