Reorganize documentation for Cucumber at Github


#1

Hi,

I actually just noticed that Cucumber has plenty good documentation on
its wiki at github. But the problems are:

  • The homepage is badly designed as it doesn’t really outline an order
    to read other pages
  • It is impossible to make the difference between internal links to the
    wiki and links that will bring us some where else unless we hover over
    the link
  • Pages don’t link to each other such as: read next page or previous
    page, or related pages
  • Pages are just sorted alphabetically which is not a proper way of
    sorting

Would it be possible to at least number the pages in the order in which
we should read as if we were reading a book about cucumber?

The documentation seems excellent but is definitely not well marketed
for new comers :slight_smile:


#2

Fernando P. wrote:

  • Pages don’t link to each other such as: read next page or previous
    page, or related pages
  • Pages are just sorted alphabetically which is not a proper way of
    sorting

Would it be possible to at least number the pages in the order in which
we should read as if we were reading a book about cucumber?

The documentation seems excellent but is definitely not well marketed
for new comers :slight_smile:

Oh, I totally agree. Add in the fact that the Rails stuff is just a mess
for non-Rails people to read, and we really have two problems to solve.
That’s how I, at least, have been experiencing it.

My own solution is to build my own procedural outline. I’m working on it
today, in fact - sort of a “Cucumber for dummies” document. In my
conception, liberal use will be made of links to existing pages, or to
sections thereof, as there’s no need to attempt to redo what the experts
have already done well. I figure if I write what I wish I’d encountered
when I went to the wiki, and then see if I can get it there, it might
help other folks.

Your final sentence says it all - great documentation, but not for
newbies. Where’s the starting point? Etc.

I’m working on this thing right now, and maybe it’ll be far enough along
for some kind of review this weekend. Or…I could put it up, say on a
Google Sites wiki, and several of us could work on it. Any thoughts? I
actually prefer to work in a group, but have already started on my own.

Yeah, I like that idea - a temporary Google Sites wiki.

Tom

Tom C., MS MA, LMHC - Private practice Psychotherapist
Bellingham, Washington, U.S.A: (360) 920-1226
<< removed_email_address@domain.invalid >> (email)
<< TomCloyd.com >> (website)
<< sleightmind.wordpress.com >> (mental health weblog)

#3

On Sat, Jan 17, 2009 at 10:10 PM, Tom C. removed_email_address@domain.invalid
wrote:

wiki and links that will bring us some where else unless we hover over
for new comers :slight_smile:
have already done well. I figure if I write what I wish I’d encountered when
I went to the wiki, and then see if I can get it there, it might help other
folks.

Your final sentence says it all - great documentation, but not for newbies.
Where’s the starting point? Etc.

Where is the starting point! There is none! Haha. And the GitHub Wiki
Home
page is probably the worst page in the whole Wiki.

Honestly - I think what’s needed is:

  1. Move a lot of the random stuff from Home to separate pages
  2. Make the Home page really short - with links to a few new pages:
  • General Five Minute Introduction (Pure Cucumber/Ruby stuff - no Rails)

Narrative, sequential style, link to other specific pages - ideally most
of
them.

  • Rails-specific Five Minute Introduction (to be read after the other 5
    minute one). Cucumber Backgrounder is a very good start for this, but I
    think it’s a little rambling :slight_smile:

I’d like to write these intros myself, so please don’t start doing
massive
edits. Instead, I’d love to get input of an outline for these
Introduction
pages.

How does that sound?

Aslak


#4

aslak hellesoy wrote:

    documentation on
    - Pages don't link to each other such as: read next page or
    The documentation seems excellent but is definitely not well
In my conception, liberal use will be made of links to existing

Home page is probably the worst page in the whole Wiki.
5 minute one). Cucumber Backgrounder is a very good start for this,

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Aslak (::slight_smile:
Aslak,

I can speak only for myself, but…

You’re a genius. You nailed it, conceptually. You wrote exactly what
I’ve been thinking of. My own outline’s going slowing, for the obvious
reason that I don’t really know what I’m doing. So…

I especially like the part about your writing it, with feedback. There’s
no one more qualified. And…it’ll be right, from the beginning.

I’m really excited about this. I’m committed to getting myself launched
with Cucumber this weekend. Hey, you can help, if you want :).

Many, many thanks. (understatement)

Tom

Tom C., MS MA, LMHC - Private practice Psychotherapist
Bellingham, Washington, U.S.A: (360) 920-1226
<< removed_email_address@domain.invalid >> (email)
<< TomCloyd.com >> (website)
<< sleightmind.wordpress.com >> (mental health weblog)

#5

On Sun, Jan 18, 2009 at 1:34 AM, aslak hellesoy
removed_email_address@domain.invalidwrote:

Would it be possible to at least number the pages in the order in which
My own solution is to build my own procedural outline. I’m working on it

them.

  • Rails-specific Five Minute Introduction (to be read after the other 5
    minute one). Cucumber Backgrounder is a very good start for this, but I
    think it’s a little rambling :slight_smile:

I’d like to write these intros myself, so please don’t start doing massive
edits. Instead, I’d love to get input of an outline for these Introduction
pages.

How does that sound?

Ok, I’ll give a stab at what a 5 minute introduction might contain.
Please
comment.

  1. Who should use Cucumber, and what benefits can you get from it?
  2. How Cucumber works (high level explanation without getting too
    technical).
  3. Learn the nomenclature - features, scenarios, steps (step definitions
    later). Some style guidlines.
  4. What does a Cucumber feature look like (plain - no outlines or
    tables).
    Learn how to write one in a simple text editor.
  5. How to install and run Cucumber (using the one from 3 as example. No
    Rake
    yet - just the cucumber command)
  6. What does the output from Cucumber mean? (Learn to read the deafault
    console output. Colours and error messages. Mention other formatters)
  7. Learn to write step definitions (they are similar to defining methods
    in
    most imperative languages like Ruby, Java, C, Pascal…). Mention
    Regexps,
    Rubular.com.
  8. How to implement the body of a step definition. Learn about RSpec’s
    #should and #should_not - and matchers
  9. How to fix a failing (red) step definition by writing some code (in
    lib
    for now since we’re not doing any Rails)
  10. Mention DTSTTCPW and refactoring - with some external links. TDD
    basics.
  11. Learn how to use Rake (useful when you have more than one feature
    file).
    Mention RCov.
  12. Learn about the various command-line switches
  13. Learn about more advanced Gherkin (Cucumber language) features such
    as
    Tables, PyString, Scenario Outlines and Background (coming soon)
  14. Learn about hooks (Before, After etc)
  15. Various other features (CUCUMBER_COLORS, AutoTest, cucumber.yml
    (profiles)
  16. IDE support
  17. How to use other assertion tools like Test::Unit, Shoulda, etc.
  18. How to use Cukes with non-Ruby platforms (Watir family, JRuby,
    IronRuby,
    FunFX/Flex)

The reader will gradually learn about the recommended file layout
structure.

Maybe this is more like a 10-15 minute intro. I’ll try to keep it as
short
as possible without skipping important concepts.

What’s missing? What’s in the wrong order? What should I remove?

Aslak


#6

aslak hellesoy wrote:

    Fernando P. wrote:
        - It is impossible to make the difference between internal

    just a mess for non-Rails people to read, and we really have
    help other folks.
1) Move a lot of the random stuff from Home to separate pages
massive edits. Instead, I'd love to get input of an outline for

technical).
3) Learn the nomenclature - features, scenarios, steps (step
definitions later). Some style guidlines.
Totally agree. This is the “shoehorn” I was looking for - partly. Having
YOU write it would be far far better than anyone else, because of your
knowledge and communication skills. People like me can best serve by
giving feedback, as the writing proceeds.
4) What does a Cucumber feature look like (plain - no outlines or
tables). Learn how to write one in a simple text editor.
Absolutely.
5) How to install and run Cucumber (using the one from 3
you mean “4”?
as example. No Rake yet - just the cucumber command)
Yeah. Keep it minimal, but something that will actually run and produce
results to study. Which leads us to…
6) What does the output from Cucumber mean? (Learn to read the
deafault console output. Colours and error messages. Mention other
formatters)
yes yes yes
7) Learn to write step definitions (they are similar to defining
methods in most imperative languages like Ruby, Java, C, Pascal…).
Mention Regexps, Rubular.com.
Would be very very helpful.
8) How to implement the body of a step definition. Learn about RSpec’s
#should and #should_not - and matchers
Man, could I use this. Things go really dark for me at this point. Just
haven’t gotten there yet.
9) How to fix a failing (red) step definition by writing some code (in
lib for now since we’re not doing any Rails)
Yes. Especially the part about excluding Rails. And this, to me looks
like the end of the beginning. What follows is very helpful, but by this
point the boat is launched. I DO dearly want the rest of what you’ve
written, however, so don’t drop anything from the outline, if you have
the time to carry through to the end.
10) Mention DTSTTCPW and refactoring - with some external links. TDD
basics.
11) Learn how to use Rake (useful when you have more than one feature
file). Mention RCov.
Nos. 10-11 look especially interesting to me.
12) Learn about the various command-line switches
13) Learn about more advanced Gherkin (Cucumber language) features
such as Tables, PyString, Scenario Outlines and Background (coming soon)
I’m not sure, but I’m thinking that Tables and Scenario Outlines (to the
extent that I understand them) might well come earlier in the outline.
On the other hand, those of us who want to could simple skip ahead to
grab the material when we need it.
14) Learn about hooks (Before, After etc)
15) Various other features (CUCUMBER_COLORS, AutoTest, cucumber.yml
(profiles)
From here on, I think we’re into the “and it’d be nice if we had
something about…” territory. Dessert.
16) IDE support
Interesting. I work exclusively with the CLI, and love it. Used to work
with IDEs, but converted.
17) How to use other assertion tools like Test::Unit, Shoulda, etc.
18) How to use Cukes with non-Ruby platforms (Watir family, JRuby,
IronRuby, FunFX/Flex)
Terrific outline, I’d say. I cannot imagine not getting what I want,
from this material. It’ll suck people like me into the process, and when
we get into trouble we can shout out, which will lead to possible
additions (but I don’t think they’ll be major).

I’ll stay glued to me email inbox (and the wiki) to watch this develop.
This is a gift I simply didn’t expect, and especially not right when I
most need it.

This is going to be very very helpful, and to an increasing number of
people, I’ll predict.

I’m excited about this development. Thanks so much.

Tom

The reader will gradually learn about the recommended file layout
structure.

Maybe this is more like a 10-15 minute intro. I’ll try to keep it as
short as possible without skipping important concepts.

What’s missing? What’s in the wrong order? What should I remove?

Aslak

Tom C., MS MA, LMHC - Private practice Psychotherapist
Bellingham, Washington, U.S.A: (360) 920-1226
<< removed_email_address@domain.invalid >> (email)
<< TomCloyd.com >> (website)
<< sleightmind.wordpress.com >> (mental health weblog)

#7

aslak hellesoy wrote:

definitions later). Some style guidlines.
4) What does a Cucumber feature look like (plain - no outlines or
tables). Learn how to write one in a simple text editor.
5) How to install and run Cucumber (using the one from 3 as example.
No Rake yet - just the cucumber command)
6) What does the output from Cucumber mean? (Learn to read the
deafault console output. Colours and error messages. Mention other
formatters)
I just thought of a possible addition. Might go here, or possibly
earlier.

“Starting points” - how to implement Cucumber, starting from where you
are now with your coding project.

  1. Group One: Haven’t started yet; just getting organized. How to use
    this tool to Do It Right.
  2. Group Two: HAVE started, and some thing are already working, but have
    no testing in place, and significant coding to launch. What to do to
    bring in cucumber most efficiently.
  3. Group Three: Have working code. Want to bring in testing. It is it
    too late to use Cucumber? If not, how do I do it?

What’s needed isn’t so much detailed instructions as is a priority list,
and a clear starting point. Details can be worked out using the
discussion list, I imagine. A top-down approach. For amateurs like me,
it’s hard for me to do top-down, when I know so little.

For example: I’m in Group Two, with my most important project, and I’m
my own customer, as it were. What I’m doing (tonight, in fact), is
simulating a fresh start, starting with a few simple classes, which I
haven’t written yet (because I don’t write classes - I’m totally
procedural, but that’s changing immediately), working to move ahead
quickly by adapting existing code to the new framework, as it were. But,
of course, I’m not at all sure I’m going about it right. I’ll fumble
through, until things get clearer, but a little recipe of sorts would be
very helpful, and I don’t have one.

I hope this helps!

Tom

file). Mention RCov.

    << removed_email_address@domain.invalid <mailto:removed_email_address@domain.invalid> >> (email)


rspec-users mailing list
removed_email_address@domain.invalid
http://rubyforge.org/mailman/listinfo/rspec-users

Tom C., MS MA, LMHC - Private practice Psychotherapist
Bellingham, Washington, U.S.A: (360) 920-1226
<< removed_email_address@domain.invalid >> (email)
<< TomCloyd.com >> (website)
<< sleightmind.wordpress.com >> (mental health weblog)

#8

I’d just like to point out that the Github wiki tool is somewhat
challenged
by a project with so much good documentation like cucumber has. The lack
of
search, and the layout is really poor. Might it be better to host a more
able wiki on another site, and use the github wiki to point to this
external
documentation?

All best

Andrew

2009/1/18 aslak hellesoy removed_email_address@domain.invalid


#9

This is great news. One possible way to do this incrementally on the
github wiki would be to create a subwiki (page?) called “the cucumber
book” (TCB) which has an organization and a little governnace around
change that is further defined just like what Aslak has so generously
created. From there the sections in TCB can grow in a controlled way,
the other stuff is just there as supporting information and special
subjects, etc. Just a thought. T


#10

Andrew P. wrote:

I’d just like to point out that the Github wiki tool is somewhat
challenged
Yeah I also think that the github wiki is showing its limits. It works
when the project only requires a few pages of documentation, but not for
Cucumber.

Github should only be used for what Git is meant to be: a distributed
SCM and no more, i.e: cloning, pulling, pushing, forking.

For documentation and other stuff a dedicated website is more
appropriate, like cukes.info, in fact I was surprised to see that the
documentation was still hosted at github, it adds more confusion to
newbies. One size doesn’t always fits all.


#11

On Mon, Jan 19, 2009 at 12:01 AM, Fernando P.
removed_email_address@domain.invalidwrote:

For documentation and other stuff a dedicated website is more
appropriate, like cukes.info, in fact I was surprised to see that the
documentation was still hosted at github, it adds more confusion to
newbies. One size doesn’t always fits all.

To paraphrase DrNic:
http://drnicwilliams.com/2008/12/21/migrating-project-websites-to-github-pages-with-sake-tasks-new-websites-with-jekyll_generator/

The purpose of cukes.info is to sell Cucumber.
The purpose of the GitHub wiki is to educate people who have decided
to
give it a spin.

Why 2 sites? GitHub wikis have their own visual style - they are not
suited
to brand anything.
On the other hand, I don’t have time or even desire to create a wiki
that is
as good as the GitHub wiki and put it on cukes.info.

Aslak


#12

On Sun, Jan 18, 2009 at 2:24 AM, aslak hellesoy
removed_email_address@domain.invalidwrote:

Hi,
page, or related pages
Oh, I totally agree. Add in the fact that the Rails stuff is just a mess

  1. Make the Home page really short - with links to a few new pages:
    pages.
  1. Learn the nomenclature - features, scenarios, steps (step definitions
  2. How to implement the body of a step definition. Learn about RSpec’s

13.5) Learn about how to substitute in steps and multiline
args
(table, pystring) from examples tables.

  1. Learn about hooks (Before, After etc)
  2. Various other features (CUCUMBER_COLORS, AutoTest, cucumber.yml
    (profiles)
  3. IDE support
  4. How to use other assertion tools like Test::Unit, Shoulda, etc.
  5. How to use Cukes with non-Ruby platforms (Watir family, JRuby,
    IronRuby, FunFX/Flex)

18.5) Pure Java via JBehave


#13

Aslak Hellesøy wrote:
.

On the other hand, I don’t have time or even desire to create a wiki
that is as good as the GitHub wiki and put it on cukes.info.

My only addition is that there is nothing preventing a community effort
to add a standard navigation page to the front of the Cucumber GitHub
wiki, comb through and classify all of the existing pages according to
essential topic, and update or supplement the links on each page to
point to related information.


#14

Hi
On 23/01/2009, aslak hellesoy removed_email_address@domain.invalid wrote:

  1. How to use Cukes with non-Ruby platforms (Watir family, …

I will gladly put something together on Cucumber and Watir.

Aidy


#15

On Fri, Jan 23, 2009 at 12:14 PM, aidy lewis
removed_email_address@domain.invalidwrote:

Hi
On 23/01/2009, aslak hellesoy removed_email_address@domain.invalid wrote:

  1. How to use Cukes with non-Ruby platforms (Watir family, …

I will gladly put something together on Cucumber and Watir.

Be my guest! Please also link to the Watir examples in the sources at
GitHub

Aslak