Opened 11 years ago
Last modified 14 months ago
#11567 new enhancement
TracIni wiki page is incomplete
Reported by: | Owned by: | ||
---|---|---|---|
Priority: | normal | Milestone: | next-stable-1.6.x |
Component: | general | Version: | |
Severity: | normal | Keywords: | documentation, configuration |
Cc: | Ryan J Ollos | Branch: | |
Release Notes: | |||
API Changes: | |||
Internal Changes: |
Description (last modified by )
The TracIni page does not include some configuration options which are mentioned elsewhere.
Specific configurations that are missing:
tracopt.ticket.deleter
referenced for example in #10656, #9823, etc. This is a very useful feature. How do we learn that it exists, and how to use it?trac.web.auth.loginmodule
The instructions to configure the http://trac-hacks.org/wiki/AccountManagerPlugin say to disable the default Trac authentication. Again there is no reference to this configuration on the TracIni page.
Those are just two examples; but I suspect there may be many more undocumented configurations. Is there another wiki page that has a comprehensive list of ALL trac configuration options? Or some other way to discover them, short of reading the source code (I am not a python programmer) ?
Attachments (0)
Change History (18)
follow-ups: 2 4 comment:1 by , 11 years ago
Cc: | added |
---|---|
Milestone: | → undecided |
follow-up: 3 comment:2 by , 11 years ago
Replying to rjollos:
I understand your frustration with this aspect of Trac.
thank you for your prompt, detailed and thoughtful reply
the best way to learn about the Trac components is to go to the
/admin/general/plugins
page and read the component descriptions.
AHA! this is what I was missing. It exposes the full feature-set of Trac, from which I can include/exclude features.
In general, the TracIni page is not the right place to look for component descriptions.
Accepted; but then shouldn't there be a high-level page, as a peer with TracIni, TracInterfaceCustomization, etc. (listed in the main sidebar TOC), which is named TracComponents ?
FYI I did spend quite a lot of time trying to answer my own question before opening this ticket; but I was looking only in the documentation, not in my own Trac instance in the Admin section. I just tried again, and I -still- don't see any documentation that corresponds to the various options in /admin/general/plugins
, for the core Trac capabilities. Each of the other plugins I have installed has its own documentation; those are not the issue. It's the core feature set I'm asking about.
comment:3 by , 11 years ago
Replying to jeremy.j.dunn@…:
Accepted; but then shouldn't there be a high-level page, as a peer with TracIni, TracInterfaceCustomization, etc. (listed in the main sidebar TOC), which is named TracComponents ?
Yes, I think that could be the simplest immediate solution, which some of the other ideas for improvement being implemented later. I'll see what the other Trac devs have to say, and then possibly looking into adding it.
We might also benefit from an introduction page that gives a quick overview (TracIntro), along the lines of, this is what trac provides, go here to learn more.
comment:4 by , 11 years ago
- Create a Trac Components page with a PluginList macro that displays the available components and their descriptions (or extend the TracIni macro to list components when a keyword argument is passed).
I don't think good idea to create such a macro to list installed plugins. It would leak the system information for non-administration accounts. I think the plugin panel in admin is enough.
comment:5 by , 11 years ago
The way I propose to implement would not leak any information. It would just show the descriptions of all possible components in Trac, both enabled and disabled, and would not indicate any information about the enabled/disabled state, or any plugins. Anyone that knew the Trac version of the installation could easily find the same information.
follow-ups: 7 9 comment:6 by , 11 years ago
Better component descriptions sound good to me, and I would have suggested a pointer to admin/general/plugin from TracIni#components-section, but it seems that already exists:
To view the list of active components, go to the Plugins page on About Trac (requires CONFIG_VIEW permissions).
I'm not sure if making that a link would be a good idea.
A PluginList macro could require CONFIG_VIEW
. (But for use on a TracComponents page here on t.e.o. that would be unsuitable.)
comment:7 by , 11 years ago
Replying to psuter:
Better component descriptions sound good to me, and I would have suggested a pointer to admin/general/plugin from TracIni#components-section, but it seems that already exists:
To view the list of active components, go to the Plugins page on About Trac (requires CONFIG_VIEW permissions).
I completely missed that sentence, THREE times. It is not obvious. And, I must say that since the entire page is about "Ini" settings, it never occurred to me to look elsewhere. Honestly the page is so large, I was just scanning down, looking for tabular-format sections with the config options.
The main point here is:
- there are two ways to configure Trac features
- thru trac.ini
- thru Admin/General/plugins > Trac core options
Until I posted this ticket and everyone has so kindly replied, I had forgotten completely about the second set of configurations. It would be nice if this was mentioned somewhere OBVIOUS in the main documentation. I still think TracConfiguration would be a helpful top-level topic.
comment:8 by , 11 years ago
p.s. further to the point I've been suggesting about the need for TracConfiguration, since reading your comments I've been exploring admin > general > plugins > Trac options. Most of the options listed there have -no description-. Searching for them on t.e.o yields nothing. My point is, how is a Trac admin to understand what these features do? Some of them are obvious according to name; but others not so much.
Example: MilestoneCache configuration. Why is it something that can be enabled / disabled? When would I want to disable it?
At a very minimum, it seems like every option listed on that page should have a one-sentence description of what it does.
comment:9 by , 11 years ago
Replying to psuter:
A PluginList macro could require
CONFIG_VIEW
. (But for use on a TracComponents page here on t.e.o. that would be unsuitable.)
Use of CONFIG_VIEW
could be the way to go, possibly exposing the content on t.e.o by granting CONFIG_VIEW
to anonymous for a particular resource using TracFineGrainedPermissions. I'm been considering though, that in a way we already leak information about the configuration through the TracIni macro listing. In many cases a user could figure out the enabled/disabled components by looking at the sections present on the TracIni page. I don't think this is a big problem, but it seems to me that whatever permission restrictions we apply to the use of the TracIni macro may be applicable to a listing of the components and their descriptions. If we are able to list all components regardless of their enabled and disabled status, then essentially no configuration information would be leaked. If we included plugin components in the listing, that would leak the list of installed plugins, but that is not what I had in mind initially.
I confused the situation by saying PluginList
, when I should have said ComponentList
(or [[TracIni(components)]]
) since I had in mind only to show built-in components. If we extended the listing to include plugins, which could be useful, then in many cases we are leaking the same amount of info that is exposed through the current TracIni macro. Arguably more, but I question whether the information is harmful. If we were to apply CONFIG_VIEW
to restrict the listing, then we may want to consider requiring CONFIG_VIEW
for the TracIni macro as well.
I could see approaching this whole issue from a different direction though. In addition to adding description to all components, some ideas are:
- Improve the layout of the plugin admin page.
- Reduce the number of components shown on the page. Most users would probably prefer that the required components be hidden. Maybe we need more required components. It seems odd to me that
trac.db.sqlite_backend.SQLiteConnector
is required buttrac.db.api.DatabaseManager
is not. Another case: can Trac really be used withouttrac.resource.ResourceSystem
? I suppose some projects such as Agilo and Bloodhound might need to replace these classes, but I can't think of any reasons to not make these required. - We could have a toggle between simple and detailed listing, hiding stuff that typical users would never disable when the simple listing is disabled, such as
trac.ticket.api.TicketSystem
andtrac.resource.ResourceSystem
. - Component dependencies could help reduce the number of components on the page. Many plugins have several components, but they must all be enabled for the plugin to work. It would be nice to have only one component shown in these cases, e.g. show
web_ui
and hidecore
,db
,api
, … We could introduce new attributes, such asrequired_if
andhidden
. Of course that only helps if we get plugin authors to add the attributes to their component classes. - Most of the extra stuff that a standard user would want to enable is in
tracopt
. Perhapstracopt
could shown as a separate plugin on the admin page.
comment:10 by , 11 years ago
Milestone: | undecided → 1.0.2 |
---|---|
Owner: | set to |
Status: | new → assigned |
I'm thinking to proceed as follows:
- Add/improve component descriptions (this ticket).
- Add additional pointers in documentation, directing user to the admin plugins page for descriptions of Trac components.
- Propose displaying
tracopt
as a separate plugin on the plugin admin page (new ticket). - Explore other potential improvements later on.
Let me know your thoughts.
comment:11 by , 11 years ago
re proposed solution in comment:10, all of the points sound good to me. Thank you !
comment:12 by , 11 years ago
I like almost all of those ideas.
Instead of hiding components I would prefer to just list them separately or maybe just make it more obvious that (and why) they are required.
The dependencies idea might be a bit overkill. Interestingly, the DB backend components are already only required under certain conditions.
comment:13 by , 10 years ago
Milestone: | 1.0.2 → 1.0.3 |
---|
comment:14 by , 10 years ago
Milestone: | 1.0.3 → next-stable-1.0.x |
---|---|
Owner: | removed |
Status: | assigned → new |
comment:15 by , 8 years ago
Milestone: | next-stable-1.0.x → next-stable-1.2.x |
---|
Moved ticket assigned to next-stable-1.0.x since maintenance of 1.0.x is coming to a close. Please move the ticket back if it's critical to fix on 1.0.x.
comment:16 by , 8 years ago
Description: | modified (diff) |
---|
comment:17 by , 5 years ago
Milestone: | next-stable-1.2.x → next-stable-1.4.x |
---|
I understand your frustration with this aspect of Trac. Presently, the best way to learn about the Trac components is to go to the
/admin/general/plugins
page and read the component descriptions. This is not ideal though because:The issue has been on my mind for a while. Some potential solutions are:
TICKET_DELETE
permission for the resource will be able to delete tickets and ticket comments.To address your specific points,
tracopt.ticket.deleter
doesn't have any options so it won't be shown on the TracIni page. In general, the TracIni page is not the right place to look for component descriptions. I don't think we want to go the route of listing all of the components and their descriptions on the TracIni page.