[cvs] [Wiki] changed: BCBreakingHordeIssues

Chuck Hagenbuch chuck at horde.org
Thu Jan 15 03:02:29 UTC 2009


chuck  Wed, 14 Jan 2009 22:02:29 -0500

Modified page: http://wiki.horde.org/BCBreakingHordeIssues
New Revision:  2.66
Change log:  a few updates, break out imap into a separate section,  
move a few other things around

@@ -2,30 +2,25 @@

  + Backward Compatibility Breaking Horde Issues (aka Horde 4.0 TODO)

  * Fix cloning behavior (See Bug 1410).
-* Remove IMAP_Tree::. **(DONE)**
-* 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.
  * Similarly, don't pass objects by reference ( function foo(&$bar) )
  * Move share edit form into framework package to make it extendable.
  * Convert all configuration files to XML format (or to a unified  
conf.yaml, or an annotated conf.php - either way, something the config  
interface can universally manage and generate)
-* Remove IMP_IMAP_Search:: and Ingo_IMAP_Search::.
-* Remove imap_reopen() call in IMAP_Search::.
  * Checkboxes in Horde_Form that are marked as required should be  
required to be checked.
  * Remove IMP_SpellChecker::. **(DONE)**
+* Use hash() instead of md5 or sha1 directly for speed  
(http://us.php.net/manual/en/function.hash.php)
  * Add a single function for changing the language (handle the  
bindTextDomain() call also)
  * Remove hack to fix app-specific Notification_Listeners that output  
<p> instead of <li> (in Notification/Listener/status.php).
  * 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.
  * Use phone form fields, i.e. in Turba.
  * Use exceptions instead of PEAR_Errors.
  * Clean up Horde::loadConfiguration() mess.
-* 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.  This is done  
in 3.2 but the API should be modified to remove the $lifetime argument  
from get() and exists().  When checking for cache data the check  
should only be that the data is not expired.  Garbage collection  
should automatically remove expired data.

  >> However, it's useful to have a way to use expired data in the  
cache, or to have other kinds of "stampede protection" (have the first  
process that hits an expired entry touch() it before regenerating it,  
so that other processes don't *also* try and regenerate it - thus the  
stampede effect). --ChuckHagenbuch

@@ -42,24 +37,32 @@
  * Remove pre-Horde_Alarm reminder scripts and supporting classes
  * Clean up horrible Share reference workarounds  
(http://bugs.horde.org/ticket/?id=5086,  
http://bugs.horde.org/ticket/?id=5422)
  * Make editors horde-wide configurable, maybe a preference
  * Store all date/time information as UTC and convert to user's timezone
-* Have IMAP_Cache:: use !SessionObjects instead of directly accessing  
the session.
  * Make sure that Horde_Compress_* use streams instead of requiring  
full files in memory.
-* Have some sort of Horde_URL object used to create/work with URLs  
(will deprecate Util::addParameter(), Util::removeParameter()).
+* Have some sort of Horde_URL object used to create/work with URLs  
(will deprecate Util::addParameter(), Util::removeParameter())  
((**IMPLEMENTED** as part of Horde_Routes)
  * In Browser::, change 'konqueror' to 'webkit' (or add both 'webkit'  
and 'safari').
  * Move browser RTE capability sniffing to Horde_Editor drivers.
  * Refactor Maintenance code to trigger it globally on login instead  
of each application needing to trigger it's own tasks.
  * Remove IMP_Serialize_JSON:: and Kronolith_Serialize_JSON::. **(DONE)**
  * Remove Gollem_Serialize_JSON::.
  * Refactor Horde_Image: 100% native Imagick driver (avoids having to  
keep the image data in instance variable in addition to the imagick  
object), Allow image objects to represent more than 1 image/page, Move  
the Exif reading code from Ansel_ImageData into Horde_Image.
+
+++ IMAP stuff
+* Remove IMAP_Tree::. **(DONE)**
+* Merge IMP_Thread:: to IMAP_Thread::.
+* Refactor IMP_IMAPClient:: and IMAP_ACL::.
+* Have IMAP_Cache:: use !SessionObjects instead of directly accessing  
the session.
+* Remove IMP_IMAP_Search:: and Ingo_IMAP_Search::.
+* Remove imap_reopen() call in IMAP_Search::.

  ++ Framework Libraries
  * prefix all framework classes with Horde_
  * capitalization (Horde_Xml_Wbxml instead of XML_WBXML)
  * lib/ organization, test/, etc. (document new package structure at  
((Doc/Dev/Libraries)))
  * one framework structure, multiple packageName.xml files?
  * pear package names don't include Horde; horde is the channel -  
pear install horde/auth
+* use Horde_Autoloader; never use include(_once) or require(_once)

  ++ MIME issues
  * Remove deprecated code in MIME_Headers::
  * Remove BC mime_drivers code in MIME_Viewer::, IMP_Contents::,  
MIMP_Contents::.
@@ -67,8 +70,9 @@
  * Make MIME_Viewers responsible for retrieving part contents (so  
they can determine whether or not contents should be retrieved at all  
and/or cached).
  * Don't link MIME icons to Viewers - show icons no matter what  
viewers are installed/enabled/etc.

  ++ VFS
+* 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.
  * Use/learn from http://www.php.net/~helly/php/ext/spl/
  * Specifically !DirectoryIterator, !SPLFileInfo, !SplFileObject, ...
  * Implement and enforce VFS permissions, at least in the backends  
which do not enforce permissions themselves ('sql' and in some cases  
'file').

@@ -88,27 +92,27 @@
  * Remove IMP_Template, Ingo_Template, and Gollem_Template.
  * Replace all templates with a Horde_View class, with a default of  
simple PHP templates
  * Introduce templates for ALL HTML generated in libraries
  * Figure out how to handle templates for framework packages
-* Default HTML Horde_View should escape all output (htmlspecialchars)
+* Default HTML Horde_View should escape all output (htmlspecialchars)?
+* Some sort of simple tag system for user-editable content

  ++ 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.
-* Un-stall all tickets with Horde 4/IMP 5/etc. milestones
+* Un-stall all tickets with Horde 4/IMP 5/etc. milestones (**DONE**)
+
+++ Internationalization
+* Require UTF-8 support

  ++ To discuss
-* Template system (Horde_Template? something else?)
-* use spl_autoload() instead of require_once (with Horde_Autoloader)
  * RemoveGlobals
  * ((Project/HordeSpaces))
-* Require UTF-8 support
  * Require PHP 5.3+ and use the intl extension (http://us3.php.net/intl)
  * 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 ((Project/HordeSpaces)) where necessary).
  * Remove imp['uniquser'] ?
  * Horde4Config
  * Per-variable session locks?  
http://thwartedefforts.org/2006/11/11/race-conditions-with-ajax-and-php-sessions/
-* Use 1 login screen for all apps? (i.e. Horde_Login:: library)
-* Use hash() instead of md5 or sha1 directly for speed  
(http://us.php.net/manual/en/function.hash.php)
+* Use 1 login screen for all apps (i.e. LoginController)?
  * Deal w/CSS namespace clashing issues in portals (see, e.g.,  
http://bugs.horde.org/ticket/?id=5831). Prefix all css rule names with  
the application name (.horde-header)?



More information about the cvs mailing list