Gallery2:Roadmap:2.3 - Gallery Codex
Gallery2:Roadmap:2.3
From Gallery Codex
Updated R2.3 List
- Note that this roadmap had been defined at the beginning of the development cycle of Gallery 2.3 and is superseded by 2.3 Release Blockers
Must Haves
- Language Pack Manager (User:Jozefs)
- Select and install packs for all plugins at once, including core.
- Package Size - English-only release package
- Reduce the default package sizes considerably.
- Add a progress bar for all Item-Add methods (User:Valiant) √
- Improve Realiability and usability of a very important core feature that way.
- Downloadable Plugins Support for Different Versions of G2 (User:Bharat) √
- DP should provide the APIs versions in its requests so that the gmc_repository Drupal module can choose a repository that is compatible.
- WebDAV bugfixes (User:Jablko)
- Fix the remaining WebDAV bugs. Not all are must-haves, but OS X support is required.
- Anti-spam module (User:Bharat) √
- Akismet would be good. Must be simple to configure and use.
- Initial plan to extend the comment module and only provide akismet functionality for comments
- Ajax Item Admin interface (User:Jablko)
- merge into trunk.
- Add formVar and elementId Smarty modifiers.
- Move block / container templates into main templates directory, to facilitate blocks which render JavaScript to update themselves and blocks which can be both blocks and containers.
- Embedding Improvements - e.g. fetch any module block via GalleryEmbed, maybe finally polish the SoC embed module. See Gallery2:Embedding:Development Roadmap
- Enforce entity types (User:Valiant) √
- Security improvement: enforcing entity types at load time makes sure malicious users injecting ids can't force loading the wrong entity.
- Improve URL Generation Performance (User:Valiant) √
- Improved GalleryUrlGenerator::generateUrl() performance by a factor of ~4.
- Remove the per-plugin locale folder (User:Bharat) √
- The large package size is causing issues with ftp and subversion and makes Gallery seem bloated
- Reduced Package size dramatically (#folders 5600 -> 500)
- Event / Error Logging (User:Bharat) √
- Implement an API and a UI for logging errors and other events
- Make jpegtran an official module (User:Valiant) √
- Turn on Smarty template path caching (User:Valiant) √
- Turn smarty.compile_check off
- Significant reduction in stat calls per request
- Themes can override all module templates (User:Talmdal) √
- Modules now have a new template version
- Themes can override any template a module provides
- Make EXIF block uses AJAX (User:Mindless) √
- Performance / usability improvement
- Added Windows Vista support for Windows Publishing Wizard (User:Valiant) √
- Make webcam module accept file:// URLs (User:Mindless) √
- Webcam module can now retrieve images from local filesystem.
- Create maintenance mode API and UI (User:Talmdal) √
- You can now put your G2 into maintenance mode programmatically
- Fix session data truncation issue with MySQL / DB2 (User:Talmdal) √
- DB Backup Feature (User:Talmdal) √
Ought To Haves
- Better Captcha
- Implement a more robust captcha image √ (slightly better, and there's a recaptcha module)
- Security: input-validation framework (User:Talmdal)
- XMLRPC module / REST API -> trunk - Time to review and polish the module for primetime. (User:ckdake)
- Performance Improvements
- Minimize per-request file I/O
- Minimize modular architecture at runtime
- Move modular design to config time where possible
- Move file based caching into the database
- Measure performance increase
- Refactor ACL support to make thousands of user/user-albums efficent (User:Valiant)
- Usability: Site admin reorganization
- Scheduler Module
- Required for other features like future publishing of items, expiring items, digest mode notifications, periodic tasks.
- Get rid of the g2_statusId and g2_navId and from urls (User:virshu) √
- If this means deleting those two features, User:Bharat is totally ok with it.
- Refactor navId / Navigation Code
- Notification module (User:talmdal / User:Zimzat) √
- Finish this module and get it integrated.
- Scripted installer
- Important to improve situation with yahoo, fantastico and other re-packaged distributions that are very slow at updating or bad at providing a quality product)
- Lightweight Event System (User:Jablko) √
- Stop querying all active modules at runtime
- PHP-based gettext fallback (User:Joe7)
- Get rid of our gettext dependency.
- Give modules more template hooks
- Makes life easier for UI designers
- Modules should be able to arbitrarily add code to the header and footer of the page (like to add a page counter, etc
- Express Upgrader
- There should be a one-click way to do an entire upgrade
- Implement MPTT (User:Joe7)
- Also need performance metrics (speed, scalability, load) to see the impact of this change - Joe7
Nice To Haves
- Permissions: it shouldn't default to grant all users to delete each others albums
- More Permission Bits - talmdal is working on that
- EXIF Data in DB - For performance and searchability. (there's now an SoC project for this, so I doubt it will make it into G2.3)
- Testing / QA - More Appliances - Appliances for MS SQL, Oracle, ...
- Usability: Get rid of g2_ as the default form variable
- Security Improvements - Work on 1, 2 other smaller security improvements
- Finish CSRF protection task (auth-token): Add auth-token expiration through sliding window / multiple auth-token approach.
- Usability: Permissions Management - Add a default / easy mode and keep what we have as an expert view. Plus improvments to the existing view / controller.
- Add support for site-wide status messages (technically a major theme API change, but we may find a way / trade-off to add it w/o)
- Add support for per-page impression hooks / "invisible blocks"
- Usability: AJAXify the progress bar
- make it a DHTML overlay instead of an interstitial page
- Stability: Overhaul the rewrite module (my require API change)
- Change the rewrite module so that it has a minimal footprint in the .htaccess file. Just enough to delegate to the PHP code and let the PHP code interpret the url.
- Allow each module to register urls that it wants to control, like Drupal does
- Features: Rewrite the RSS module
- It's way, way, way too complicated. Replace it with something very simple
- Support views delegating to other views.
- Hooks in register module to support OpenID, LDAP and HTTP server auth. (User:Jablko)
- OpenID module (User:Jablko)
- LDAP module (User:Jablko)
- Nice-To-Have's from Gallery 2.2 (carry over to G2.3)
Resources
- mindless: not available for specific tasks, but is around for reviews, occasional bugfixes, release process
- Joe7: interested in working on performance related tasks (MPTT, ..) and in adding php-based gettext support with translation caching
- valiant: maybe one larger task, generally available for reviews
- bharat: generally available (will work on 1-2 larger tasks continuously, do bugfixes, reviews, etc)
- talmdal: generally available (will work on large tasks, bugfixes, etc)
- jablko: generally available, e.g. lightweight event system
- zimzat: will be working on the notifications module
- virshu: generally available
- ckdake: ? (xmlrpc)
- dmolavi: can support the integration tasks
- ?
Schedule
- Initial plan:
- The feature freeze should be 3 to 6 months from now (rather 3): Features freeze ~July 30th, 2007.
- 1.5 to 2 months of testing, bugfixing and polishing after the feature freeze
- Update (January 2008):
- Feature freeze for risky changes is in effect since fall 2007.
- Tentative release date for a first release candidate is end of May 2008