How the RSpec team and I
built the smooth upgrade process
for RSpec 3
Yuji Nakayama
@nkym37
yujinakayama
Slide 2
Slide 2 text
RSpec 3
Released at June 2
Slide 3
Slide 3 text
Your specs written on RSpec 2
cannot be run on RSpec 3
without upgrading
Slide 4
Slide 4 text
The RSpec team and I
made the upgrade process
smooth as much as possible
Slide 5
Slide 5 text
RSpec 2.99 Transpec
by the RSpec team by me
Slide 6
Slide 6 text
Compatible with RSpec 2.x
+
Deprecation warnings for things removed in 3.0
RSpec 2.99
Slide 7
Slide 7 text
Upgrade checklist for your project
You need not to read the entire changelog!
Slide 8
Slide 8 text
Transpec
Automatically converts your specs
to the RSpec 3 syntax
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
AST
Accurate conversion with
Slide 11
Slide 11 text
+ Runtime Information
AST
Accurate conversion with
Slide 12
Slide 12 text
The Upgrade Process
1. Update RSpec from 2.x to 2.99
2. Run Transpec
4. Update RSpec from 2.99 to 3.0
5. Done!
3. Manual handling
(If any deprecation is remaining)
About
Slide 13
Slide 13 text
?
Is this upgrade approach
applicable to other frameworks?
Slide 14
Slide 14 text
Why it was possible in RSpec
Slide 15
Slide 15 text
Simply Runnable
Test codes are always run,
so the deprecation warnings
and the runtime analysis worked well.
Slide 16
Slide 16 text
Specs themselves are tests.
You can immediately notice
if something is wrong.
Testable
Slide 17
Slide 17 text
It took much effort,
but we had a significance of doing it
for the many users.
Popular
Slide 18
Slide 18 text
?
So, ineffective in frameworks
that don't meet the conditions?
No
There is room for compromise.
It should still be helpful
and much better than full manual upgrade.
Slide 19
Slide 19 text
This approach might be
an option for your framework
Slide 20
Slide 20 text
How the RSpec team
built the smooth upgrade process
for RSpec 3
and I
Slide 21
Slide 21 text
How the RSpec team
built the smooth upgrade process
for RSpec 3