Hello,

I will do a 15 minute talk about trac and the Sage development
process. I figured that because

a) not everybody will be there
b) I might miss some issues and will probably be completely wrong on
others
c) we might not have a lot of time after to discuss the issues

it would be a good idea to get some input from sage-devel. The
following is not very structured and written down in "stream of
consciousness" mode. So rip it apart and let me know how to do this
better. Once we get closer I will obviously turn this into a proper
presentation, but it should also end up somewhere in the
documentation.

*Better Sage Project Management With The Help of Trac*

# Opening Remarks #

The is more about than just the use of trac to help out with Sage
development, but also about work flow in general and how we can
make developing Sage more efficient now that more and more
developers are joining Sage.

# The Situation #

* "everything you work on is a ticket" rule seems to work out well.
* the number of open tickets keeps on rising (from about 220 to
  slightly under 300 at the moment), but turnover is rather high.
* Bug Days have closed up to 70 ticker, the lower bounds seems to
  be about 40.
* The old cruft, i.e. tickets closed a long the way, that was left
  in trac seems to have all been closed.
* If you do development for Sage or consider yourself a user how
  wants to report issues get account for Sage's trac installation:
  either email William Stein or alternatively contact him on
  #sage-devel on freenode. Preferably get a tray account with the
  same name as your google group nickname, so that one know how to
  contact you.

# Milestones vs. Releases #

* Milestones are usually goals to be met while working toward a
  release. In Sage's trac we use milestones instead of releases,
  but unless somebody volunteers we will stick with the current
  model
* finely grained releases are good, release early and often
* it is realistic to make a big release and schedule at least one
  bugfix release after that to sort out the inevitable "doctest X
  is broken on distribution Y and compiler Z" problem

# Opening Tickets #

* Before opening a ticket make sure that nobody else has opened
  a ticket about the same or closely related issue.
* It is better to open several specific tickets than one that is
  very broad.
* Be precise: If foo doesn't work on OSX, but is fine on Linux
  mention that in the title, also use the keyword option to make
  searches pick up the issue
* be careful with the priority: "blocker" should be used sparingly,
  don't be surprised that such a ticker is reclassified

## Working On Tickets ##

* tickets are kind of like homicides: They either get solved in 48
  hours, otherwise they have a tendency to become cold cases. This
  is mostly an issue with defects, there are many enhancements
  possible for Sage, but too few developers to implement all the
  good ideas. But it is useful to keep ideas in a central place
  because in the google groups they tend to get lost once they drop
  off the first page
* If you are a developer be nice and try to solve a stale/old ticket
  every once in a while.
* I and mhansen (and some other people I properly forgot to mention)
  regularly do triage, especially before Bug Days. Triage in this
  context means that we look at new bugs and classify them according
  to out perceived priority.
* every bug fixed should result in a doctest: Example Zombie det()
  problem with LinBox, considered fixed twice, but reopened in both
  cases.

# Assigning Tickets #

* each ticket should have a milestone assigned
* defect vs. enhancement vs. task
* if you are unsure whom to assign to assign to somebody or was
* certain categories have default people to assign to
* if you have been assigned a ticket you should either accept it
  or assign it back to "somebody" or "tbd"

# Closing Tickets #

* if you have a solution/patch attach it to the ticket and indicate
  that there is a solution available by adding "[with patch]" to the
  title. It might also be a good idea to reassign the ticket to the
  current bugfix release if it is scheduled for some milestone that
  is far in the future.
* Do not close the ticket, but let William close it once the patch
  has actually been merged. In the past patches have been lost due
  to the fact that somebody closed the ticket and William never saw
  the patch. Another possibility is especially during Bug Days or
  interactive discussions via IRC that you can close it after you
  have been encouraged to do so.
* Somewhat on an exception is wontfix or duplicate tickets, but it
  is also a good idea to check with somebody in IRC. Alternatively
  write an email to sage-devel or William directly so he can react
  in case a mistake was made.

# Desirable Trac Features #

* more statistics
* a default CC to a google group sage-trac, this requires that a
  google group is created [done] and that somebody with admin
  access to sagemath.org enables smtp for trac [not done yet]
* loads more interesting bits at http://trac-hacks.org/ - but we
  should not merge in too many extensions because it makes
  maintainability more difficult once we upgrade to newer trac
  releases. I maintain several phpBB installations and not
  adding a wild bunch of mods proved to be a smart choice.


--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~----------~----~----~----~------~----~------~--~---

Reply via email to