Document basic "know-how" used when developing DOLFIN

Registered by Marie Rognes

DOLFIN development requires some "know-how" that basically only can be acquired by asking an experienced DOLFIN developer. It would be good to document some of the basic information on the web pages, for instance answering
the following common questions:

* dolfin/*/dolfin_*.h -- what is this? Why 'the order is important'?
* How is the swig interface generated, which files should be touched/not touched?
* The infamous dolfin/swig/generate.py -- does what, when to run?
* Notes on design pattern patterns used, for instance in dolfin/la -- how to register new la factories/classes?

This could make it easier for new developers to get started. This info can just be placed in a separate .rst file and linked to under contributing/

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

AL: Agree

Fredrik V: I also suggest a "How to set up your FEniCS/Dolfin development environment", including package dependencies, environment variables that has to be set when building Dolfin, etc. There's not much to it, but it would still be nice to have a short howto.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.