Slide 1

Slide 1 text

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

Slide 22

Slide 22 text

Thank you