- I want to become an AbiWord developer.  Where should I start?
  - No, no, I want to really dig in & do something meaty.  Where do I start? 
  - Wow, that's just too much choice.  Can't you just pick something for me?
  - OK, now I know what I want to work on.  How do I get started?
  - Who should I ask about a given section of the code? 
  - Hey, mind giving me some remedial programming advice while you're at it? 
Enjoy!
Paul
======================
FAQ for new developers
======================
I want to become an AbiWord developer.  Where should I start?
-------------------------------------------------------------
The usual way for most people to start is to grab a copy of the source code, 
troll through Bugzilla or the feature roadmap, pick something they find 
interesting, and just dive right in.  
No, no, I want to really dig in & do something meaty.  Where do I start? 
------------------------------------------------------------------------
What kind of coding background do you have (or want to learn)?  I'm figuring
you'd want to dig deep into a specific portion of the codebase, but not sure 
which'd be most appealing to you out of the following set:
  - dialogs
  - graphics file formats
  - document file formats
  - pixel-twiddling GUI work
  - nitty-gritty text formatting and layout
If you like doing dialogs, we've got a bunch of unimplemented ones, many of 
which simply replicate existing toolbar or ruler functionality.  From there, 
you could move on to implementing core functionality which existing dialogs 
expose, but don't support.  (For example, the insert break dialog handles 
page, column, and two kinds of section breaks, but we need a bit of 
formatter work to support even/odd page section breaks.)
If you like messing with graphics file formats, we need importers to convert 
various raster image formats (JPEG, GIF, BMP, etc.) to PNG.  From there, you 
could move on to dealing with vector graphics, building on Matt Kimball's 
preliminary work with SVG and eventually adding WMF support.  
Ditto for document file formats.  Right now, we have pretty functional Word 
and RTF importers which are being actively maintained, plus a minimal RTF 
exporter which needs a maintainer.  Minor tasks would be to help the current 
maintainers flesh those out some more.  More significant projects would be 
to tackle a new importer (perhaps WordPerfect) or exporter (Word 97, 
WordPerfect, etc.). 
If you're a pixel-twiddling user experience kind of person, we need someone 
to add code to toggle various UI elements on and off (toolbars, rulers, 
status bars) and add more context-specific menus (say, for images).  With 
more work, the rulers could be enhanced to allow you to change the document 
margins.  Also, our page layout view doesn't currently support side-by-side 
pages.  Stuff like that.  
Finally, if you want to really get into the guts of the word processor, we 
need to do more complex formatting effects.  You could start with something 
simpler at the character level (say subscripts and superscripts), move on to 
alignment stuff (tabs other than left-aligned) or perhaps full paragraph 
justification.  From there you could move on to more complex stuff, like 
enhancing our existing basic support for styles or headers and footers, none 
of which currently have any UI support for editing them.  Beyond that, 
there's lots of stuff still to do, including lists and tables.  
Does that give you enough to pick from?  :-)
Wow, that's just too much choice.  Can't you just pick something for me?
-----------------------------------------------------------------------
Sure.  Every week we post a new "Project of the Week" (POW) to the 
abiword-dev mailing list, giving a fairly detailed description of one 
high-priority task we need someone to tackle.  
  http://www.abisource.com/mailinglists/abiword-dev/99/September/0097.html
If this week's POW doesn't sound interesting, wait a week.  Or, better yet, 
scan backwards through the mailing list archives to see if there are any old 
POWs which didn't get claimed.  
OK, now I know what I want to work on.  How do I get started?
------------------------------------------------------------
Dive in, start looking at the code, and ask questions when you get stuck.  
Folks on the developer mailing list try hard to make sure that willing 
coders get their questions answered in a timely fashion.  
Who should I ask about a given section of the code? 
--------------------------------------------------
Of course you can always send specific questions to the abiword-dev list, 
but if you want to figure this out yourself, you have a variety of possible 
cues, including:
  - the CREDITS file, 
  - past traffic on the list, and 
  - Bonsai.
I'm particularly fond of the last tool, because when browsing a particular 
file or change, you can determine who added a particular line of code and 
why.  (If you've never used cvsblame, it's really worth giving it a try.)
Hey, mind giving me some remedial programming advice while you're at it? 
-----------------------------------------------------------------------
Probably, so be sure to ask nicely.  :-)