Svn Obliterate - Contract Proposal
Table of Contents
Open Questions 1
Overview of the Proposed Development 1
Development plan (outline) 1
Starting Point 1
Tasks included 1
Time Estimates 1
Tasks in Detail 1
Task 1: Req spec 1
Task 2: Outline designs 1
Task 3: Choose a design 1
Task 4: Detailed design 1
Task 5: Implementation & testing 1
Task 6: Integration into Subversion 1
Time scales & recourse if not met 1
Type of employment in legal terms 1
Costing scheme 1
Rights to sub-contract, etc. 1
Intellectual property rights 1
About the Contractor 1
Contact details 1
Qualifications & experience 1
Estimate & quote for full development even though direction is to be decided en route? Or, estimate for first task only?
The purpose of the proposed development is to give the facility to remove selected parts of history from a Subversion repository. This facility is known as the “Obliterate” feature.
To define this feature so as to satisfy the requirements of the sponsor in a way that is acceptable to the Subversion development community.
To conduct the whole process in open participation with the Subversion community.
To make the feature available in the Subversion project's “main line” code base so that, subject to the project's normal release procedures, it is expected to be included in the next “minor” release.
A draft req spec, reviewed by community.
(?) Acceptance criteria: ...
Choose a design
Implementation & testing
Integration into Subversion
Time and effort estimates.
Who is responsible for each activity?
Time & effort estimates
summarize ML discussions
summarize issue tracker history
summarize parity with other VCS
write req spec (why & what's needed, wanted)
incl. use cases
review by community & sponsor
Outline 2 or 3 different approaches (e.g. in the manner of svnsync, svnadmin, svn)
to the level of
what protocols affected
what locking required
what requirements & UC's fulfilled
what work required, in what areas
review by community & sponsor
Sponsor chooses which outline design to develop
Testing plan (API & UI tests to be automatic)
API design & tests
UI design & tests
Software mods (svn libraries, svn, svnadmin, etc.)
Software additions (maybe new external programs)
Documentation (in svnbook.red-bean.com)
Release schedule (to be in main line such that is expected in next minor release)
Trial versions (to be packaged ...)
Time scales & recourse if not met, for:
Starting point (completion of pre-reqs):
Completion of each task:
Reaching consensus with community (on ML):
Reaching agreement between sponsor and contractor:
Daily communication (contractor <-> sponsor):
Sponsor's sign-off of a task:
What if acceptance criteria not met?
Based on estimated effort for each major task.
With an estimated completion date, and a bonus if early?
If the contractor needs to incur expenses in order to fulfil the contract, the expenses shall be billed at cost.
Some expenses that may be required are: travel, lodging and entrance fees for attending conferences or meetings; hardware and software for system-specific testing.
(when, how, to whom)
The contractor may sub-contract, use the work of volunteers, and use existing free software, to any extent. If, during the development, the contractor finds reason to believe that a large portion of the development is going to be done by volunteers, then the remainder of the contract may be re-negotiated.
All intellectual property resulting from this development shall be assigned to the Subversion Corporation.
Name: Julian Foad
Subversion committer on core C code for 5 years as a volunteer, 11 months as an employee of CollabNet.
See my CV for further details: <...>