I've made a number of edits, based on private feedback and the
  on-alias responses.  Clarifications:

  1.  My operational concern about access to the entire database was
      specifically about not having a multi-gigabyte download.  Nothing
      else should be read into that point.
  
  2.  The relationship between the development branch and the
      maintenance branches of any particular consolidation does not seem
      well understood.  It seems premature to conclude that a multiple
      release relationship belongs in the community DTS, versus a
      distribution's annotations.  We can come back to this, perhaps as
      some of the candidate evaluations proceed.

  3.  It's pretty much reality that it's going to take Sun time to
      transition from one DTS to another; I would expect Sun is
      obligated to develop tools of the kind Alan C meant, but I don't
      believe that a Phase 2 scenario can be avoided, even with such
      tools instantaneously materializing.
  
  4.  I would like to come back to Jim's point about "what DTSs do"
      versus "what Bugster does" after we actually try one or two of
      them.  That is, unlike other evaluations, I think there's a
      sandbox phase to the evaluation, where we agree that, say, a
      notification alias is equivalent to both the IE and RM--or that we
      don't agree, and need to formalize that ownership relation in our
      requirements.  (I suppose this point generalizes #2 above.)

  - Stephen

----
  
  OpenSolaris
  DEFECT TRACKING SYSTEM REQUIREMENTS [DRAFT]
| Stephen Hahn
  
  
  1.  Summary
  
      This document identifies and explains the requirements for a defect
      tracking system (DTS) solution to be used for open development.
      Software development at SMI, given that SMI is already offering
      value-added products and services atop externally developed
      software, has been utilizing a historical DTS that has not been
      designed with an adaptable structure.  The requirements are grouped
      into three sets of decreasing importance.  It outlines a number of
      specific evaluations that will be used to determine whether there is
      an existing candidate DTS capable of meeting the requirements.
  
  2.  Discussion
  
  2.1.  Constraints
  
      As with most of the problems in transitioning from proprietary to
      open development, initial inspection might lead one to conclude that
      the defect tracking problem is overconstrained.  In the course of
      reaching a coherent and ordered set of requirements for defect
      tracking, we explicitly identify some of the legacy constraints, and
      eliminate their influence on a potential solution.
  
  2.1.1.  Anecdotal problems
  
      The present DTS solution at SMI, "Bugster", is the latest in a
      sequence of custom and semi-custom DTS installations.  Ignoring the
      specifics of its technical implementation, Bugster presents three
      major problems for open development scenarios:
  
      * Per-account charge.  The current licensing of the software
        requires that each active account requires a paid user license to
        an external software vendor.  Given that we expect on the order of
        5000 active contributing developers the OpenSolaris and open JDK
        communities, an ongoing variable cost of this kind is problematic.
  
      * Performance and scalability.  Similarly, the current system is
        implemented as an HA single clustered installation, capable of
        supporting 1200 concurrent active users.
  
      * Scrubbing and proprietary information boundaries.  The information
        classification of the existing bug corpus is vague and
        inconsistent across the numerous development groups within SMI.
        Revisiting the current defects for possible publication is
        uneconomic, other than on an as-needed basis.  The lack of a clear
        boundary has made some employees apprehensive about any defect
        publication.
  
  2.1.2.  Integration aspects
  
|     * Upstream/downstream.  The OpenSolaris program is an additional
|       step in a progression from an operating environment composed
|       entirely of components created and/or maintained by a single
|       organization to one constructed from a wide variety of components
|       originating from multiple organizations and individuals.  Where
|       those components have defect state tracked in their own DTS, it
|       would be economically beneficial to have that state represented in
|       the community DTS used for the operating environment effort, both
|       to minimize duplicate efforts and to maintain accurate status on
|       the upstream component.
  
      * Other SMI systems.  In contrast to the source code management
        replacement, the Bugster DTS provides data to other information
|       systems within Sun Microsystems.  Although the burden of
        confidential data management rests with Sun (for that data it
        considers confidential), the DTS API must meet or exceed the
        current API provided by Bugster.
  
  2.2.  Ideal outcome sequence
  
      Unfortunately, migrations from one DTS to another are expensive, at
      least in the experience of the Solaris/OpenSolaris bug corpus.  A
      realistic idealized outcome would be three-phased, after the
      candidate DTS is selected and implemented:
  
      Phase 1.  Two systems.  Bugs could be filed in either system, and
      integrations could refer to bugs in either system.  Duplicates
      would be encouraged to be closed in favour of the community DTS.
      Work on a toolset to minimize the cost of such closures and
|     migrations could begin.  In principle, a Phase 1 deployment is
|     possible--for recording purposes--in one to three months after
|     selection.  Some tools integration work is required to use the
|     selected candidate for commits and defect resolution.
  
      Phase 2.  Deprecated second system.  Integrations must refer only to
      bugs in the community DTS, but bugs could be filed in either system.
      New bug categories and classifications are created only in the
      community DTS.  Client toolsets and distribution-specific systems
      [1] are expected to have adjusted to the community DTS capabilities.
|     After a successful exit from Phase 1, Phase 2 would run until the
|     legacy DTS is not deemed significant by the OpenSolaris Community.
  
      Phase 3.  Single system.  All relevant public defect data is present
      in the community DTS.
  
  3.  Requirements
  
      As with previous requirements documents [2], the requirements described
      below arise from a number of distinct classes:  some are social, in
      that the requirement is believed necessary for successful use in the
      community; some are technical, in that the requirement is believed
      necessary to successfully produce software in a multi-project,
      multi-committer, multi-site development organization; and some are
      economic, in that the requirement is attempting to describe
      attributes that would limit the costs of the ongoing use of the
      tool.
  
      In an attempt to use neutral terms, we use the phrase "candidate
      DTS" to describe the DTS solution we are evaluating and "legacy DTS"
      to refer to the DTS solution in use (inside Sun, with partial
      visibility via bugs.opensolaris.org) at present.
  
      The requirements are ranked by necessity, using the terminology
      proposed in IEEE Std 830-1998 [3].  We incorporate many of the
      requirements from Wesolowski [4].  Many of the requirements are
      derived from the earlier evaluation of distributed source code
      management solutions [2].
  
  3.1.  "Essential" requirements
  
          E0.  Open source
  
          To be considered for use by the OpenSolaris community, the
          candidate DTS is expected to be available in source form under
          an OSI-approved license.  At this point in time, the community
          expects to be able to operate directly one or more distinct
          instances of the DTS.
  
          E1.  Universal access
  
          With the exceptions identified below, all defect data pertaining
          to OpenSolaris's open components and imported open components
          must be available for search, view, and modify operations to
          participants.  Data must become available to all users at the
          same time, unless restricted by an information management
          agreement (such as those used in industry collaborations around
          security vulnerabilities).  All Participants must be potentially
          eligible for any of the generally recognised defect workflow
          roles, such as responsible engineer (RE) and initial evaluator
          (IE), without reference to their affiliations outside the
|         Community.
| 
|         Operations will use the Participant's OpenSolaris
|         credentials as a representation of the Participant's identity.
|         The candidate DTS should provide an API that permits the
|         addition of other identity representations, such as OpenID [5].
  
          E2.  Selective differentiated access
  
          A mechanism must exist to indicate that a defect is private to a
          set of Participants, and no part of it may be made accessible to
          Participants not in that set, even if the defect's subcategory
          would otherwise cause it to be accessible.
  
          This requirement is to allow for security coordination, and
          similar efforts.  (Requests for differentiated access are
          expected to be managed by the Tools Group, the Board, or a
          designee.  Distributions are expected to keep customer
          confidential data external to the Community DTS.)
  
          E3.  Differentiated, configurable messaging
  
          All mail or other messages sent by the DTS to user-supplied
          addresses (such as but not limited to a defect's interest list or a
          subcategory's initial evaluator) containing defect data must enforce
          the confidentiality of defects described in E2.  Messaging on
          defect transitions is expected to be configurable; one approach
          would be a message template system.
  
          Messaging and notification is expected to be delivered as
|         electronic mail.  Support for additional protocols is, in
|         general, optional; support for some form of syndication is
|         desirable.
  
          E4.  Access control enforcement
  
          The DTS must enforce the access restrictions described in E2 and
          E3.  It is not the intent of this specification to require any
          particular method of enforcement.
  
          E5.  Interface stability and completeness
  
          The storage representation, command line interfaces, network
          protocols, and hooks interfaces should be documented and have
          some level of declared commitment.  The state of the storage
          representation and the operations that modify it should be well
          defined, so that use with advanced file system capabilities can
          be assessed for hazards.  (For example, consistent use with file
          system snapshot capabilities.)
  
          Use of the candidate DTS with advanced file system capabilities
          should be defined.  (For example: Can ZFS clones be used to
|         back up the defect corpus?   Can filesystem ACLs be used to control
          access to portions of the repository?)
  
          E6.  Standard operations and transactions
  
|         The candidate DTS is expected to support a variety of standard
|         operations on defect reports.  The following list of
|         transactions are to be assessed and documented by the evaluating
|         engineer:
  
          - create defect
          - modify defect content
          - modify defect metadata
          - place defect in resolved state
          - restore defect from resolved to unresolved state
          - associate defect with external resource
          - associate defect with another DTS-tracked defect
|         - associate defect with tag/text label
          - change defect category
  
          Each of these transactions should correctly modify the defect
          state and send appropriate notifications.
  
          Equivalency (another operation or set of operations that might
          be used in place of an operation not specifically supported),
|         and the reasons for the omission of a transaction, are to be
          assessed and documented by the evaluating engineer.
| 
|         Additional operations supported by the candidate DTS on defect
|         reports should be documented by the evaluating engineer.
  
          E7.  Scalability
  
          The candidate DTS must have one or more deployment
          methods that allow the DTS to carry large query loads.  The
          latency between a defect report update and its accessibility to
          be queried must be documented for such scenarios.
  
|         E8.  Interface extensibility
  
          Beyond the requirements of E3, an extensible interface, so that
          OpenSolaris-specific tools might be integrated with DTS
          operations is desired.  Such an interface might be composed of a
          documented "hooks" interface, a documented library interface, or
          some other modular approach.  An extensive hooks interface, with
          hook evaluations able to terminate operations, is a strongly
          desired attribute in a candidate DTS; a candidate DTS with such
          an interface will be considered to meet fully this requirement.
  
|         Such interfaces are expected to allow the automation of specific
|         operations, such as the mass state updates performed by a
|         consolidation's C-Team.
| 
|         It should be possible, via the interfaces or extension
|         facilities, to perform administrative operations on the DTS:
|         creation, modification, and closure of defect categories (or
|         other defect classifications);
|         creation, modification, and deletion of DTS user accounts (or
|         other user or group relationships); and similar operations.
| 
|         E9.  Stable defect representation
| 
|         Specifically extending E3 and E8, the candidate DTS will have a
|         stable, formatted representation of a defect report.  A
|         candidate DTS that emitted defect reports in a documented plain
|         text or XML format would satisfy this requirement.
| 
|         E10.  Hierarchical defect classification
| 
|         It appears that a candidate DTS, to represent the current defect
|         corpus, must provide some means of classification that can
|         represent at least a product-category-subcategory hierarchy.
|         (Although a candidate DTS could meet this requirement with only
|         generic defect metadata ("tagging"), it is expected that queries
|         will regularly use the defect classifications to narrow the
|         query results, leading to an effective performance criterion.)
| 
| 2.2.  "Conditional" requirements
| 
|         C11.  Ease of use
| 
|         The candidate DTS should be easy to install in a reasonably
|         self-contained fashion.  In principle, shipment in an
|         OpenSolaris consolidation should be possible with a finite
|         investment of resources, meaning that the candidate DTS does
|         not have a complicated makefile system, has dependencies that
|         can be easily managed, etc.
| 
|         The primary interfaces should be understandable based on the
|         interfaces and documentation to a user familiar with
|         DTS concepts.
| 
|         C12.  Stable per-defect URIs
| 
|         The candidate DTS should provide a unique URI for each defect
|         represented in the system, or at very minimum, a unique ID that
|         can be used as the basis for such a URI.  The unique component
|         is expected to have some association with the product or
|         products tracked by the candidate DTS.
| 
|         A candidate DTS that provides a monotonically increasing URI
|         component, such as a "counter", would satisify this requirement.
| 
|         C13.  Tool community health
| 
|         The community or author of the candidate DTS needs to be active
|         and engaged with their user population.  The ability of the
|         candidate DTS's community to absorb, directly or through a
|         liaison, the defects and feature requests of the OpenSolaris
|         community should be estimated, preferably by a direct inquiry to
|         the candidate DTS community.
| 
|         C14.  OpenSolaris community implementation expertise
| 
|         One or more contributors within the OpenSolaris community need
|         to be able to assess potential defects in the implementation of
|         the candidate DTS and potentially participate in the development
|         of new features or supporting tools for the candidate DTS.
| 
|         C15.  Transactional operations and corruption recovery
  
          The operations on the candidate's defect datastore should have
          defined semantics, in particular identifying non-atomic
          transactions and mechanisms for recovery from a corrupted
          datastore.  This requirement may be met by the underlying
          datastore technology.
  
|         C16.  Search capability
| 
|         An integrated search capability of the text representation of
|         the defect corpus is a desired feature in the candidate DTS.  It
|         is possible to construct a search capability, given E3 and E9,
|         but an facility integrated with the various client components is
|         preferred.
| 
  2.3  "Optional" requirements
  
|         O17.  Attachment handling
  
          The legacy DTS manages large attachments as an integrated
          feature, to manage system crash dumps, process corefiles,
          application output, etc. related to the failures captured by a
          defect report.  Since a simple file archival service can meet
          these requirements--once restricted access due to
          confidentiality is removed--the candidate DTS need not provide
          its own attachment handling feature.
  
  3.  Evaluations
  
      We anticipate a number of qualitative and quantitative tests to
      evaluate the satisfaction of the various requirements, where a
      "meets" or "does not meet" result is not applicable.
  
  3.1.  Representational and performance criteria
  
      These criteria focus on the ability of the candidate DTS to
      represent a large set of distinct, interrelated defects.  The
|     current Sun Microsystems defect corpus contains in the vicinity of
      three million defect reports.  Evaluations will be performed on a
|     defect corpus derived from that published on bugs.opensolaris.org; this
      corpus will have at least 100 000 defect reports.
  
      The expected set of meaningful operations for performance evaluation
      are:
  
      - unresolved defects query against a product or category,
      - defect query by keyword or other text label,
      - defects resolved by a single responsible engineer,
  
|     Various candidate DTSs may provide notions of defect classification,
|     state, importance, or other attributes.  Queries against these
|     attributes should be evaluated, equivalent to
| 
|     - defects in either a resolved or an unresolved state, for a given
|       classification,
|     - defects addressed in a given build/release
|     - unresolved defects, ordered by importance
| 
      The candidate DTS will be evaluated for data integrity by
      interruption of the set of operations by signal and by machine
      failure.
  
      The safety of the candidate DTS with respect to file system
      capabilities will be evaluated using ZFS snapshot/clone technology
      for safe repository copies.
  
  3.2.  Implementation criteria
  
      The candidate DTS implementation will be assessed by a design and
      code review by an OpenSolaris contributor with expertise in the
      implementation language of the candidate DTS.
  
  4.  References
  
  [1] S. Hahn, "OpenSolaris: Defect tracking relationships", 2007.
      http://blogs.sun.com/sch/entry/opensolaris_defect_tracking_relationships
  
  [2] OpenSolaris Distributed Source Code Management Requirements, 2005.
  
  [3] IEEE Std 830-1998, "IEEE Recommended Practice for Software
      Requirements Specifications", 1998.
  
  [4] K. Wesolowski, "Defect Management Requirements in an Open
      Development Paradigm", 2006.
| 
| [5] OpenID, http://openid.net

-- 
[EMAIL PROTECTED]  http://blogs.sun.com/sch/
_______________________________________________
tools-discuss mailing list
tools-discuss@opensolaris.org

Reply via email to