8. cschem implementation - ripple annotation 
{imp8:0}
The back annotation is an optional feature. Cschem supports it, some
of the 3rd party software support it and the user may choose to use it.
The user is also free to choose the traditional, "tell me what I need
to change on the schematics, then I'll forward annotate" method.
{imp8:1}
The ripple annotation is just clever use of the back annotation plus some
netpatch management. It is probably a good idea to put the schematics,
the project file and all patches in the same version control system.
{imp8:2}
With such a setup a current snapshot of the VCS and a run of cschem
core on it, e.g. as a simple 'make' or 'make pcb' or 'make spice' will
produce up-to-date forward annotation packs at any member of the team.
{imp8:3}
The advantages of ripple annotations are:
	-  It lets a non-schematics-editor team member to update the project and
	     the changes may reach other team members without first having to wait
	     for a schematics update
	
-  Provided sufficient 3rd party tool support, every member of the team
	     can make changes to the project, using their tools, from their point
	     of view, without having to learn the cschem GUI or even cschem concepts.
	     For example a PCB designer may agree with the schematics designer that
	     pins can be swapped arbitrarily on a connector; the PCB designer can
	     do this using e.g. pcb-rnd, the wiring diagrams, docs and simulation
	     can be updated even if the schematics editor is on holiday.
	
-  Since changes are collected as an ordered netpatch set, it is always
	     clear if there are outstanding changes. This may make project management
	     easier, there won't be forgotten change requests.
	
-  The netpatch is computer readable - this minimizes the chance
	     of misunderstanding a change request.
	
-  For special projects, like a footprint converter board, it is possible
	     that the PCB happens first, and it is back-annotated against an empty
	     abstract model, then the schematics is created using the netpatch.
{imp8:4}
In theory, as an extreme example, one may even use the system without
schematics: build a smallish simulation by hand, add the right footprint
and pinout attributes, back annotate it against an empty abstract model then
forward annotate to PCB layout. This setup bypasses 90% of cschem and (ab)uses
cschem core as a tool for collecting netpatches and converting them to
different netlist formats.