Gallery2:Roadmap:2.3 - Gallery Codex
Personal tools

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)
    • Task 132141.
  • 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