Dear Cukers,
I'm very excited to announce the 2nd beta release of Cucumber 0.7.0.
(The 1st beta release was silently made a couple of days ago). I'm
excited because we have a brand new feature parser that is 80-100
times faster than before. This is great news for all you people who
have grown your Cucumber feature suites to hundreds of scenarios (or
even features). With previous versions of Cucumber it could take a
minute or more to just _parse_ the .feature files - before anything
even started executing.
== FAST ==
If parsing takes a minute for you, upgrading to 0.7.0.beta.2 should
reduce parse time to less than a second. So before you upgrade, please
run all of your features one last time with the old version and pass
the --verbose flag. This should print the time it takes to parse
features. Write it down.
Upgrade and run with --verbose again. Write it down. Please share both
number with us so we can get some data on how much time this saves for
people.
== TAGS ==
Had you given up on --tags because your feature suite was so big and
took so long to parse? Pick it up again :-)
== UPGRADING ==
gem update cucumber --prerelease
cucumber 0.7.0 should be a drop-in replacement for 0.6.4 (apart from
some minor potential changes to your feature files - see below). But
we can't be 100% sure before some of you have tried it. Please report
back to us so we can fix any bad issues before 0.7.0 final. We're
especially interested in getting some feedback from Windows users - we
haven't had time to test much on Windows yet (we just assume it will
work, hehe).
== GHERKIN ==
If you're wondering how we can get such a massive speed increase, it's
due to the new gherkin parser. The previous one was written in
Treetop, which is a nice, but very slow parser generator. It served us
well for nearly 2 years. Thanks Treetop. Ragel is a much, much faster
parser generator. A brand new parser based on Ragel has been written
from scratch. This parser now lives in the gherkin gem.
This would not have been feasible if it hadn't been for the duo Greg
Hnatiuk and Mike Sassak. They picked up the gauntlet I threw 6 months
ago when I asked for a faster parser. The code they have written is
very very clean. Thanks guys, you kick ass!
The gherkin parser isn't just extremely fast, it's also extremely
solid. Gherkin is mostly native code (C for MRI and Java for JRuby).
There is even Windows-specific gherkin gems with precompiled C code.
== GRAMMAR ==
We have tried to make the grammar of the new gherkin parser as
identical as possible to the old one. However, there are some minor
differences:
* Each feature file *must* start with a "Feature:" keyword. Run
cucumber --i18n help and cucumber --i18n LANG for details.
* You can now put tags above Examples. This gives you more flexibility
for --tags filtering.
* You are now allowed to have comments between table rows.
* You can't have comments at the end of a line # like this
* # Only like this
== I18N ==
Since all of the Treetop code is now gone from Cucumber, so is the
languages.yml file. So if you want to contribute a new translation
that now happens in the gherkin gem.
== BETTER TOOL SUPPORT ==
Another nice feature of Gherkin is code generation support for other
tools. -Like text editors and IDEs. Thanks to this, Gherkin's 40+ i18n
translations are now supported by several text editors and syntax
highlighters:
http://wiki.github.com/aslakhellesoy/gherkin/tool-support
Generating Gherkin aware source code for *your* tool has never been easier.
== PRETTY PRINTING ==
Another *really* nice thing we built into gherkin is pretty-printing
of features (without running them). Not only indentation, but also
alignment of table cells. This pretty printer is implemented both in
pure Ruby and in Pure Java, making it easy to integrate with other
tools. As you can see on Gherkin's Tools page, the NetBeans IDE
already have support for autoformatting of Gherkin features.
Now this is a lot of stuff. Go crazy with it.
--The Cucumber team
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to
cu...@googlegroups.com.
To unsubscribe from this group, send email to
cukes+un...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.