Edgewall Software

Changes between Initial Version and Version 1 of TracMultipleProjects/ByProductAndSearch


Ignore:
Timestamp:
Jun 20, 2005, 11:23:41 AM (19 years ago)
Author:
anonymous
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • TracMultipleProjects/ByProductAndSearch

    v1 v1  
     1= Handling Multiple Deliverables =
     2
     3We have been looking very closely at Trac and how we would use it in a multi project environment.  Our conclusions are a little different to any of the proposals made so far.  The Trac philosophy is to keep things as simple as possible while preserving flexibility and that is what we are trying to do.
     4
     5We have a large code base.  Much of that code is shared among a large number of products.  There is also a complex relationship between projects and products.  For example, a project may change common code and result in several product releases.  In other cases there is a one to one product/project mapping.
     6
     7What the above means is that the relationship between a project, products, timeline etc. can get quite complex.  The issue is how to deal with that while providing a clean and understandable system which normal people can cope with.  Neither of the other proposals for handling this (TracMultipleProjects/MultipleEnvironments and TracMultipleProjects/SingleEnvironment) deal with this complexity.  I believe that TracMultipleProjects/MultipleEnvironments is a non-starter for this.  There are some good ideas in TracMultipleProjects/SingleEnvironment which are extended by this proposal.
     8
     9I am going to define some terms so as to minimise confusion:
     10
     11Product: An item which is shipped to customers
     12Project: A body of work which goes into products
     13
     14We need to support multiple products and multiple projects.  It is our
     15view that projects map onto milestones which is very convenient as
     16multiple milestones are already in Trac.  This is the first big difference between this proposal and TracMultipleProjects/SingleEnvironment - the main selector is a product and not a project (I understand that this could be controversial so it would be a good idea to allow this to be configurable between product and project).
     17
     18Requests like the one in #1048 and #586 are too simplistic as they only address multiple products which have nothing in common.
     19
     20The bit which is harder is how to support multiple products.  I believe
     21that the following is required:
     22
     23== Ticket Changes ==
     24
     25 * A product field drop down list.
     26 * A product version field drop down list which depends on the product
     27field (i.e., each product has it's own set of versions).  The current
     28version field would become this field.
     29 * The existing component field has to be dependent on the product.  Each product will have it's own set of components.
     30 * The milestone field also has to be dependent on the product
     31(selecting a product would only show milestones which are relevant to
     32that product)
     33
     34Somehow milestones have to be associated with products (maybe more than
     35one product).  Adding a milestone would entail selecting a list of
     36products affected by that milestone.
     37
     38== Timeline ==
     39
     40I don't believe that there is a simple relationship between a product
     41and a timeline.  I think that instead of switching the timeline based
     42on the selection of a product that there should be query support added
     43to the timeline page.  These queries should allow the user to select a
     44number of paths into the subversion repository to select repository
     45checkins, a product choice to select tickets and milestones, and a Wiki
     46path (or number of Wiki paths) to select Wiki pages (see Wiki section
     47bwlow).  These queries should also be saved so project teams can build
     48reports which are useful for their project.  Using these queries most
     49users requirements should be covered.  Maybe the queries should be saved
     50by product or milestone - that would be good but not strictly necessary.
     51
     52== Roadmap ==
     53
     54This is rather simpler than for the timeline.  Given that there needs to
     55be a defined relationship between products and milestones selecting a
     56product should be all that is needed.
     57
     58== Browse Source ==
     59
     60No need to change anything here as it is and should remain a view of the
     61entire repository content.
     62
     63== Wiki ==
     64
     65I think that by using the subpages or whatever it is you call pages
     66which have a path (like TracDev/...) with the project name at the top
     67level would neatly support multiple project documentation.  The query
     68for the timeline would use this path name to select product
     69documentation changes.
     70
     71== Tickets Affecting Multiple Products ==
     72
     73Ticket #130 talks about assigning one ticket to multiple products.  I believe that this would be complex and prone to error.  It is very difficult to know which products a piece of common code will affect.  It would be very useful to be able to have tickets depend on other tickets (see ticket #31) so that as problems are found on different products which are caused by common code they can be linked to a single ticket.