This site has been retired. For up to date information, see handbook.gnome.org or gitlab.gnome.org.


[Home] [TitleIndex] [WordIndex

This is the planning page for Evolution 2.4. All big plans and decisions for the Evolution 2.4 release are described here.

The main theme for Evolution 2.4 is <i>quality over features</i>. We are focusing on performance, user interface improvements, robustness and community-building.

Timeline

Evolution releases are synchronized with release of GNOME. GNOME is released every six months, on a regular, predictable, time-based cycle.

The following dates are estimates based on previous GNOME releases.

July 19th, 2005

Feature and Module Freeze

August 2nd, 2005

UI Freeze

August 16th, 2005

String Freeze

August 30th, 2005

Hard Code Freeze

September 15th, 2005

Release of Evolution 2.4/GNOME 2.12

Evolution/User:Andre: There is a work-in-progress timeline.

Evolution/User:pgoel: Looking at the current 2.11 plan (Feature freeze: 11th July) and our past experiences, I would rather recommend aiming at June 30 as the feature freeze for 2.4. This is to avoid the last minute feature checkins. This should be feasible since we are not aiming at adding a lot of features for 2.4.

Task List

Evolution/TwoFourTaskList aggregates all the tasks that would/may be taken up for the Evolution 2.3 development cycle.

Architecture

Some focus on more major architectural problems are covered on a separate page, Evolution/Evo2.4_Architecture.

Performance

It is commonplace for Evolution to consume well over 100 megabytes of RAM today. Some common user functions are slow, and many are not as fast as they could be.

We want to make Evolution feel light and snappy. These tasks are focused on memory use reduction and improving interactive performance.

We want to improve performance for common operations that make up the bulk of the Evolution experience, like switching from one mail message to another in the preview pane. These operations are not slow today, but they are not instant either. Near-instant performance for common operations will improve the user's overall impression of Evolution.

Software has a rich history of people spending large chunks of their life optimizing things that don't matter. Therefore, the mantra for this work is: profile before optimizing. You cannot optimize until you know what to optimize. Therefore a large portion of this work is devoted to timing and memory profiling.

Profiling Tools

Evolution/User:Rodo GLib is using memory pools for data structures such as lists and hash tables. When using valgrind to track down leaks you will not see leaked memory allocated in memory pools. It is possible to compile GLib with memory pools disabled. They can be disabled at configure time.

Memory Use

Profiling Memory Use

It is not uncommon to see Evolution processes grow beyond 100 megs of RSS, and evolution-data-server processes over 50 megs. But where is this memory going?

We need to go through Evolution with memory profilers and valgrind to hunt down leaks, excessive memory allocation/fragmentation, non-const'd data that should be marked read-only, and other common problems. We can probably learn from (and participate in) the GNOME memory profiling optimizing efforts.

Task Area

Task Description

Importance

Difficulty

Owner

Status

Additional information

Performance

Make a test for [http://live.gnome.org/MemoryReduction_2fTools_2fLongTermMemoryTests long term memory usage]. Support valgrind'd runs

High

Medium

Thanika

Started

Thanika's team has reported similar issues in the past. Evolution/long-memory-usage

NotZed has written a profiling tool which give a simple visual map of memory use over time, a fragmentation visualiser. This is a low-resolution tool, but one that can visualise memory use over time and against user actions, it has a low impact on the running application.

This could possibly be matched with the simple backtrace generation code in a file descriptor debugger to provide detail of where the memory is being used.

Calendar and Addressbook

In EDS, calendar and addressbook data are kept in-memory for all loaded calendars and addressbooks, and it is not uncommon for EDS to grow above 50 megabytes in RSS.

Evolution/User:Harish Calendar cache redesign offers a lot of scope for improving memory usage and performance. Shared backends (b/w evolution and alarm daemon) can avoid replicated data in memory. Moving away from linear walks for searching (by using indexed searches) can further help improve performance, in addition to the existing query optimizations.

Evolution/User: pchenthill Making the model handle the type checking of the calendar items (calendar/tasks) for adding them to the respective views. This would reduce memory buildups to some extent in EDS and also improve the performance.

Task Area

Task Description

Importance

Difficulty

Owner

Status

Additional information

Performance

Collect local addressbook and calendar files that result in large EDS processes, so that the developers can profile Evolution running with those data sets

High

Easy

Thanika

Not started

Performance

Calendar Performance Testing

High

Easy

Thanika

Not Started

Harish: An initial set of scenarios have been identified in Evolution/CalendarPerformanceTesting

Performance

Addressbook Performance Testing

High

Easy

Thanika

Not Started

Sush: Measure the time taken for performing various addressbook operations. Evolution/AddrBook_perf

Mail

We need profiling data for local mailboxes, IMAP, Exchange and GroupWise.

Summary files are kept in-memory for all mailboxes. For them to be moved to disk, in an effective manner, some architectural changes would be required. Some discussion on implementing Evolution/on-disk summaries has been started.

Interactive Response

Common operations should respond instantly. Each of the following should take < 0.20 seconds on common hardware:

Helpful messages should be displayed in the status bar to tell the user if a time-consuming operation is underway.. Eg: First time loading in calendar - Evolution needs to tell the user if it has not loaded all events yet and still doing so

Seek accounting

A major cause of bad performance with evolution is related to poor seek performance. This is particularly obvious on laptops with slow hard disks. It's relatively easy to be fooled about this - particularly when testing evo. on a machine with lots of spare RAM. We need to use some tools to eject cached pages; available on request.

Evolution/User:Notzed I dont believe this will yield any fruitful results. The thrashing is to do with fragmented writes - flushing cached pages will not benefit profiling this. Indexing is the only code which does heavy seeking. It sounds like your system is paging, which will always seriously affect performance.

Synchronous I/O

For me - when Evo. is fetching mail - my disk becomes unusable, and my desktop slows to a crawl - my disk light hammers away like a smith on acid. Clearly, since the process of fetching mail needs pipelining / optimizing to ensure that we do asychronous writes, and sync/flush only when the full mail download (and spam filtering?) has completed. It's not clear to me what the disk activity is - perhaps re-writing indexes across a large set of mail boxes; I have 150 folders or so; if so - perhaps filtering can be delayed and aggregated to a per-box basis.

Evolution/User:NotZed Aggregating filtering per-mailbox complicates the failure cases and requires some more complex transactional processing than is required if you just process each message one at a time. You would have to store all new mail in a (new) queue and then process that queue in multiple passes based on the filtering processing.

Clearly indexing is a major performance bottleneck. A single global index would vastly improve memory and disk requirements and let caching work more effectively. The drawback is any corruption would require a complete index rebuild, and not just on the folder corrupted. Given that other tools are indexing the content anyway, there is a fair call for removing it from evolution iself.

The synchronous i/o is necessary, it is necessary to ensure data integrity (e.g. download mail, write to 'disk', delete mail, crash - the mail is lost). Without indexing, the synchronous i/o isn't much overhead, since most writes are large enough to mitigate it (early testing had shown this to be the case). Indexing is not done using synchronous writes.

Move to next/prev mail

We need to define some sample mails.

The point is not (just) to optimize GtkHTML's rendering paths. The point is to examine the entire process that is kicked-off when the user jumps to the next message, and optimize the slow parts. Fetching the message off disk/network, loading the message data, parsing it, determining what to display, destroying/creating widgets, rendering the data, displaying it. Is there prefetching we could be doing that we're not? Is our parsing code slow? Are we unnecessarily destroying/creating widgets when we could just clear/repopulate them? Does it take a while for the display to "settle down" if there are attachments? Etc. My general experience with the mail display is that there's a delay, like 0.3-0.5 seconds, right after I hit the down-arrow, and before the message is displayed. But this needs to be quantified and broken down through profiling.

Also, how do we measure this time? What is it now?

Open composer

Measure from the time the user clicks the 'compose' button to the time he can start typing in the mail.

How long does this take now? What are the slow parts?

Switch folders

Measure from the time the user clicks on a new folder to the time when the mail summary is displayed and the UI has stopped updating.

How do we measure this? How long does it take now?

Mail movement operations

For example, moving a message between folders, moving folders, deleting messages. Are there areas where we are waiting for a round trip to the server where we could do something in the background (like, for IMAP)?

For operations done in another thread, though, it might still block later operations the user starts until the first is complete (at least for IMAP) because:

** this is partially a shortcomming of our implementation because we lock the CamelImapStore while an operation is in progress (we do something similar with my new IMAP4 code as well). Evolution/notzed it is a shortcomming of the implementation but nothing to do with locking of the CamelImapStore. The implementation is completely synchronous in all ways. **partly a shortcomming of the IMAP specification in that not all operations can be done in parallel (some combinations of query types can be performed in parallel, others can't)

We already try to "optimise" this by locking and unlocking in the loop to allow another thread to grab it and perform the next operation (meaning we don't hold the lock outside the for-loop that is moving all the messages)

The connection has to be multiplexed in different ways. e.g. multiple pipe-lined partial fetches of summary updates, content, perhaps even searches (searching over sub-ranges). This is the only way you're going to get any performance out of it and have a queue of operations which can be prioritised. The queue prioritisation has to happen in the backend.

Evolution/User:Nat I tried to clean up the disagreement that was going on here, but the IMAP experts needs to reach their own conclusions here.

Switch between mail, calendar and addressbook

Measure from the time the user clicks on a component button to the time the UI stops updating.

We probably need to consider first time vs subsequent switches.

Switch days/months in the calendar

Test this with an insanely large number of items in the calendar.

Open appointment

Evolution/User:Harish: Measure the number of backend calls to eds made by evolution during the course of opening a single appointment in the event editor/in rendering a view. There are a lot of redundant calls that need to be pruned out.

Handling attachments

Evolution/User:Harish: Calendar attachments do not reside in memory with the event objects, they belong to. However, in backends like GW, they are retrieved from the server and serialized in the file system even if the user may not have tried to open it. This can be designed such that a double click on an attachment displayed in the event-editor, triggers a backend request to eds, which in turn can fetch it from its cache/ download it from the server, on demand. This would drastically bring down the initial loading time of the calendar (first loading after account creation). (JIT fetching).

Looking up Free/Busy information while scheduling appointments

Evolution/User:Harish Test this with look-up on users who host their schedules on a WebCal or in the case of backends like GW, users who are hosted on other POAs (Post Office Agents). When does the user finally decide to give up if unable to get this information.

Evolution triggers off a free/busy request, while creating meetings (necessary) and when you double click an existing meeting item to read it (avoidable). This can be made more efficient by turning off f/b except during creation time. Alternatively, f/b search could be made a user-triggered activity, available even when one is not creating a meeting.

Addressbook operations

Evolution/User:sush Measure the time taken for performing various addressbook operations. Evolution/AddrBook_perf

Measuring interactive responses

Evolution/User:BenM: The best way to measure something like this would be to set up an automated test suite that measures what the human sees as response time: when the new UI pops up. For example, in the case of switching folders, the folder has been switched when the first screenful of messages pop up on the screen. There is also a qualitative aspect to measuring interactive response: does it feel like it is lagging, etc. This can help us look at what areas to tackle first. Also, timers could be inserted into the code to gather statistics about the length of operations. These could have little enough overhead that heavy email users (this means you Nat ;-) could try out the code for daily use. We could then get the data back and see which operations are the most frequent and how long they take.

Once performance problem areas are found, there are a few ways to look into the problem. For things that are computational, a tool such as oprofile can help. For other areas that involve round trips to the server, debugging helpers could be inserted to show how we are handling round trips.

Evolution startup time

This is both how long it takes to get to the mailer and also how long it takes for the first load of, eg, the address book.

IMAP Performance

As NotZed mentioned on the list, pipelining might not actually improve performance very much because it'd be hard to take advantage of it from the front-end.

Evolution/User:Notzed An alternative which may work nicely is to move to a different implementation model, which works on a locally synchronised folder, rather than working on the remote folder. Then the code only needs to implement a folder-synchronisation algorithm which can very easily be pipelined for maxiumum throughput. If the work is broken into fairly small chunks and a priority scheme layered on top, it should also improve interactive response. The main issue with this is that each client then needs a full copy of the remote mailbox, which may not be ideal in multi-user situations.

Fetching New Mail

Incorporating new messages off your POP server can be very slow. We need to profile this and find out the cause. Theories include:

Task Area

Task Description

Importance

Difficulty

Owner

Status

Additional information

Performance

Profile mail incorporation

High

Medium

Unclaimed

N/A

EDS Performance

Task Area

Task Description

Importance

Difficulty

Owner

Status

Additional information

Performance

Build a sample program that adds 10,000 people to the addressbook and 10,000 items to the calendar and then performs timed operations on them

High

Easy

Thanika

Not started

Bug Fixing

Automated Test Suite

Evolution currently has no automated test suite; at the time Evolution was developed, there were no automated test suites for UI testing of Linux desktop applications. Now, thanks to the atk ccessibility infrastructure, tools like LDTP are beginning to emerge.

We should choose one of these tools and build out a complete UI test suite for Evolution.

In addition to UI testing, we will want complete unit tests for all the Evolution components; at minimum we will need unit tests for all the EDS APIs. Unit tests for other Evo components can be added as well. There are already unit tests for Camel and for GtkHtml. There's also stress test for GtkHTML.

Task Area

Task Description

Importance

Difficulty

Owner

Status

Additional information

Quality

Create unit tests for EDS addressbook

High

Easy

Raj

Started

Installed and ran a few testcases with CUnit. A generic framework for EDS addressbook testing should be now worked out.

Quality

Create unit tests for EDS calendar

High

Easy

Raj

Started

Installed and ran a few testcases with CUnit. A generic framework for EDS calendar testing should be now worked out.

Quality

Create GUI testing environment for Evolution using LDTP. We will need a way of starting with a predictable data set and configuration.

High

Easy

Thanika

Not started

Quality

Create automated GUI tests for mail.

High

Easy

Thanika

Started

Evolution/GUI-Auto-Mail

Quality

Create automated GUI tests for calendar.

High

Easy

Thanika

Started

Evolution/GUI-Auto-Cal

Quality

Create automated GUI tests for addressbook.

High

Easy

Thanika

Started

Evolution/GUI-Auto-contacts

Quality

Build automated test harness that can run all tests and generate a report

High

Medium

Thanika

Not started

Quality

Hook automated test harness into a continuous-run tinderbox

High

Easy

Thanika

Not started

Bug Areas

The Evolution team will have a new practice of tagging bugs in bugzilla with keywords marking a particular "bug area." Andre Klapper has already been busily adding keywords like IMAP, POP, i18n, printing and UI to the Evolution bugs.

These keywords will make it easier for Evolution developers to take on whole areas at a time.

Evolution/User:Andre: Well, haven't really been working on IMAP and POP keywords, but also on the keywords vfolders, filters, perf, security. Generally, the huge number of keywords should be reduced to a fairly usable amount to motivate people that report bugs to also add keywords (has to be discussed after moving to bugzilla.gnome.org in my opinion).

i18n

We should solve the outstanding i18n bugs at the beginning of the cycle, rather than continually pushing them back. We should also solve the intltool whitespace issue (doesn't preserve it iirc) that prevents us from using it on e-error files. We should also do a string audit looking for fuzzy matches across components in order to try and reduce the number of just-a-little-bit-off strings. Evolution/User:notzed AFAIK the intltool issue was fixed. The e-plugin skeleton example posted to the blog uses intltool for its e-error i18n.

User Interface

Menu items are not logically ordered in many places, some items are too prominent and others are not prominent enough. It is time to fix them.

Evolution/User:Andre: I have removed the list of menu/toolbar related bugs, since there were many bugs missing and querying bugzilla itself is much more up to date.

(Shouldn't we have a keyword for all of these?)

Evolution/User:Andre: I have set up meta tracking bugs about keyboard shortcuts and key combinations and a meta tracking bug about menu items rewrite and reordering. Please refer to them.

Rodney Dawes and Ben Kahn produced a new menu structure proposal during the 2.2 cycle, but there wasn't time to implement it and give it user testing before release. You can find their proposal here:

The context menu changes did make it into 2.2, but the other changes didn't. These need to be implemented and tested on actual users, very early in the 2.4 cycle, so there is time to make changes before the release.

Task Area

Task Description

Importance

Difficulty

Owner

Status

Additional information

User Interface

Complete proposal for new menus and toolbars

High

Hard

Unclaimed

N/A

User Interface

Implement proposal

High

Medium

Unclaimed

N/A

User Interface

Perform user testing

High

Medium

Unclaimed

N/A

User Interface

Gather community feedback

High

Medium

Unclaimed

N/A

HIG Compliance

In various areas Evolution is not compatible with the GNOME HIG. This is in part because much of Evolution was developed before the HIG was even a twinkle in GNOME's eye.

But it is time to take a good look at Evolution's UI and bring it into better conformity with the rest of GNOME, and to better internal consistency. And, as the largest GNOME application, Evolution hackers might have some ideas for improving the HIG itself.

We will be consolidating all HIG issues in bugzilla under the 'hig' keyword, and we'd love people to help filing and fixing these issues.

Error Messages

Keyboard Navigation

Calendar UI Refresh

There are two current custom calendar view widgets, the "day view" which does day/work week views and the "week view" which handles the week and month views. Both are canvas based widgets that use e-text for inline editing, historicalling this was to do flicker free operations under gtk 1.2. There is a lot of redundant code in these widgets and they are difficult to make a11y and RTL compliant. Neither view supports multiple selection of events and the week view does not support drag and drop of events properly.

Other Stock and Canvas Based Widgets

In general, the more stock gtk+ widgets the better. Stock widgets reduce the amount of work for RTL languages and accessibility, and handle IM input automatically. This is also a clear win in terms of code maintenance.

ETable and GtkTreeView

Replacing ETable with GtkTreeView brings us in line with other GNOME applications, fixes issues with RTL and a11y support, removes canvas based code and removes an etable/treeview behavioural inconsistencies.

** Evolution/User:BenM: do you have bug #'s? *** Evolution/User:Notzed It was based on an experimental branch of evolution, the maintainers are aware of the issues.

ECalendar and GtkCalendar

We have our own canvas based mini calendar what is missing in GtkCalendar and fix it so we can get rid of our own canvas based one.

EMiniCard/EMiniCardView

There is a branch in CVS written by toshok makes the mini card view to not use the canvas.

Multiple Alarms

Sometimes the user comes back to Evolution after being away for a while, and there are many pending appointment alarms. Evolution pops up one dialog per alarm, which can result in a lot of dialogs and a lot of clicking to get rid of them.

Task Area

Task Description

Importance

Difficulty

Owner

Status

Additional information

User Interface

Create new multi-alarm dialog

Medium

Medium

Evolution/pvanhoof

Finished and available as patch

Bug #73648

Mobile Users

Evolution can be very noisy for people who use laptops or otherwise have very intermittent connections. Dialogs pop up frequently.

A new way of notifying users of lost connections should be devised.

Screen Resolution

[http://bugzilla.ximian.com/show_bug.cgi?id=67787 67787 - Make Evolution usable at 800x600] (added by Evolution/DaveMalcolm; is this a priority?)

Developer Platform

EPlugin Hooks

We want to add more EPlugin hooks, to allow plugin authors to do more. Here's a list of hooks we want to add in 2.4:

Task Area

Task Description

Importance

Difficulty

Owner

Status

Additional information

Platform

Make antispam a plugin so that people can plug in other spam filtering engines

High

Medium

Partha

Not started

See bug 69098.; Notzed may need to give an initial design

Platform

Add an Expunge event

Medium

Easy

Partha

Not started

EPlugin Platform

We should set the goal of having plugins buildable in external, independent modules. This would require proper cleanup and installation of various headers and APIs.

API/ABI compatibility

We should be stricter about api stability in e-d-s and gtkhtml.

Evolution Sharp support for the calendar

Task Area

Task Description

Importance

Difficulty

Owner

Status

Additional information

Platform

Bind EDS calendar APIs in C#

High

Hard

Harish

Not started

Harish to present a proposal by April End

Joe Shaw writes: :The calendar APIs leak out ical data structures which don't follow any sane coding convention as far as I can tell. This really throws off the Gtk# API generator. We could maybe bind those APIs manually, or write a helper library. It's been quite a while since I took a look at the issues and so I forget them exactly, but right now evolution-sharp only binds the addressbook APIs. We've gotten around this by loading the calendars directly from ics files in .evolution. Obviously this means we're missing remote calendars.

Logging Data Changes

Joe Shaw writes:

Debugging Tools

We have a bunch of debugging tools throughout evolution, including multiple DEBUG environment variables, g_log usage, SIGUSR2 in e-d-s if turned on, the e-d-s logging interface that contains its own log handler, etc. We have basic documentation for these at debugging but we should ensure we are using these tools where appropriate.

Evolution/User:jpr If Glog goes into glib it could be a possibility.

Memory fragmentation visualizer

Evolution/User:notzed has written a memory fragmentation visualizer

File descriptor debugger

Evolution/User:notzed has written a file descriptor debugger

Adding support for googles coredumper

Evolution/pvanhoof wants to add support for [http://goog-coredumper.sourceforge.net/ coredumper] to configure.in (--with-coredumper). Coredumper makes it possible to create a snapshot coredump without the need for letting the application crash. On IRC Evolution/rodrigo and Evolution/jpr noted that this would be indeed a good idea. Evolution/jpr proposed to let a SIGUSR2 handler write a coredump.

Update: You can checkout a patch that adds support for google coredumper here

Features for 2.4

CalDAV Support

We want to support CalDAV in 2.4, so Evolution can talk to Hula and other CalDAV-supporting servers.

Task Area

Task Description

Importance

Difficulty

Owner

Status

Additional information

CalDAV

Write a CalDAV backend for the Evolution calendar

High

Hard

gicmo

N/A

Web Calendar Support

We want to support web calendars that need SSL and authentication, as well as allow the ability to store the calendar to a WebDAV enabled server.

Task Area

Task Description

Importance

Difficulty

Owner

Status

Additional information

Web Calendar

Ensure SSL support is easily available for web calendars

High

Hard

unclaimed

N/A

Web Calendar

Support web calendars that need authentication

High

Hard

unclaimed

N/A

Web Calendar

Ability to store a web calendar on a WebDAV server

High

Hard

unclaimed

N/A

== Delegate Support == We would like to add support for meeting request delegation

Task Area

Task Description

Importance

Difficulty

Owner

Status

Additional information

Calendar

Delegate a meeting request

High

Medium

chen

Completed

Calendar

Ability to reply back to the Delegate Request

High

Medium

chen

Completed

Functionalities involved in delegation are

 : * The User should be able to send a delegate request to a non-attendee: * The User should not be able to change the contents of the meeting while delegating: * The User should be able to see the freebusy information of the delegatee: * The delegatee should be able to reply back to the organizer and optionally to the Delegator: * The Organizer should be able to decide whether the new attendee should be added

Tasks in Calendar

Some of the tasks to do for 2.4

Task Area

Task Description

Importance

Difficulty

Owner

Status

Additional information

Calendar

Progress status indication while retrieving the calendar items from the server

High

Medium

chen

Not started

Meeting Editor

Disabling event editor UI at the recipient's end for meetings

High

Easy

viren

Not started

|Calendar

Reducing the bonobo traffic

High

Easy

chen

Not started

|Calendar

Optimizations of Attachment retrievals

High

Medium

chen

Not started

Details for the above mentioned tasks are given below

Address book Features

Evolution/User:sush List of address book features and important defect fixes that should go into 2.4 Evolution/Evo2.4/Address_book_tasks

Exchange connector features

Support for folder operations and Exchange specific operations in all the components:

Evolution/User:sush Description:

The main usability issue with the Exchange connector, is folder operations and some exchange specific operations are supported only at Exchange component.

We need to support all these from other components and get rid of Exchange button, once all the operations are supported elsewhere.

This needs support for folder hierarchy in all the components.

Sub Tasks

Evolution/User:sush sub-tasks and break down of each task. ExchangeWBS

Notes

Evolution/User:sush Related defects in Bugzilla:

267994, 231968, 259456, 257367, 262440, 266091, 262442, 273018, 307175

Groupwise Connector

Task Area

Task Description

Importance

Difficulty

Owner

Status

Additional information

Groupwise Plugins

Lump the GW plugins into a cohesive singleton

Medium

Medium

Unclaimed

Not started

New Features in Groupwise Connector

There are a couple of new things that the Groupwise Connector would feature for 2.4

Task Area

Task Description

Importance

Difficulty

Owner

Status

Additional information

Junk Folder

Support Junk folder the way Groupwise client way

High

Medium

partha

Not started

Offline support

High

Medium

partha/shreyas

started

Proxy support

Proxy user support in Evolution

High

High

sankar

started

Few details regarding each of the above mentioned features

Apart from this, fix critical bugs.

Beagle requirements for Evolution 2.4

Following are some of the Beagle Team requests for Evolution 2.4.

Task Area

Task Description

Importance

Difficulty

Owner

Status

Additional information

Seekable summary

Seekable summary format for mail

High

|Varadhan

Not started

Textual representation of Calendar items

High

|Varadhan

Not started

Offline caching

Default to offline caching

High

Medium

|Varadhan

Not started

Contact/Appointment viewing

Easy contact/appointment viewing

High

|Varadhan

Not started

Be able to reply, forward, delete, mark as spam

High

High

|Varadhan

Not started

Few details regarding each of the above mentioned features

;Seekable summary format for mail:Beagle expects sort of hashed-summary entries which can point to mails or a subset of mails which are fairly easy and less time-consuming to walk through and find. Evolution keeps the entire mail summaries in memory which Beagle doesn't want to.

The mail-remote plugin exposes CORBA interface. So, the client has to just create the stubs from the idl file and access the object. A possible client implementation for Beagle would be 1) Writing a "glue" code in C which accesses this object and provides a nice cleaner API through evo#. 2) Beagle using this evo# API determines the availability of object and behaves accordingly. (Hope Joe can fill this with more details).

:(Expiry issues can probably be dealt in Beagle).

"contacts:///?source-uid=<value>&contact-uid=<value>". All "value"s should be properly encoded like that of a normal URL.


2024-10-23 10:58