Fit Unification Summit - Draft Minutes
Attendees: David Chelimsky, Randy Coulman, Bob Cotton, Ward Cunningham, Michael Feathers, Brian Marick, Bob Martin, Micah Martin, Erik Meade, Grigori Melnik, Steven Newton, Jeff Nielsen, John Roth, Jim Shore, Bill Wake (secretary).
(Not all were present all day.)
A Warmup Question
What existing implementations are there?
|Language|| Batch|| Fitnesse|
|Java|| Jim Shore|| Micah Martin|
|C#|| Jim Shore|| David Chelimsky|
|Python|| John Roth|| John Roth|
|Objective C|| Steven Newton|| (nobody)|
|Ruby|| Giulio Piancastelli|| (nobody)|
| C++ || David Woldrich||Michael Feathers / James Grenning|
|Smalltalk|| Randy Coulman|| Randy Coulman|
|Fitster/Java|| Ward Cunningham|| (nobody)|
|Fitster/Eclipse|| Hugo Garcia|| (nobody)|
(There are other implementations as well, e.g., Lisp.) FitLibrary is supported by batch Java, Fitnesse Java, Python (both), and Smalltalk batch.
Passions and Concerns
We went around the table to capture key passions and concerns (in no particular order):
- Making DoFixture part of the core Fit
- Making sure Fit matches the book
- The importance of Fit as a collaborative tool
- Fit tests should outlive the implementation of the application they test
- Complete Fit specification
- Proposals for Fit come with tests
- Making sure Fit remains free (holds still “enough”, and there are implementations for all major languages)
- Status of ScientificDouble
- Keeping major implementations at most one release behind
- Language differences – how should they be accommodated?
- Examples and support
- Finding ways to make Fit more pluggable
- Relationship to the Agile Alliance (try to become a supported program?)
Brief Licensing Discussion
- Core Fit – Change Process – Fit specification (11 votes)
- Unification (9 votes)
- Organization (6 votes)
- User Involvement (3 votes)
- Foundation (1 vote)
- Charter (0 votes)
- Licensing (0 votes)
Fit is under GPL. Someone asked, “Is the intent to control Fit?” Ward answered, “No, but I don’t want to be nosed out.”
Core Fit – Issues and guidelines
DECISION: Core Fit Decision Process [Unanimous]
1. Implementation is used and reported
2. Specification driven
3. Trial implementation
4. Email vote somehow (establish who and how)
- Fit development needs a decision process
- Business-facing definition
- Fit is specification-driven
- Implementations can change freely
- Encourage third-party experiments
- Be cautious about introducing new things into the Fit core
- Use trial evidence
- Separate core and standard distribution
- Version process
- Minimize geek factor
- Is HTML fundamental?
ACTION ITEM: Jim Shore will expand this into a fuller statement.
The group decided to set up a small group making decisions about “core Fit.” That group is to be open about what’s going on, and solicit feedback from the whole community of Fit developers and users.
DECISION: A board of five will manage “Core Fit.” The group will consist of Ward Cunningham (chair), Jim Shore, Micah Martin, John Roth, and one other. This will be Brian Marick (if he’s willing), or Rick Mugridge otherwise. The group is chartered for one year. [A couple abstentions but no “nays.”]
DECISION: This board can decide on its own voting process. [Unanimous]
ACTION ITEM: Jim Shore will invite Brian Marick.
ACTION ITEM: Jim Shore will draft a charter.
Areas Needing Unification
ACTION ITEM: For each area, the designated person(s) will explore the issue and propose a resolution to the board.
|Jim Shore, David Chelimsky|| Conditional Matching - Symbols - Cell handlers – Booleans – Blank/Null/Error (Issue: Fit has extended these areas; is there a general solution? General agreement that comparators are wanted in core, but not clear what mechanism should be.)|
|David Chelimsky|| CSS – issues of transportability and accessibility/customizability (Issue: ability to mail a single document with test results)|
|Rick Mugridge|| DoFixture (Issue: include in core?)|
|Micah Martin|| Standard convention for runner interface (for IDEs) – Standard API for running (Issue: command line runner may not be enough)|
|John Roth|| Graceful names, mapping (Issue: converting name in test to name in fixture)|
|John Roth|| Floating Point (Issue: Status of ScientificDouble)|
|Randy Coulman|| Column Fixture (?!) (Issue: allow ? and ! rather than just () for column headers)|
|Steven Newton|| Character set (Issue: not all tests are UTF-8)|
|Steven Newton|| Deprecating ActionFixture (Issue: want to encourage a more declarative style)|
|(nobody)|| Suite-level table issues and specification (Issue: setup and suite-setup pages interact with DoFixture, which has to be the first fixture on a page)|
DECISION: There will be one (official) version of Fit per language.
We discussed whether to require that the official version must be either at the current or previous release of the Fit specification. [I don’t believe we decided whether to require this.]
DECISION: Extensions must be explicitly enabled (e.g., as a command line parameter).
CLARIFICATION (previously decided): Table arguments are (already) in core Fit.
DECISION: Everything is free to change – we won’t be constrained by existing implementations.
DECISION: Bob Martin will explore a longer-term form of organization with Ward Cunningham and Brian Marick.
DECISION: We’ll post the minutes on the Wiki and on key groups: agile testing, agile testing tools, fitnesse, TDD, XP, agile modeling, fit-users, fit-devl, fit library. Bill Wake will post.
DECISION: We’ll track action items, checking up on them in early October. Bill Wake will post the action item list on the fit Wiki.