$Id: RELEASE_PLAN_2_0.txt,v 1.2 2001/10/04 17:49:14 rwaldhoff Exp $ Release Plan for HTTP Client 2.0 -------------------------------- Administrivia: This document describes a plan for a 2.0 release of the Jakarta-Commons HTTP Client component (for the remainder of this document, simply "HTTP Client"). Per the Jakarta/ASF guidelines (http://jakarta.apache.org/site/decisions.html), this document doesn't mean anything until accepted by the relevant committer community via a lazy majority vote (hereafter, simply "lazy majority"). Once accepted, it may be replaced by an alternative plan, again subject to lazy majority approval. Non-binding votes (votes cast by those outside the relevant committer community) are welcome, but only binding votes are significant for decision making purposes. Objective: The objective of the 2.0 release of HTTP Client is to provide a stable and robust release focused on standards compliance, design clarity, forward compatibility, and ease of use (i.e., with the intention of providing a stable foundation for the further evolution of the HTTP Client component). Specifically, the 2.0 release seeks to introduce and evaluate changes based upon the following (ordered) criteria: 1. Freedom from defects (deviation from the documented or reasonably expected behavior). 2. Compliance to RFC 2616 (HTTP/1.1) and related specifications. 3. Interface and design consistency and clarity, ease-of- use, and ease-of-extension. 4. Forward compatibility. I.e., the ability to add support for currently unsupported aspects of the relevant specifications or to add support for features that can be reasonably predicted without "breaking" the external (and to a lesser degree, internal) interface of the component. 5. Functional compatibility with HTTP Client 1.0 (i.e., if it works in 1.0 it should work in 2.0) 6. API Compatibility with HTTP Client 1.0. The 2.0 release should also include: * Adequate documentation (including both API-level/JavaDoc documentation as well documentation suitable for use on the Jakarta-Commons site) * A substantial unit and functional test suite suitable for ensuring the quality and compatibility of release 2.0 and subsequent releases. * A clear demarcation of the "internal" and "external" interfaces within HTTP Client, as defined in the VERSIONING_GUIDELINES.txt document at: http://cvs.apache.org/viewcvs/~checkout~/jakarta-commons/VERSIONING-GUIDELINES.txt Release Manager: Rodney Waldhoff (assuming no one else is really itching to do it) Timeline: (All days ending at 23:59:59 GMT in case of dispute.) * Review Period Thursday, August 30 2001 - Thursday, 13 September 2001 During the Review Period specific design, functional and contract changes to HTTP Client will be considered on the Jakarta-Commons mailing list, using the following process: 1) Any developer or committer that would like to see a specific change (or group of changes) enacted or rolled back will suggest it on the Jakarta-Commons mailing list (jakarta-commons@jakarta.apache.org). 2) Any interested committer that opposes a given change (or group of changes) is obligated to indicate this disapproval on the list during the Review Period. 3) We will seek, but not strictly require consensus on each decision point. If consensus cannot be reached, any committer may call for a vote to resolve the issue via a lazy majority vote. Since substantial progress has been made on a number of the objectives within the "rlwrefactoring" branch of HTTP Client within the CVS tree, it is suggested that we use that revision as a starting point. Of course, no changes within that branch are set in stone. (Indeed, even the author of those changes has several things he'd still like to reconsider.) One summary of the major changes in this branch versus the current main branch of HTTP Client can be found at: http://www.mail-archive.com/jakarta-commons@jakarta.apache.org/msg03954.html The Review Period may be closed before 13 September 2001, given one "workday"'s notice and lazy majority approval. The Review Period may be extended by one week (at a time) given lazy majority approval, in case issues still need to be resolved. * Implementation Period Friday, 14 September 2001 - Monday, 24 September 2001 (assuming the Review Period is not extended) During this period, any remaining implementation, testing and documentation will be completed. No new features or "public" interface changes will be considered in-scope at this time (short of a lazy-majority approved revised release plan or any "showstopper" defects). At the end of the Implementation Period, a formal release vote will be called, subject to lazy approval. A formal release vote may be called before 24 September, but after the end of the Review Period, if appropriate.