Partly Baked Ideas
This page is a staging area for all sorts of nascent ideas. The notion is that an idea can be posted here, gather a few comments, and then (if appropriate) be moved off to its own page(s).
Bucket Directories
Large webs (ie, over 1000 pages) get unwieldy and slow to access, etc.
It might be interesting to look into the automated creation and use of "bucket directories" which contain (say) all pages whose names start with the same two characters.
So,
FooBar might become
%Fo/FooBar.
Plugin Criteria and Ratings
Establish some criteria for plugins (eg, documentation, examples, tests). Rate plugins according to how well they meet these criteria, how many downloads they get, etc.
Maybe place extensions into a "class" - class 1, class 2, class 3, etc.
Each class would indicate a minimum set of standards had been met:
- Unclassified
- Extension has been contributed but may not be actively maintained by the author
- Class Three
- Extension is actively maintained by the author, but is not maintainable by anyone else (is not in subversion)
- Code does not conform to APIs, or has not been independently vetted
- Class Two
- Extension is unit testable
- Code has been vetted for conformance
- Class One
- Extension is automatically tested whenever core changes are made
- Extension is maintained by core dev team as well as author
Syntax Specification and Plugin Guidelines
Create a formal specification for *Wiki syntax, along with guidelines about how plugins can "play nicely" with GluePlugin, etc.
- This is the Tag's specification feature request that I mooted for ComponentEdit, and Merideth worked towards. - Sven
Test Suites
Create a regression test suite for the base distribution and plugins, checking for everything from compilation and runtime issues (eg, use strict and warnings,
Perl::Critic) through configuration problems and errors in generated HTML. Distribute the suite, so that users can run sanity checks on their sites.
We already have a large unit test suite.
A safety, consistency, and security check would be useful:
- Check for common open holes in webserverconfig
- Check local code hasn't been modified
- Check local topics against MANIFEST
- Check permissions
Tested Distribution
Create a tested distribution, including commonly-used plugins.
-- Main.RichMorin, Main.CrawfordCurrie