Archive - May 17, 2006

Date

Externalized dependencies

Comment on incremental builds

Principles:

  • Retain as much of the formatted output as possible from build to build.
  • Maintain an individual build stream for each topic from souce to output. Where merge is necessary as during book processing, defer merge as late as possible.
  • Save every stage of the build stream as an intermediate file so that the build can rebuild as late in the build stream as possible.
  • Separate the aspects of building a topic that are specific to each map. Also separate the aspect of building a topic that is independent of any map.
  • Defer conditional processing as late as possible to minimize rework prior to filtering.
  • Use timestamps and deltas to determine when to rebuild.

While a full rebuild with these principles will take longer, an incremental rebuild should take much less time. For instance, moving conditional processing as late as possible means that we might process files that don't need to be processed for a specific build target. If we are building multiple targets, however, there is a considerable savings to building the file once.

Read more

XML.org Focus Areas: BPEL | DITA | ebXML | IDtrust | OpenDocument | SAML | UBL | UDDI
OASIS sites: OASIS | Cover Pages | XML.org | AMQP | CGM Open | eGov | Emergency | IDtrust | LegalXML | Open CSA | OSLC | WS-I