This shares the same issues as the current system. People will still
want their favorite feature made into an "option" instead of a plugin,
and bundling things removes most of the benefits of using plugins.
There is a very simple way to fix this, we need to remove the
distinction between "Trac" and "plugins". Trac is just a collection of
plugins you install, and it needs to be easy to install more. Quality
control is an issue, but it will always be an issue. Community ratings
will help that though. Having more divisions will cause problems not
fix them.
--Noah
>
>> What I would like to see would be that people with similar needs came
>> together to maintain 'community' versions of their Trac setup with a
>> set of plugins they would need for their use.
>
> I have two concerns with that approach -- Brand Dilution and
> Fragmentation (and yes, they're related).
>
> If you break Trac up into a number of sub-projects for each community,
> you're more likely to dilute the public awareness of what Trac is. I
> think the OForge project is exactly the type of thing you're talking
> about (http://code.optaros.com/trac/oforge/). While I applaud the
> efforts put into OForge, nobody who's not already familiar with Trac
> and OForge are going to have any idea that "OForge" and "Trac" are
> indeed intimately related. In fact the only place on the OForge
> homepage that mentions Trac is the "Trac Powered" logo in the footer.
> So if OForge becomes popular (and develops it's own "brand"), Trac
> isn't really going to benefit much from that. Similarly the improving
> popularity of Trac isn't really going to help OForge become more
> popular. It's not clear to me how having 3 or 4 separate sub-projects
> helps Trac.
>
Why is this a problem. We develop Trac to provide people with the
tools, it really doesn't matter if they don't know what Trac is. Brand
identity issues matter much less in a FOSS world, where money isn't a
concern.
> By Fragmentation, I mean that it'll be easy for efforts put into a the
> sub-projects to not be generally promoting Trac as a whole. If
> everyone's careful this can be mitigated, but it's a slippery slope as
> well. It's easy to get in a situation where a sub-project needs a
> slightly variation on a plugin. It's not generally useful outside of
> the sub-project environment so they fork it off. Now future changes to
> the original plugin and the forked plugin need to be maintained
> separately. Over time this is tough.
Proper design can help mitigate this, but if people are determined to
make single-purpose hacky solutions nothing will stop them. These are
the same people that would rather maintain a local patch to Trac than
make a plugin.
>
>> I am not a great believer in the design-by-committee, and the
>> everything-delivered-and-supported-by-Trac based on popular vote is
>> guaranteed to be a frustrating experience for everyone involved.
>
> I agree that "design-by-committee" can be a problem. But "design-by-
> lots-of-separate-committees" can be a problem as well. As for "popular
> vote", I was thinking more along the lines of "core developer vote". I
> wasn't suggesting that the entire community as a whole make final
> design decisions as to what should be included as a "Core Feature".
> What I do think would be useful is having the people using Trac
> expressing their thoughts/needs (like the new ticket voting on T.E.O),
> and the people doing the actual work on Trac taking that into account
> as they make their decisions. But the final call should be with the
> people who understand Trac the best (the core developers).
Of course, the votes on t.e.o are just to guide us. It is being called
into question as to if we actually know what users want, so the vote
numbers give at least some idea. There is a huge non-response bias of
course, so the numbers must be taken with a grain (or 12) of salt.
--Noah
>
>> Why is this a problem. We develop Trac to provide people with the
>> tools, it really doesn't matter if they don't know what Trac is.
>> Brand
>> identity issues matter much less in a FOSS world, where money isn't a
>> concern.
>
> Absolutely it's a concern. I have many, many hours invested into using
> Trac as a solution. As the old adage says, "Time is money". Whether
> something takes a lot of time or it takes a lot of money, it's
> expensive. If Trac were to fail and stop being developed, I'd have to
> move to an alternate solution and that would entail many more hours of
> time spent. Let me use myself as a specific example. We originally
> started using a version control system called TLIB (around 1989).
> Later we switched to CVS because we needed more modern features. Most
> recently we moved to Subversion. We converted all of the revision
> history from one system to the next. Making those moves was expensive
> even though both CVS and Subversion were FOSS.
You misunderstand. I, as a Trac developer, do not care if the end user
sees something branded "Trac" or something branded "Super-Mega-
Enterprise Project Awesomeness X9". I will just keep working on Trac
as I always do. If the rebranded project gets the tools I make into
the hands of developers, my mission has been accomplished. If you are
looking for glory and fame, FOSS really is not the right place to do it.
--Noah
>
>> I, as a Trac developer, do not care if the end user sees something
>> branded "Trac" or something branded "Super-Mega-Enterprise Project
>> Awesomeness X9". I will just keep working on Trac as I always do.
>
>> If you are looking for glory and fame, FOSS really is
>> not the right place to do it.
>
> Agreed. There can be some positive benefits to individuals from
> working on FOSS when it comes to future jobs or contracts. But mostly
> it's just a work of "love". My wholehearted thanks go out to you and
> the rest of the Trac team for the efforts you put into it. I
> contributed a lot of time to the programming community in the old days
> (pre-internet), but drifted away from it as life got hectic. One of my
> personal goals is to actively head back the other direction again. I'd
> like to contribute to the Trac project in the future, but the
> development stack (python with a bit of emphasis on linux/apache) is
> not an area where I do any other programming so my skills aren't much
> help here. I am thinking I can help with documentation a bit though.
Not sure where you got that idea, we place no emphasis on any
particular platform.
>
>> gets the tools I make into the hands of
>> developers, my mission has been accomplished.
>
> I have no idea what the Trac download stats are, but wouldn't it be
> more gratifying to have your efforts in the hands of a hundred
> thousand developers than in the hands of a hundred developers? Browse
> around on SourceForge and you'll find lots of interesting projects
> that are dying for lack of an audience. Lack of audience means fewer
> developers willing to spend time on the project. Fewer developers
> means a project that's more likely to wilt away.
No, not really. I like what I do, and I know it is good work. I don't
need big numbers to justify it to myself. Any developer that doesn't
work on a FOSS project because it has a small userbase isn't cut out
for the FOSS world IMO. I don't disagree that it takes a certain kind
of developer to survive the wiles of open source, but I don't think
this can or should be changed.
--Noah
>
>> Not sure where you got that idea, we place no emphasis on any
>> particular platform.
>
> Well, I did say just "a bit of emphasis". It's not a lot, but it does
> feel to me like there are more people using Trac under Linux than
> under Windows. And the options for hosting are either standalone or
> Apache.
AFAIK we have at least one core developer running Windows almost
exclusively. t.e.o runs LigHTTPD, as do many popular sites. Other
known deployment options include nginx, twisted.web2, CherryPy,
paste.httpserver, litespeed. There are probably even more, but I tend
to lose count. While we obviously cannot force 3rd-party contributions
to be platform-neutral, it is generally encouraged where possible. I
will grant you that we generally say "cron" when we mean "generic time-
based daemon", but then even a few popular linuxes no longer use cron
itself for that ;-) I agree there is a sentiment that Trac is Linux
software, and I would certainly like to reverse that whereever
possible. Once interesting idea I saw on a ticket a while ago would be
trying to get Trac running on IronPython or Jython. Porting Genshi is
probably the hardest part of that, but it would allow us to tie in to
many Windows shops' existing .NET or J2EE stack. Improving our Windows
docs (at least bringing them up to the level of the other ones) would
also probably help. Any volunteers? :-)
--Noah
I've been runnin Trac production on windows (from versions 0.8.4 to
0.9.x) then for various reasons I switched over Linux.
All Trac development, tests etc. I've always done in Windows. Lately I
managed to get Eclipse + pydev to work with Trac and that makes
development very convenient.
> t.e.o runs LigHTTPD, as do many popular sites. Other
> known deployment options include nginx, twisted.web2, CherryPy,
> paste.httpserver, litespeed.
> There are probably even more, but I tend
> to lose count.
Evil itself: IIS :D
> While we obviously cannot force 3rd-party contributions
> to be platform-neutral, it is generally encouraged where possible.
There is only few plugins that have some native dependencies that are
hard to get working on non-posix platform.
> I
> will grant you that we generally say "cron" when we mean "generic time-
> based daemon", but then even a few popular linuxes no longer use cron
> itself for that ;-) I agree there is a sentiment that Trac is Linux
> software, and I would certainly like to reverse that whereever
> possible.
> Once interesting idea I saw on a ticket a while ago would be
> trying to get Trac running on IronPython or Jython.
IronPython would be most interesting one... :D
> Porting Genshi is
> probably the hardest part of that, but it would allow us to tie in to
> many Windows shops' existing .NET or J2EE stack.
I think hardest part might be getting all non-python code to work.
Specially database drivers and svn bindings...
> Improving our Windows
> docs (at least bringing them up to the level of the other ones) would
> also probably help. Any volunteers? :-)
Not yet... Even I should help in that one. It's easy to say that docs
sucks but I don't want to help :D
But as spoken in other thread 'first time user experience' is not a warm
welcome. There is too many steps, too many options that you need to
choose from _before_ you're familiar with Trac. It's really hard to
determine is Trac "cheap" or "expensive" or even suitable.
Which brings me now idea to run a questionaire about these FTUE issues.
Wonder what would be best way to run questionaire where would be asked
about os/httpd/plugins and how people experienced installation and tryouts.
--
Jani Tiainen
> This shares the same issues as the current system. People will still
> want their favorite feature made into an "option" instead of a plugin,
> and bundling things removes most of the benefits of using plugins.
> There is a very simple way to fix this, we need to remove the
> distinction between "Trac" and "plugins". Trac is just a collection of
> plugins you install, and it needs to be easy to install more. Quality
> control is an issue, but it will always be an issue. Community ratings
> will help that though. Having more divisions will cause problems not
> fix them.
One of the simple ease-of-use upgrades I've had in Trac for a long time
is the functionality proposed in http://trac.edgewall.org/ticket/5340.
This was (at one point anyway) a one-or-two-line change that made the
Trac user experience substantially better for most auth methods one
might choose. In fact, without it, I have had numerous smart,
experienced tech people become confused (and some of them angry!) when
they see Trac's permissions errors instead of a login screen. IMO, the
empirical user feedback speaks for itself. I can't blame them, either.
Show me one other popular web software package that generates such a
loud permissions error while hiding the "fix" away in a little link that
is not very prominent when the error occurs.
The suggestion in the ticket was to use
http://trac-hacks.org/wiki/PermRedirectPlugin. Problems with that:
0. The total amount of code required to package this as a plugin
compared to what it would take to integrate it into Trac doesn't
make economic sense from a maintenance point-of-view. But in
theory that's not my problem.
1. Other Trac administrators have to discover this plugin in order to
get up to what many people consider a minimally acceptable level of
usability.
2. The plugin isn't working with 0.11; at least not for us.
This plugin, as it is developed by Noah, by rights ought to stand a
better chance than many others of maintaining compatibility with the
Trac release. I don't think this would have happened if the
functionality was in the Trac core. In fact, I'm pretty sure that #2
above is at least partly related to #0.
I'm not trying to say that lots of plugins ought to be pulled into the
core. I share the OP's point of view that the separation and modularity
is beneficial.
The current approach appears to be "if it can go in the core, it
should"... sometimes. For example, it's my impression that there's a
lot of wiki formatting functionality in the core that could be in a
plugin. I think, at the very least, the criteria for deciding what
belongs in the core ought to be revisited, nailed down, made consistent,
and then publicized. If the policy were clear, consistent, and known, I
bet you'd stop seeing clones of this thread pop up every few weeks.
--
Dave Abrahams
BoostPro Computing
http://www.boostpro.com
> The current approach appears to be "if it can go in the core, it
> should"... sometimes.
Err, I meant
"if it can go in a plugin, it should"...sometimes
Sorry for the confusion. :(
Given I use FreeBSD and lighttpd I resent that remark. :)
--
Jeroen Ruigrok van der Werven <asmodai(-at-)in-nomine.org> / asmodai
イェルーン ラウフロック ヴァン デル ウェルヴェン
http://www.in-nomine.org/ | http://www.rangaku.org/ | GPG: 2EAC625B
Who watches the watchers?