Calendar:Deprecated:NewRoadmap: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
 
(5 intermediate revisions by 2 users not shown)
Line 4: Line 4:
Much work has been done to both define and synchronize the roadmaps of Sunbird and Lightning. This work is by no means complete, and given the evolving nature of software, will likely never be. Regardless, in order to help drive both projects, this tentative and historical roadmap has been created.
Much work has been done to both define and synchronize the roadmaps of Sunbird and Lightning. This work is by no means complete, and given the evolving nature of software, will likely never be. Regardless, in order to help drive both projects, this tentative and historical roadmap has been created.


For the fullest understanding of this document, and some context as to why some features are slated for which timeframe, it is useful to review the defined [[Calendar:Task_Feature_Matrix|target users and their use cases]].
For the fullest understanding of this document, and some context as to why some features are slated for which timeframe, it is useful to review the defined [[Calendar:Task_Feature_Matrix|target users and their use cases]], as well as our [[Calendar:Past_Releases|previous releases]].


=Disclaimers=
="Where's the 0.n meta bug?"=
Any "Calendar Extension Roadmap" documents that may continue to be floating around are deprecated and should be treated as such. Long ago, it was determined that in order to improve stability and flexibility, much of the original storage codebase would need to be rewritten. In addition, the standalone calendar app Sunbird gained popularity. However, being one of the first applications based on the then nascent Toolkit API, this also skewed any existing roadmaps somewhat.
'''Note that we have transitioned to using blocking flags to keep track of release blockers, rather than tracking or meta bugs.''' See the document on [[Calendar:For_Everyone:Blocking_Flags|Blocking Flags]] for more details.


=A note or two about version numbers=
==Release Map==
Prior to the release of Sunbird 0.3, various alpha, beta, and release candidate (RC) releases were used. It was decided that such formality was inappropriate for a pre-1.0 product, kept us in an almost constant code freeze, and stymied further development. Sunbird 0.3a2 is the last release with such filigree. Until we reach 1.0, future releases of both Lightning and Sunbird will use 0.n version numbers only. No alphas or betas will be released.
One of our goals is to incorporate user feedback as much as possible. Nightly builds, however, might have an unclear status regarding their functionality and thus are not useful for a broader audience. Instead we want to release milestone builds every 3 months which will cover an appropriate part of the road map. Those milestone builds will have gone through QA to make sure that they are suited to generate useful feedback.
In order to reach a good balance between being in development-mode and being in release-mode we're heading towards Version 1.0 within 4 milestones.


In addition, to help alleviate confusion regarding the equivalent feature sets of Lightning and Sunbird, it was decided to skip Lightning version 0.2. Lightning's next release will be 0.3, to coincide with the feature set of Sunbird 0.3.
{| border="1" align="center"
|+ Schedule for Sunbird and Lightning
|-
!Milestone!!Version!!Quality!!Goal!!Release date
|- align="center"
|M1||0.3||Early Access||Align Sunbird and Lightning, beginning of UI face lift, iTIP/iMIP||August/September 2006
|- align="center"
|M2||0.5||Beta||Most features should be visible||November/December 2006
|- align="center"
|M3||0.9||Beta2||Incorporate beta feedback, shift uncomplete features to 1.x||February/March 2007
|- align="center"
|M4||1.0||Final||Bugfixing only||May 2007
|-
|}


=Historical Releases=
==Lightning and Sunbird 0.3==
The roadmaps for existing releases are provided here for context and historical purposes only.
It was decided to synchronize Lightning and Sunbird in terms of bug fixes, feature set (where applicable), version number, and release timing.  
 
==Sunbird 0.2==
Sunbird 0.2 still used the original underlying code from OEOne which stored events and tasks as .ics files on the local hard drive (or remote WebDAV server). It relied on libxpical to provide an XPCOM wrapper around the libical library. While much work went in to creating a useable Toolkit-based app, it was clear that future development would require refactoring of the backend storage mechanisms, both for stability and for flexibility in supporting new types of calendar "stores" such as CalDAV.
 
==Sunbird 0.3a1==
Released 2005-11-04
 
This was the first release using the refactored backend storage. All data is stored in a SQLite database which is accessed via a unified storage API, and uses custom providers to translate between specific protocols (.ics, CalDAV, etc.) and our unified storage API.


Release Goals:
The goal of the roadmap is to stay high-level enough to provide adequate direction, but still stay low-level enough to provide relevance. The goal ''is not'' to list specific bugs to be fixed before release. Please use [[Calendar:For_Everyone:Blocking_Flags|blocking flags]] for that.
* Fix regressions from the backend API rewrite, in a way that Sunbird gets usable again.
* Not all bugs need to be fixed in the cleanest way.
* Continue to use old (Sunbird 0.2/non-XBL) views and UI.
* '''Intent is to get testing of the providers, and to be able to close old bugs that are fixed by the new ics provider or the new libical.'''


'''Notes for Sunbird 0.3a1:'''
===Key points===
This release has old views and stuff. Those views are fixed to a point where the events show up, but there might be glitches in the display. This release was not meant to test the views, but to test the calendar backend code. Please don't file bugs on misaligned event boxes, wrong colours, or whatever else looks wrong. Please do file bugs on events not showing up, events showing up with wrong times, crashes, hangs, errors etc.
We '''must''' make sure that Sunbird 0.3 is a linear step forward from 0.2. This is a challenge that the Sunbird 0.3 alphas have not yet met. Achieving this will not only decrease the number of Sunbird 0.2 support problems, but will also help encourage migration from the deprecated Calendar XPI to Lightning, since the parallels will be clearer.


==Lightning 0.1==
Since the average user is generally not interested in the specifics of which bug numbers got fixed this time around, we should have some tangible features we can point to that justify the release.
Released 2006-03-14


This was the first release of Lightning, the integrated calendar extension for Thunderbird. Like Sunbird 0.3a1 before it, Lightning used the new backend storage. Bug fixes for issues found in Sunbird 0.3a1's new backend storage were also included. Lightning also introduced views (Day, Week, Multiweek, Month Views) written in XBL rather than the XUL-based ones used in all previous Sunbird releases, and dating back to OEOne. Since the XBL views can tie more directly to the data, significantly less code is required to keep what is displayed to the user in sync with what is in the database.
The 0.3 alphas received much user praise due to the stability provided by the new storage, and the increased speed of the XBL-based views.  


Release Goals:
This time around we can also point to  
* XBL views
*Improved speed (snappiness™)
* Localization support
*Restructured recurrence
* No known dataloss bugs when editing ICS files exclusively with Lightning
*Better l10n story (language packs)
* Basically functionally usable as dogfood with local database & ICS calendars
* Project Page: [[Calendar:Lightning:0.1]]
* Release Notes: [[Calendar:Lightning:0.1:Release Notes]]
 
==Sunbird 0.3a2==
Released 2006-05-11
 
This release switched Sunbird from the original (Sunbird 0.2) XUL-based views to the XBL ones originally released in Lightning. Soon after we began to see customizations of views that would have been previously impractical to implement, such as ones that with one button click rotate 90 degrees (day on the x-axis, and hours on the y-axis).
 
Release Goals:
* Switch to new XBL views.
* Sync the UI as much as possible with Lightning 0.1.
* '''Intent is to test the new views and associated UI.'''
*[[Calendar:0.3a2_Task_List|Tentative Goals (outdated)]]
 
'''Notes for Sunbird0.3a2:'''
These views are what we plan to use moving forward. Now is the time to file bugs on misaligned event boxes, wrong colours, or whatever else looks wrong.
 
=Future Releases=
 
==Lightning and Sunbird 0.3==
Tracking bug: [https://bugzilla.mozilla.org/show_bug.cgi?id=335745 335745]


As mentioned earlier, it was decided to synchronize Lightning and Sunbird in terms of bug fixes, feature set (where applicable), version number, and release timing.
=== Common goals ===
*No known dataloss with ICS from *any* source (preserve X-Comps/X-Props, handle foreign timezones)
*Bug fixes from previous releases
*Improved task support (recurrence)
*Continue to sync code between Sunbird and Lightning
*Fix/improve CalDAV
*Safety when multiple users edit a calendar (maybe)  


===Sunbird 0.3===
=== Lightning ===
*Feature parity with Sunbird
*Dog-food iTIP/iMIP
*Localization?


Release Goals:
=== Sunbird ===
* Bug fixes for items found in 0.3a2.
* Be a Modern toolkit app (prefs, installer, l10n, etc., but no auto-update yet)
* Move locales into l10n repository. [https://bugzilla.mozilla.org/show_bug.cgi?id=267981 bug 267981]
* Feature Parity with 0.2 (calendar loading, offline use?, printing, multiple selection - "Select All")
* Migrate preference system from xpfe to Toolkit. [https://bugzilla.mozilla.org/show_bug.cgi?id=333923 bug 333923]
* Mac only: Become a Universal Binary [https://bugzilla.mozilla.org/show_bug.cgi?id=339986 bug 339986]
* Release from Gecko 1.8 branch.


Options on the table:
Commentary:
* Installers?
The bits in parens are only met to be examples for clarification.  They are not exhaustive or definitive lists and should not be considered part of the actual roadmap.
* Easily installable language packs?
* Generic branding except for release?


===Lightning 0.3===
Parts of this list seem to be reaching a bit far (offline use, multiple edit safety), but according to the current agreements, we're only going to have a few releases before 1.0, which means we need to front-load a bit more if we're going to have a chance of meeting that.
Release Goals:
* Bug fixes for items found in 0.1
* Obtain "feature parity" where applicable with Sunbird [https://bugzilla.mozilla.org/show_bug.cgi?id=339331 bug 339331]
**printing
**display of calendar colors in the calendar list
**task list details
**ability to hide days off
**ability to hide tasks in views
**clipboard
**exposed preferences (alarms, default event length, *categories*, etc)
**new event start time (Lightning = midnight, Sunbird = current hour, Both are probably wrong in day/week view)


==Lightning and Sunbird - Future Ideas==
==Lightning and Sunbird - Future Ideas==
Line 99: Line 71:
[[Calendar:Task_Feature_Matrix|target users and their use cases]]
[[Calendar:Task_Feature_Matrix|target users and their use cases]]


'''Disclaimer:''' These are entirely ideas. Don't bet the farm on the fact that they're listed here. They may, and some likely will, never actually make it into a shipping product.  
'''Disclaimer:''' These are entirely ideas. Don't bet the farm on the fact that they're listed here. They may, and some likely will, never actually make it into a shipping product. They also are likely too low-level for the actual roadmap, but may encourage thought around future higher-level goals.


* Make Sunbird a child app of XULRunner.
* Make Sunbird a child app of XULRunner.

Latest revision as of 18:04, 26 July 2006

THIS DOCUMENT IS STRICTLY A DRAFT! DO NOT MAKE PLANS BASED ON IT! NO ONE IN THE CALENDAR TEAM OR MOZILLA HAS BLESSED IT! IT IS BUT A FIGMENT OF ONE TROUBLED PERSON'S IMAGINATION!

Introduction

Much work has been done to both define and synchronize the roadmaps of Sunbird and Lightning. This work is by no means complete, and given the evolving nature of software, will likely never be. Regardless, in order to help drive both projects, this tentative and historical roadmap has been created.

For the fullest understanding of this document, and some context as to why some features are slated for which timeframe, it is useful to review the defined target users and their use cases, as well as our previous releases.

"Where's the 0.n meta bug?"

Note that we have transitioned to using blocking flags to keep track of release blockers, rather than tracking or meta bugs. See the document on Blocking Flags for more details.

Release Map

One of our goals is to incorporate user feedback as much as possible. Nightly builds, however, might have an unclear status regarding their functionality and thus are not useful for a broader audience. Instead we want to release milestone builds every 3 months which will cover an appropriate part of the road map. Those milestone builds will have gone through QA to make sure that they are suited to generate useful feedback. In order to reach a good balance between being in development-mode and being in release-mode we're heading towards Version 1.0 within 4 milestones.

Schedule for Sunbird and Lightning
Milestone Version Quality Goal Release date
M1 0.3 Early Access Align Sunbird and Lightning, beginning of UI face lift, iTIP/iMIP August/September 2006
M2 0.5 Beta Most features should be visible November/December 2006
M3 0.9 Beta2 Incorporate beta feedback, shift uncomplete features to 1.x February/March 2007
M4 1.0 Final Bugfixing only May 2007

Lightning and Sunbird 0.3

It was decided to synchronize Lightning and Sunbird in terms of bug fixes, feature set (where applicable), version number, and release timing.

The goal of the roadmap is to stay high-level enough to provide adequate direction, but still stay low-level enough to provide relevance. The goal is not to list specific bugs to be fixed before release. Please use blocking flags for that.

Key points

We must make sure that Sunbird 0.3 is a linear step forward from 0.2. This is a challenge that the Sunbird 0.3 alphas have not yet met. Achieving this will not only decrease the number of Sunbird 0.2 support problems, but will also help encourage migration from the deprecated Calendar XPI to Lightning, since the parallels will be clearer.

Since the average user is generally not interested in the specifics of which bug numbers got fixed this time around, we should have some tangible features we can point to that justify the release.

The 0.3 alphas received much user praise due to the stability provided by the new storage, and the increased speed of the XBL-based views.

This time around we can also point to

  • Improved speed (snappiness™)
  • Restructured recurrence
  • Better l10n story (language packs)

Common goals

  • No known dataloss with ICS from *any* source (preserve X-Comps/X-Props, handle foreign timezones)
  • Bug fixes from previous releases
  • Improved task support (recurrence)
  • Continue to sync code between Sunbird and Lightning
  • Fix/improve CalDAV
  • Safety when multiple users edit a calendar (maybe)

Lightning

  • Feature parity with Sunbird
  • Dog-food iTIP/iMIP
  • Localization?

Sunbird

  • Be a Modern toolkit app (prefs, installer, l10n, etc., but no auto-update yet)
  • Feature Parity with 0.2 (calendar loading, offline use?, printing, multiple selection - "Select All")

Commentary: The bits in parens are only met to be examples for clarification. They are not exhaustive or definitive lists and should not be considered part of the actual roadmap.

Parts of this list seem to be reaching a bit far (offline use, multiple edit safety), but according to the current agreements, we're only going to have a few releases before 1.0, which means we need to front-load a bit more if we're going to have a chance of meeting that.

Lightning and Sunbird - Future Ideas

New features and their order of implementation and release will be mostly driven by the previously defined, and constantly refined target users and their use cases

Disclaimer: These are entirely ideas. Don't bet the farm on the fact that they're listed here. They may, and some likely will, never actually make it into a shipping product. They also are likely too low-level for the actual roadmap, but may encourage thought around future higher-level goals.

  • Make Sunbird a child app of XULRunner.
  • Integration with Mozilla Software Update.
  • Possible view eye candy using Cairo?
  • Ability to consume Google Gdata?
  • Merge Lightning and Sunbird into a single entity that acts appropriate depending on the host app it is running under?
  • Better Thunderbird integration
    • email<->task linkage
    • iMIP support
  • Improved CalDAV support
  • Cached calendar support for offline
  • Device synchronization