AbiWord 2.2 Tentative Roadmap

Introduction

With all of our diligence, AbiWord 2.0 is bound to be a huge success. With better 2.5 million downloads within the past year and a half, AbiWord is a huge project, and a large force in both the free and non-free software communities. In short, we're a viable contender. Our goal with 2.2 is to improve upon our past successes. Our goal is to not fall into complacency. Our goal is to not fall into obsolescence.

It is my opinion that we can best achieve these goals through a rather speedy 2.2 release. This release should happen about 6-9 months after the 2.0 release. This release should be concentrated on bug fixes. This release should be concerned with feature polish. Above all, this release should be a strengthening of our architecture as a assignedle. Through improving our internals and organization, we can offer a highly polished, feature rich product.

Some people have been lamenting the lack of an "AbiSuite" as promised by Sourcegear Corporation, 5 years ago. I, however, contend that we do have an AbiSuite. We have brought to market a premier word processor. And a thesaurus. And the Enchant spell checking library. And wv. And libgsf. And ots. And Uspell. And libwpd. And now, we've got the beginnings of a presentation program - Criawips. We've done our job, and then some. We've built a rich family of applications and libraries, and built them well. Let us build upon these successes and platforms, and in doing so, bring the best word processor to the market.

Table of Contents


Import/Export

Obviously improve our existing importers and exporters. This is especially true for the OpenOffice and RTF filters.

0%??

Add support for more filters. This is especially important for the MS Office 11 XML format, as it stands to be a major player in the market.

0%??

Better clipboard support. We want every imp/exp to be clipboard capable.

0%??

Honesty parameter. Basically, a rating of how true the imported format represents/translates to ABW

50%. Architecture complete; need to assign weights to all imps/exps.Dom/FJF

Specify a list of mime types during construction, query them later

0%??

Pass arguments to imp/exp using some mechanism (CSS like, maybe?)

50%. Architecture complete; need to get HTML, TXT, and others to define and use said paramsDom/FJF

Use LibGSF exclusively in all Imp/Exp, so that all files and transports look equal; so that we handle more transport types, and so that we can handle MSWord, OpenOffice, and WordPerfect files on all of our platforms. Transport types include: Memory, Disk IO, VFS, WebDav, IStreams, Bonobo Components, ...

0%??

Clipboard

See also: Import/Export

  

Edit->Paste Special, and then choose one of the available formats

0%??

Remove Edit->Paste Unformatted after Paste Special is implemented

0%??

Order clipboard formats when pasting according to honesty (unless otherwise overridden by Paste Special)

0%??

More sophisticated (and more XP) clipboard handling, including a better API for retrieving data types, and a way to lazy-populate clipboard contents (while copying/cutting)

0%??

Fault tolerant clipboard. As we support more file formats (like HTML), the odds of our encountering a problem while pasting go up. Ideally, we'd like to just suck down the next available format and try again.

0%??

Enable multi doc-range clipboard - mainly for table columns and non-contiguous selections

0%??

Drag & Drop

We'll need the things above from Clipboard and Import/Export. We'll want to be able to drag+drop any format that we can import. We'll want to use GSF so that we don't have to hit a temporary file here. This will essentially be 100% complete when the GSF and mime work above is done.

0%Dom

Spell Checking

Use Enchant exclusively on all platforms. Link here.

70%. Enchant works, is feature complete, API/ABI stable, and runs on Unix and Win32. AbiWord spellechecker class is written. Needs more porting and testing.Dom

Piece Table/Formatter

Clean up all known bugs

0%??

Correct speed regressions

50%. Importer speeds have been increased vastly. Changing formatting has seen a noticable speedup.Various people

Enable Paragraph borders and shading, stealing code from Gnumeric where possible

30%. The basic groundwork is in place.Martin

Images as backgrounds for things like [cells, tables, paragraphs, sections]

50%. Cells and pages can have images as backgrounds already, although not totally bugfree.Martin

Text frames

50%. Text frames can be inserted, moved and resized. No textflow around them yet, and not all structures are allowed in text framesMartin

Bugs/Polish

Clean up mess left behind by 2.0

0%??

Feature polish; continued improvement and development

0%.??

Guts

Remove all encoding-less strings, except for input/output translation.

0%??

Deprecate UT_String. Replace with UTF8 strings.

0%??

All internal encodings are UCS4 or UTF8

0%??

Refactor ev, xap, util as necessary - especially menu and toolbar code (wrt icons)

30%. Toolbars are not hardcoded anymore.

Cut down on code duplication

0%??

Remove duplicate map/hash classes.

0%??

Make things easier for Criawips to use

0%??

User documentation

Further improvement; bring all dialog documentation up to 100% coverage

0%??

Better integration with native help browsers

0%??

Plugins

Come up with a sane C API/ABI for a lot of this stuff. Incrementally make plugins use it. Plan on using a lot of opaque structures and C "namespaces". Mainly want to abstract away the more useful PD_Document, FV_View, XAP_App, and XAP_Frame bits

30%. Work has just been started in this area.Dom

Enable on-demand loading of plugins. - Possibly look at the framework Gnumeric is using.

0%??

Scripting

Use above C API/ABI to expose ourselves to the outside world. Build C API as needed, not all at once. Project: AbiCapi

0%??

PERL, Python, Scheme, ... using SWIG. This will be complete once the AbiCapi work has been done.

0%??

Frontend - All

Re-organize how menu and toolbar icons are done

50%. Work is done on removing icons from the code.Hubert Figuiere

Frontend - Win32

Unicows/NT UCS2 string support, including keyboard/input and output (i.e. dialogs)

0%??

Frontend - UNIX

Finish removing the last of the GTK+ deprecated stuff

0%??

More HIG work

30%. More dialogs have been moved to glade.Marc

Use LibEGG stuff where applicable (Menus, Toolbars, File dialog)

0%??

Icon theme integration (export our toolbar icons' names)

0%??

Comply with the recent files Freedesktop.org standard

0%??

Frontend - MacOSX

Will have a working OSX port by 2.2

50%. First unstable binary release won't be too far off.??

Frontend - QNX

Maintain feature parity with Win32 and UNIX ports

0%??

Frontend - BEOS

Unfortunately, a lost cause. Unless Jun makes progress in leaps-and-bounds, remove this code.

0%??

CVS

Remove dead and unused modules

0%??

Restructure how plugins, docu, abidistfiles, etc... are done

0%??

Remove screenshots and other worthless binary garbage from CVS

0%??

Under Consideraion