Tracker discussion

What do you want to see in Armagetron soon? Any new feature ideas? Let's ponder these ground breaking ideas...
User avatar
Lucifer
Project Developer
Posts: 8751
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Tracker discussion

Post by Lucifer »

Ok, I looked for a real tracker thread, and didn't find one. Found the ones for trac and mantis, though. :) I think we were spawning the individual tracker threads from the cvs outage thread. Anyway, here's the tracker thread.

I installed flyspray at http://flyspray.davefancella.com . I have to say, I like it a lot. However, it doesn't have custom fields. The source looks small enough that we may be able to add it relatively easy, don't really know.

So, what are the features in a tracker that we want, with reasons (i.e. use cases :) )?

Here's what I want:

* Tracker isn't oriented on bugs. It should support bugs, but I'd like to track releases with it too.
* Percentage completion for tasks.
* Anonymous users can post items.
* Ideally it should have a patch manager as well, file attachments on items is probably enough for that.

I don't much care about what else it has.
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Lucifer
Project Developer
Posts: 8751
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

Just bringing in information from other threads.

So right now we're considering these trackers:

* Mantis. -- Testing thread -- Test Instance
* Trac. -- Testing thread -- Test Instance
* Flyspray. -- Test Instance
* Issue Tracker. -- Test Instance
* GUe Double Choco Latte.

We want these features:

* Tracker isn't oriented on bugs. It should support bugs, but I'd like to track releases with it too.
* Percentage completion for tasks.
* Anonymous users can post items. Or better, an email address that can take email and turn them into bug reports so we can get better contact information with which to follow up, hopefully resulting in less useless reports.
* Ideally it should have a patch manager as well, file attachments on items is probably enough for that.
* SCM integration. If a commit message contains "Fixes #43" then issue #43 should be fixed, ideally with a reference to the change that fixed it.
* A "Bugs affecting version X" mechanism. I want a single page where Patty can see a list of bugs that are known for 0.2.7.1 which she is running before reporting a new one to us. The requirements for that are basically custom fields and custom reports. Or reasonably hackable source.

I'll edit this post as needed to keep track of this stuff. Would be nice if we had a tracker already that we could track this with. :)
Last edited by Lucifer on Mon Feb 05, 2007 9:17 pm, edited 2 times in total.
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Z-Man
God & Project Admin
Posts: 11717
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

The RSS feeds give this error:

Code: Select all

Warning: fopen(/www/flyspray/cache/rss2-date_opened-1-10): failed to open stream: Permission denied in /www/flyspray/feed.php on line 105 Warning: Cannot modify header information - headers already sent by (output started at /www/flyspray/feed.php:105) in /www/flyspray/feed.php on line 127    Sat, 03 Feb 2007 05:53:29 -0600 Flyspray::Default Project: Recently opened tasks http://flyspray.davefancella.com/   Mr Super User <dave@davefancella.com> Sat, 03 Feb 2007 05:26:49 -0600  http://flyspray.davefancella.com/?do=details&task_id=2 http://flyspray.davefancella.com/?do=details&task_id=2    Mr Super User < snip > Sat, 22 Oct 2005 18:46:37 -0500  http://flyspray.davefancella.com/?do=details&task_id=1 http://flyspray.davefancella.com/?do=details&task_id=1
What I'm looking for in a tracker:
* SCM integration. If a commit message contains "Fixes #43" then issue #43 should be fixed, ideally with a reference to the change that fixed it.
* A "Bugs affecting version X" mechanism. I want a single page where Patty can see a list of bugs that are known for 0.2.7.1 which she is running before reporting a new one to us. The requirements for that are basically custom fields and custom reports. Or reasonably hackable source.
User avatar
Lucifer
Project Developer
Posts: 8751
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

That error should have been fixed just a few minutes ago, permissions on the cache directory were bad. I'll check it in a minute.

On SCM integration, I'm developing a preference to writing up a notifier for the buildbot. It doesn't seem good enough to me that the bug is fixed in scm, it should also build and pass tests. :) The problem there is that if a build fails for unrelated reasons, the issue doesn't get closed until it builds again. I'll add it to the list anyway. :)

I'm really liking flyspray. It looks like it will strongly support our de facto release process. What I mean is, we're basically starting up threads and saying "What do you want in the next release?" and then doing whatever we do to track (I don't know how you're tracking the 0.2.8.3 featurelet thread, for example). Flyspray has tense for versions, past/present/future. So you can give a feature with a future version and look at the roadmap, track the work done on it, etc. SCM integration would really make this pretty sweet. :) Anyway, then it gives a percentage completion for the version. Except for SCM integration, flyspray at least gives us everything on the list so far, depending on what others want to add to the list. I haven't yet looked at how hackable the sources are.

Edit: Yep, I fixed that problem when I fixed permissions on those two directories. It broke the graphical dependency thingee, too. I wanted to point out that I've seen flyspray before and was really turned off looking at it. Maybe my attitude has tempered a bit now that I've looked a lot more thoroughly at other trackers, maybe not, but it really has come a long way. I don't even know why I bothered to go look at it, I hated it so much when I last looked at it. So it's waaaay better than it used to be. One con though is that there isn't a current stable release, there's only the 0.9.9 RC. Last stable release was in 2005, and the page says not to use it, but to use the current beta (which is an RC just released a day ago or so). Anyway, I'm for flyspray right now. If we were to decide right this minute, that's what I like. I'll post my laundry list of bitches with trac and mantis in a bit. :)
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Lucifer
Project Developer
Posts: 8751
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

Ok, I withdraw the "flyspray supports the version X mechanism" statement. It may to some extent, but not to the extent that it would be useful. You should be able to mark an item as affecting as many versions as it affects, and the report should pull the ones for the version you want. I'll look at the sources now.
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
Sticky
On Lightcycle Grid
Posts: 25
Joined: Wed Nov 08, 2006 11:59 pm

Post by Sticky »

I personally use trac on other projects and find it an extremely useful and easy to use one. I believe it fits all the requirements that you set out.
User avatar
Lucifer
Project Developer
Posts: 8751
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

Heh. Here's my problems with trac.

* My trac installation is spontaneously broken for no reason. (Actually, it's probably related to my recent update of the server, which makes this another complaint about Gentoo)
* Trac is really freaking slow. On my server, which isn't terribly buff to begin with, a trac page takes 5-8 seconds to load. The wiki pages load a bit faster, but the flyspray pages are loading really freaking fast. I hate to play the performance card when I'm the one around here who always says application performance is less important than developer performance, but in this case, application performance is developer performance. If we were to host the tracker on my server, I suspect it won't be used as much as it needs to be used if it were trac. I have this exact same complaint about sourceforge's tracker, I should point out.
* Trac is terribly difficult to setup and maintain. Adding new users, even with the fancy frontend, is tricky. The fancy frontend (which was a beta plugin last I saw, known to be unstable, yadayada) makes it quite a bit easier, but in this case using apache's auth mechanism was either a bad choice, or poorly implemented.
* I consider the built-in wiki to be a misfeature. It's nice, but it's not functional enough to be useful for documenting anything. On the other hand, since it's there, the tendency is to want to use it at least for development docs. I'm strongly in favor of not using this feature in our trac installation, if we wind up going with trac. We have the best wiki software available running elsewhere, we should just keep using that for developer documentation. I have to admit, some integration between the tracker and the wiki would be really nice, but with mediawiki getting an xml-rpc or soap layer, I'm inclined to prefer that as the method of integration rather than an embedded wiki.
* Installing plugins is a pain, largely because so many of the plugins out there are a pain. This is less of a complaint when you consider that we'd install all the plugins we need once, and never have to deal with it again.
* I find trac hard to use in general. Which is ironic considering that it's one of the easier to use trackers I've seen. Maybe this speaks more about the state of open source trackers than it does about trac in particular. I have this same complaint about Mantis, and Double Choco Latte (now that I've fooled with their demo version).
* Trac is hopelessly redundant for us on some of the things it does do well. I'm mostly thinking about the subversion browser. This is another thing we should disable, imo, but when we finally move scm off sourceforge, we're going to want a browser for it, and if we're using trac, it'll be an obvious match. A locally-available repository is needed to support trac, so the only reason my trac installation (which is broken) has one is because it's on the same server as my own svn repositories. That server happens to have a backup of the sourceforge arma repository (taken once a day, or once an hour, I forget how often it's taken), so a trac installation running on it would give us the browser anyway. But the SCM browser itself is really slow, probably the slowest part of the whole app, making it nearly useless. (10 second page loads are really unacceptable when I'm LAN-connected to the server, and the crappy server can do a lot better. In fact, it does a lot better with mediawiki and drupal, and those aren't small packages)
* I can't quite wipe the Twisted guy's rant about trac from my mind. He impressed me with his competence and knowledge of the subject, so it's a little hard to just ignore what he had to say about it. He basically said post-it notes are better than trac, even for an internationally distributed development team. His complaint was stability, and that he was spending so much time nursing their installation that he couldn't even look at other trackers. Twisted itself is a good program, and a project with a solid reputation in the python community, so he's got all the credentials to say he's not a crackpot. I don't know how much what he has to say will be applicable to us, which is the main reason I can't dismiss what he said but I don't want it to color my opinion of trac too much.
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Lucifer
Project Developer
Posts: 8751
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

From #flyspray:
The IRC Channel wrote: [07:33] <Lucifer_arma_> is there a way to get flyspray to report on all bugs affecting a given version? Where you can associate an issue with more than one version?
[08:07] <floele> Lucifer_arma_: at least in 0.9.9 it is possible
[08:08] <floele> Lucifer_arma: you cannot associate an issue with more than one version, but 1.0 will allow it
[08:08] <floele> because once it is done you can add custom fields and also allow to select multiple items
So, if we can live with what's there, all that's missing is SCM integration. (I asked if they knew when 1.0 will be ready, and haven' gotten an answer yet, you know how irc channels tend to be.)
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Z-Man
God & Project Admin
Posts: 11717
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Yeah, flyspray looks darn nice. Umm, somehow my registration fails. I tried twice, registered, got a confirmation mail, but when I enter the URI from it in a browser, it just redirects me to the main page and nothing gets done.

I can't really comment on the trac critique. It runs reasonably fast for me, but I don't have a lot of data in there. I don't find plugin installation too hard. I don't have enough experience with it to see how it breaks all on its own. My main problem with it is the lack of finer grained user rights, you can't lock single pages in the wiki from anonymous edits, for example. Maybe I'll just use it for Clio and see how it goes.
User avatar
Lucifer
Project Developer
Posts: 8751
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

Weird. I just got the email that says you registered with z-man-work. I checked the database and apparently they have a separate table for pending registrations, the only one in there was for z-man, for which I haven't yet received the notification that it's been confirmed.
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Z-Man
God & Project Admin
Posts: 11717
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

My bad. It appears my home pine screwed up the activation URI.
User avatar
Lucifer
Project Developer
Posts: 8751
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

Ok, just made you a project manager on the default project. I screwed up and made myself a super user, I need to fix that, so I don't know what a project manager or regular user can do.

The user groups are fairly configurable, i.e. you grant each group a set of permissions and then put a user in the group. And each group belongs to a project, so you can be project manager for one project and have no permissions for another.

Anyway, see what you can do that way. THere's room for me to not have it configured very well. Heh. The Armagetron Advanced project is supposed to be near a production configuration for us, but I probably missed a lot of details when I did it. I'll make you a developer there so you can see what developers can do. Project Manager on the default group should give you enough to fool with it. I can elevate you to superuser if you want.

/me goes to fix his own user's rights so he can see what the other groups can do.
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Lucifer
Project Developer
Posts: 8751
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

Ok, I'm going to bed. Figured no need to beat around the bush, you made two accounts (for whatever reasons :) ), so I made your z-man-work account a superuser.
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Z-Man
God & Project Admin
Posts: 11717
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

I'm a bit confused about the user rights. It seems global "Developers" have the right to assign themselves to all roles in all projects.

Ah, confusion resolved. You gave the global Developer group project management rights for all projects. I removed that and now only admins can assign project roles. Sounds like a better idea, you don't want me to come and tell you how you manage your living room.

The not-yet-there bugs-affecting-version-X page isn't that bad. The database contains the two relevant properties. And actually, it is possible. I added some bug reports and you can use custom search to get
All bugs affecting version 0.2.8.0
All bugs affecting version 0.2.8.1
All bugs affecting version 0.2.8.2.1
It's actually easier to do than in Trac. You have to select all earlier versions and the version itself from the "reported in" search field and all later versions from the "due in" field, whereas in Trac, you could use wildcard matches. But here, you have the UI, and it's just four clicks from the bugs affecting one version to the bugs affecting the next version.

It's neat for normal operation that you can only report bugs in present versions and make them due in future versions. For this test, and I assume for regular admin cleanup operations caused by sloppy developers, it's not neat that not even the admin can override that. I had to switch the relevant versions to be present and future as needed. But that's the only trouble I've seen so far, and we'll just have to do the cleanups before we change the tense of a version.

Regular use felt fine, navigation is quick and easy, it doesn't collapse when you have multiple views open (my main grief with Mantis). That gets it pretty close to green light from me, provided I don't find a reason why Trac is way superior in some obscure way that I suddenly declare the most important :)

Oh, another requirement I forgot about:
- anonymous bug reports. Or, better, the ability to automatically create bug reports from mails, so that we have at least a contact information and it's not like on SF where 70% of the anonymous reports are useless because you don't get followup info.

And another nice-to-have:
- Gannt chart or similar ways that tell you at first glance which tasks have to be completed first because they are critical blockers.
User avatar
Lucifer
Project Developer
Posts: 8751
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

It would be nice of the current versions could be supported in addition to branches. Or rather, branches in addition to current versions. I think that's more of an organizational caveat than anything else, having custom field support (which is planned for the 1.0 release) would take care of that. So we basically need to have current versions "trunk" and whatever branches we have, in this case "0.2.8", with 0.2.8.3 being a future version that we'll turn into a present version when it's released (obviously).

I like the difference between future/present versions, though. It makes it possible to really track future versions. I don't remember whether or not trac had a mechanism for it, and since I haven't posted my Mantis rant (it's not that bad, mostly it's about usability because I didn't go deep enough to see anything else).

The bugs-affecting-version-X mechanism looks good, the only problem is when a bug affects multiple versions. I.e. 0.2.8 branch can have it, trunk can have it, and 0.3.0 can have it. What you pulled up is what I declared previously was support until I noticed it can only be marked with one version affected. It should be multiple versions (same way you can have multiple assignees), and multiple future versions as well. A bug that affects the trunk right now will be fixed in 0.3.1, ideally, and if the same bug is in 0.2.8 branch, then it's also planned to be fixed for 0.2.8.3. Also, if the bug is in 0.3.0 and the trunk, then when it's closed we'd like to be able to see that it still affects 0.3.0 and where it was fixed. I won't say waht's there is worthless, it might just get us to the 1.0 flyspray release when the guy in the irc channel says it'll do what I've described here.

Anonymous reports was already in the requirements. :) Email reporting as an addendum to it wasn't. I'm willing to hack in an xml-rpc layer, then we need a fairly simple python bot to use it. There is code laying around for such a thing, and if we're willing to maintain the xml-rpc for flyspray, they're willing to take it. The reason they don't have it now is because the guy who wrote it left and nobody's offered to maintain it. I'd rather do it as soap, though, because soap is waaay more expressive. Xml-rpc is basically "execute this function, and you can return either a scalar or an array, and that's it". SOAP gives you more complex data structures that can be transmitted by letting you define them yourself. Anyway, soap or xml-rpc is beside the point. So with that we can have both buildbot integration and the email dealie, but I can tell you right now we're going to want to make sure the mail server has adequate spam protection. On the freeciv-dev list they're having trouble with their RT installation getting too much spam. I heard somewhere that Gmail gives you pop access? is that correct? And spam protectors for pop access?

Similarly, armabot could use the xml-rpc layer to close bugs automatically when the commit message says it. The only problem there is that armabot doesn't get the full commit message. I still think the buildbot is the best place to do that, where the build can be tested first, giving us some automated QA on bug closing. If the developer wants to contest the buildbot, he can always go close it by hand, which is what he has to do anyway if the buildbot isn't doing it. The catch here is that the buildbot doesn't get all commit messages until a commit triggers a build, until then it only does "svn info" to find out when the last commit was, so the timing of the closing of bugs would be dependent on the buildbot, which is fine for me.

Anyway, I'd like to know what other people think. I've been careful not to put language in requirements because deep down inside I only really care about how easy it is to setup (I've just assumed I'm going to host it since I'm already the tracker admin on sourceforge, but I don't have to host it). But the fact that it's in php rather than python is a big plus, imo. Python's a wonderful language and y'all know how much I love it, but I still think php is a better language for a web application, even if I hate it. And with as many people around here that already know php compared to python, that's a good thing should we find ourselves having to nurse the tracker, which gives good contingency options.
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
Post Reply