[[toc]]
Fix cloning behavior (See Bug 1410).
Remove IMAP_Tree::.
Move IMP_IMAPClient:: to Horde.
Merge IMP_Thread:: to IMAP_Thread::.
Refactor IMP_IMAPClient:: and IMAP_ACL::.
Encrypt deprecations in Horde_Crypt_pgp::.
Use one place for clear text sendmail error messages.
rename files in imp/templates/prefs to more sensible defaults (e.g. draftsfolderselect.inc, not folderselect.inc)
Remove {{$foo = &new Foo();}} calls and replace with {{$foo = new Foo();}} - The former is deprecated as of PHP 5 and causes errors when strict code checking is on.
Remove IMP_Template::.
Move share edit form into framework package to make it extendable.
Convert all configuration files to XML format.
Remove IMP_IMAP_Search:: and Ingo_IMAP_Search::.
Remove imap_reopen() call in IMAP_Search::.
Make getType() return values consistent in iCalendar::.
Move date/time parsing methods from iCalendar:: to Horde_Date::.
Checkboxes in Horde_Form that are marked as required should be required to be checked.
Remove IMP_SpellChecker::.
Add a single function for changing the language (handle the bindTextDomain() call also)
Remove hack to fix app-specific Notification_Listeners that output
instead of
Prefix all classes with Horde_ that don't have that prefix yet (also see http://www.php.net/manual/en/userlandnaming.php).
Filter all input through filter extension or library.
Escape all template tags by default.
Use phone form fields, i.e. in Turba.
Use exceptions instead of PEAR_Errors.
Clean up Horde::loadConfiguration() mess.
Consistent return types (array vs. timestamp) in Horde_iCalendar::_parse*() methods.
Clean up VFS_sql to use '/' as the root of the VFS instead of ''. This will make it behave like the other VFS backends without code to do the conversion.
Set the cache expiration time when the entry is set
Don't let Horde_Crypt_pgp methods check for secure connection.
Remove pref_api BC files
++ MIME issues
Remove deprecated code in MIME_Headers::
Remove BC mime_drivers code in MIME_Viewer::, IMP_Contents::, MIMP_Contents::.
Make MIME::_rfc822encode() a public function.
Make MIME_Viewers responsible for retrieving part contents (so they can determine whether or not contents should be retrieved at all and/or cached).
++ !JavaScript
Remove last traces of enter_key_trap.js
Remove code like hideable.js that is encapsulated by Prototype (or whatever js toolkit 4.0 uses standard)
Global Prototype/Scriptaculous libraries.
Remove app-specific 'stripe.js' files.
Remove app-specific 'open_calendar.js' files and extra code in Horde's open_calendar.js.
Replace horde's popup.js with IMP's version.
Basically consolidate all js present in multiple apps
Put core javascript into a package so it can be versioned/upgraded?
++ Bugs
Bug [http://bugs.horde.org/ticket/?id=4221 4221].
Bug [http://bugs.horde.org/ticket/?id=3271 3271] - more specifically, how to deal with addition of configspecial tags. Of course, this depends on what changes are made to Horde's configuration design.
++ To discuss
Use Horde_Template for all templates.
use __autoload() instead of require_once
Using a global __autoload() function is not good practice for a framework because you can only have one __autoload function - I'm not in favor of it (ChuckHagenbuch).
Using it in Horde apps as opposed to the framework is an option, but still leaves us all of the framework requires.
http://php.net/spl-autoload-register is a potential solution. With PHP 5.1.x (or 5.2, or ...) as a minimum version requiring SPL should be okay.
Performance a consideration? http://pooteeweet.org/blog/538/
RemoveGlobals
HordeSpaces
Require UTF-8 support
Remove confusing mess of hooks and other ways of muddling logins (especially with IMP), and replace them all with the preauthenticate and postauthenticate hooks + appropriate examples for things like vhosting.
Clean up tobackend/frombackend hooks - either remove them, or name them better, or document when and where they need to be called.
Get rid of 'realms' (replace with HordeSpaces where necessary).
Remove imp['uniquser'] ?
Horde4Config
Per-variable session locks? http://thwartedefforts.org/2006/11/11/race-conditions-with-ajax-and-php-sessions/