Click
here to download the current development source snapshot, or click here
for the current Windows executables.

02/03/09. Added a new command-line switch,
"--combine-plans".

01/31/09.

There is a new command-line switch, "--batch", which causes Do178Builder to simply build the DocBook output files and then exit
without displaying any GUI.

I did not realize it previously, but prior versions would not
build if you have a Unicode build of wxWidgets.
Such Unicode builds are much more common than they used to be—for
example, they are the default on Ubuntu or Mac OS X. The code now
builds correctly, I hope, with all ANSI builds of wxWidgets from 2.4 through 2.8, and
with Unicode builds of wxWidgets
from 2.8.4 onward.

The 'setup_for_cross_compilation' target in the Makefile has
been removed in favor of requiring installation of I'm
Cross! instead, but only if you intend to build Do178Builder.exe directly from
Linux. The Makefile has thus been greatly simplified in the
process.

04/07/08.

There is now a Win32 version of Do178Builder-utility.

Windows executables are now cross-compiled from within my
Linux working environment, so the Windows executables on the download
page should be able to stay current with the development source-code
snapshots in the future, rather than being months or years behind as
they have been up to now. So as you may expect, the Windows
executables on the download page are now up-to-date.

The project Makefile now has a nifty target
('setup_for_cross_compilation') that can set up a Linux box with a
cross-compiler toolchain for creating Windows programs, including
cross-compiled versions of wxWidgets,
libxml2, and PCRE.

04/06/08. Lots of makefile changes that shouldn't affect
anyone, so there's no need to download the new snapshot just on that
basis. The changes all relate to trying to cross-compile for
Windows under Linux, and don't affect any functionality.

04/05/08.

Web: Expanded the discussion of importing
Word data into Do178Builder quite a lot, including
description of a method that gives higher-quality results requiring
less manual tweaking.

Do178Builder:

Was not correctly handling comments embedded within
<docbook>
tags when creating output documents—i.e., situations like
<docbook> ... <!-- ... --> ... </docbook>. This
has now been fixed.

Now tolerates markup such as <?...?> when producing
output files, which previously it didn't handle properly.

Added some additional workarounds for "pernicious mixed
content" in table entries that can occur easily when cutting and
pasted nicely indented XML into a project that's going to produce SGML.

When templates for graphics, tables, or lists are inserted,
they are now nicely indented to show their structure. Whatever
could I have been thinking of not to have this before?

Added a toolbutton to the editor for building the output
documents, so that you don't have to leave the editor to do it.
This is a bigger deal than it sounds like, because whenever you leave
the editor and return to it later, your hierarchy has been collapsed
and it's a pain to navigate back to where you were in the
structure. Now this is unnecessary, so it makes it a lot easier
when you're in a cycle of rapidly making changes and then building the
documents to see what the effect was.

04/02/08. Various changes to Do178Builder itself:

Do178Builder is now
known to build with wxWidgets
2.8. (Previously, wxWidgets
2.6 was the highest version that worked.)

If the --combine-srd-sdd and --DO-254 switches were used in
combination, the combined requirements/design document produced was
being named incorrectly as if it was merely the requirements
document. This has been fixed.

If DocBook-XML markup related to tables or graphics was
added, (specifically, tags of the form <comspec ... /> or
<imagedata ... />), the tags could be corrupted in the output
documents if SGML was targeted. This has been fixed.

"Pernicious mixed content" (specifically, line feeds
occurring within <entry>...</entry> tags in a table will be
automatically removed on output now to account for a limitation in
DocBook parsers.

Some DocBook-XML markup such as <para/> which isn't
acceptable in DocBook-SGML is now automatically fixed on output.

Binary-coded Unicode characters are now automatically
replaced by named entities on output, if an appropriate named entity is
known. For example, a binary "—" embedded in the text will
automatically be replaced by "&mdash;". This prevents failure
of some DocBook parsers, at least with SGML-targeted output. It
also lets you deal with various special characters in a more WSIWYG way.

All of the items above (except the first two) relate to
problems I encountered when importing data from OpenOffice documents (such as MS Word formatted documents or
spreadsheet data) into Do178Builder.
This is an extremely useful technique that I never thought was possible
before. If you're interested, read about it on the
tutorial page.

03/23/08. Various bug-fixes and feature additions to Do178Builder itself:

The user can now always select which documents a given
section belongs to, irrespective of whether or not "framework editing
mode" has been activated. Not allowing this before seems to me
now to have been a really dumb idea.

There are new buttons on the editing toolbar for:

Inserting a hyperlink to a URL.

Inserting a footnote.

Inserting an mdash—as in this sentence.

Inserting a custom section or subsection; i.e., a section
that isn't related to the framework template. (Another
traditional omission which, in retrospect, seems rather stupid.)

Various toolbar buttons that inserted tags or markup
templates into the text were not properly setting the dataset-changed
flags (which is what triggers a prompt to save the database upon
exiting). This is now fixed where it occurred.

None of the toolbar buttons that inserted markup into the
text put focus on the window containing the text afterward. This
is now fixed.

Fixed the annoying bug in 'search', in which it would find
the sought-for text, but then not put focus on the window containing
it, so that you might not see the highlighting. (On some
platforms, it was worse, in that often the search pattern would be
blanked out so you couldn't even find it by eye!) Actually,
it still fails to highlight occasionally, but at least it puts the
cursor on the item. I'm not sure if this remaining residual
problem is a bug in Do178Builder,
or a bug in wxWidgets. [... This is now known to be some kind
of unfortunate interaction between wxWidgets and GTK+. Not everyone experiences the
problem. In my experience, it happens with wxWidgets 2.6 and 2.8 combined with GTK+ 2.8, 2.10, or 2.12, and does not occur
with wxWidgets 2.4 combined with GTK+ 2.2. Do178Builder is not the only application
affected. I'm not sure at the present time if there is any
prospect of fixing it.]

03/21/08. The system-requirements to high-level
requirements trace matrix produced by Do178Builder-utility
now includes a column with the title of the high-level requirement
document sections. This makes it much easier to use as a tool for
proofing, and is easily eliminated afterward by anybody who doesn't
like it.

03/20/08. Added a new feature to Do178Builder-utility for limiting
(in some cases) the huge expansion of the system-to-software trace
matrix that occurs if there is an unwanted many-to-many mapping of
system requirements to software requirements. This is described
on the traceability page.

03/19/08. All work today relates to the Do178Builder-utility program:

Bugs have been fixed in all of the --trace-XXXX passes that would have caused inaccurate
table generation in some cases.

The --trace-verify table has been extended from 2 to 3
columns by the addition of a column giving the requirements or design
document section from which the requirement being tested has been taken.

The --DO-254 switch was so thoroughly broken that it could
never have worked, so I don't know how I was making it work up to
now! It is fixed now.

There is now a command-line switch (--sortable) that modifies
the section numbering somewhat to make the output trace matrices
more-reasonably sortable. However, I doubt that the switch is
really that useful.

03/18/08. Do178Builder-utility now implements
--trace-design-system (traceability between system requirements and
software/hardware requirements), along with associated new command-line
switches.

Extended regular expressions are now the default, and the
--regex-extended switch has been replaced by a --regex-basic switch.

Created a preliminary page
describing the Do178Builder-utility,
though this is the only real link to it!

03/16/08.

Added a download for the Win32 Do178Builder.exe file from the
20080310 snapshot, contributed by Chris Lambrecht. (Thanks,
Chris!) Since the alternative is to build it yourself or else to
use the last Win32 build I did myself (from 2006), this is obviously a
recommended alternative. I believe that Chris has told me that it
works on both XP and Vista, and that the previous exe file I provided doesn't work on Vista.
Anyhow, this build is completely up-to-date functionally, except that
the zlib functionality is
disabled, which only affects some data in a disused log file
(Sections.log) that it's likely nobody in the world uses anyway.

Changed the Do178Builder
source code so that it no longer relies on the zlib library. (The zlib dependence was causing problems
for some people who tried to build Do178Builder
in Windows. Not that there's any problem with zlib itself, just that I'm not
capable of debugging the problems remotely on operating systems for
which I have little interest. Thanks to Chris Lambrecht for
reporting this problem.) I know that Do178Builder still works on Linux
with this change, but I've not had the chance yet to test it with
Windows.

Added a utility program Do178Builder-utility,
which is a post-processor for Do178Builder
XML project databases that allows me to add some features without
having to
worry about messing up the GUI structures within Do178Builder. The principal
usage at present for Do178Builder-utility
is to create trace-matrix data that can be used within independent
traceability-matrix documents rather than being integrated into the
SRD, SDD, and SVCP documents. Do178Builder-utility
is presently a Linux-only utility. (The code is probably
portable, but I simply haven't worked out any of the details on how to
build it on any other operating system.) At any rate, it's only
partially functional as of yet, and I haven't yet included any
instructions on the website for how to use it. (For anyone
particularly keen to try it out, you build it with 'make utilities';
you have to have libxml2-devel installed. The command
'Do178Builder-utility --help' gives a list of available command-line
switches. The switches I think are presently useful are:
--trace, --trace-design, --trace-design-full, --regex-extended,
--regex-case-insensitive, --low-section-range, --high-section-range,
--low-label-pattern, --high-label-pattern, --low-section-pattern,
--high-section-pattern, --display, --combine-srd-sdd, --no-sed, and
--DO-254. The CSV files which are output—only
Do178Builder-trace-design.csv and Do178Builder-trace-design-full.csv
presently—can be pulled into any spreadsheet program, or probably into
other types of programs, and sorted or otherwise manipulated in lots of
ways.) My next task is to implement the --trace-verify switch,
and then I'll follow that with the --trace-system and --trace-implement
switches.

Added some notes to the developer
page concerning the possibility that Do178Builder XML project databases
may not necessarily be legal XML, and how to process them simply to
make
them legal.

Just for my own purposes,
here's a to-do list for things I want to do in Do178Builder in the very near
future, but haven't tried to accomplish yet:

Make
it possible to
modify the assignment of sections to documents without entering
framework-modification mode.
(Implemented!)

Make it possible to add
document sections without entering framework-modification mode.
(Implemented!)

Add some way to
reference document sections without knowing specific section
numbers. In other words, there would be some kind of marker you
could add to a section (which, say, would be section 4.1 in the SRD and
5.1.3.1 in the SDD), and then some other kind of marker that you could
use to refer to it in other sections (which would turn into "section
4.1" within the SRD and "SDD section 5.1.3.1" within the SDD).

And something
similar to the above for figures and tables.

Fix the bug wherein after a
'search' the found text isn't always highlighted properly.
(Implemented!)

03/12/08.

The customized XSL stylesheet used for conversion of DocBook XML when using the XMLmind
XSL-FO converter program now forms a proper XSL customization
layer. In other words, you no longer need to edit the stylesheets
that come with the converter program. To this end, the 'fo'
directory of butchered Converter stylesheets has been eliminated from
the development snapshot, and a single cusomization file
Do178Builder.xsl has been provided instead. The instructions for
usage have changed, but correct instructions are still to be found in
the README file. Also:

This stylesheet has also been made slightly more compatible
with the DSSSL stylesheets, in that the corporation name now appears on
the title page of the document.

Some useful non-Do178Builder
features have been added, in the form of tags <?hard-pagebreak?>,
<long-ulink>, and <long-string> which can be used within
the Do178Builder database
files. These tags, respectively, insert a page break, allow
line-breaks within URLs in hyperlinks, and allow line-breaks within
long strings such as long filenames. These are described on the DocBook page.

A 2nd optional layer of XSL stylesheet customizations has
also been provided in the form of a file called
MyCustomization.xsl. This file provides some additional
formatting flourishes that depart from the DSSSL stylesheets, and can
be used as a model for adding your own customizations. The
instructions for usage are in the README file.

03/10/08.

Additional fixes to the XSL stylesheets used for conversion
of DocBook XML when using the
XMLmind XSL-FO converter program:

Elimination of header and footer on the title page.

Elimination of some warning messages during conversion.

Some trouble-shooting fixes added to the description of
converting DocBook XML on the DocBook page, including the following:

When you insert a graphic using Do178Builder, the DocBook code that's inserted is
compatible with DocBook 3.1 SGML, but is not compatible with DocBook
4.x XML because no </imagedata> closing tag is inserted. Do178Builder now compensates for
this by automatically adding the closing tag (if it is missing) when
creating DocBook XML output. Thanks to Chris Lambrecht for
pointing out this problem and tracking down a fix for it!

Added the "--no-productname" switch for Do178Builder. This can be used
to eliminate a ™ symbol which sometimes appears on the title page and
in page headers, without having to edit the stylesheet. (The
default behavior of the program hasn't changed, so if you're getting
this trademark symbols and like them, you won't be affected adversely.)

Also thanks to a hint by Chris Lambrecht, I've finally been
able to add some instructions—and pretty
simple ones, too!—for converting DocBook
to PDF, RTF, etc. on Windows systems. Yay!

01/30/08. Do178Builder
mods:

It turns out that some of the support added for DocBook XML has the effect of
causing the program to hang if you have unterminated tags within a
<docbook>...</docbook> block. Yikes! That has
been fixed.

Also, the program now prints some helpful messages when
unterminated tags are encountered, or the potential for overflowing the
LaTeX processor is noticed. These messages are normally seen only
when you run the program from the command line, so if you run the
program from a desktop icon, you may want to select the icon option
"run from terminal" (or whatever the equivalent is on your
computer). The console messages in general have been cleaned up
to make them easier to read, although they still could use some work.

01/29/08. As time goes on, we keep encountering documents
that have greater and greater amounts of text within individual
document-sections, so that the hardcoded limits within Do178Builder have to keep being
increased. In today's snapshot, this buffer is allocated and
resized dynamically, so the hard limit on document-section size has
been removed.

01/27/08.

Now supports DocBook
v4.1.2, v4.2, v4.3, and v4.4, in addition to the v4.5 support added
earlier, as I noticed that v4.5 isn't yet available (for example) in Cygwin.

When creating documents, now detects the symbols '&' and
'<' within a <programlisting>, and automatically converts them
to "&amp;" and "&lt;" where necessary. This was something
you could often get away with in SGML, but never works in XML.

01/26/08.

Fixed a bug in the "--combine-srd-sdd" feature, in which the
identification of the SRD/SDD document version didn't appear on the
title page.

Added the optional ability to output DocBook v4.5 XML rather
than DocBook v3.1 SGML. This should make things a lot easier for
Windows users, if there are any out there, since the Windows-based
versions of DocBook I've seen only support DocBook XML, and don't
support v3.x. See the description of the "--x45" switch on the tutorial page.

01/25/08. Do178Builder
has several new command-line switches ("--no-forward-trace",
"--no-trace", and "--combine-srd-sdd") for helping to eliminate certain
types of traceability references, or for easily producing a combined
SRD/SDD document. So far, this is in the development snapshot of
the source code only.

07/08/06. When documents are built, the status messages
now correctly relate to either DO-178B or DO-254 as appropriate, rather
than just assuming DO-178B.

07/06/06.

The file-locking feature added yesterday worked in Windows
XP, but (it turns out) not in Windows 98. This is now
fixed.

The "--no-resize-workaround" command-line switch has been
added.

Fixed some boilerplate text in the DO-254 template that had
some wrong </docbook> tags.

I saw Do178Builder
spontaneously exit once (in RedHat 7.3) when building a DO-254 document
set. It didn't happen again, even though I used the same
database. *Sigh!*

07/05/06.

Fixed truncation issue on some platforms with
the displayed names of the DO-178B/254 documents in the editing window.

Added file-locking to the Win32 version of Do178Builder. The Win32
version is now feature-identical to the Linux version. However,
if you have been using the Win32 version, you won't have been running
the lock-server, and therefore will now need to either run the lock
server (and add the -s=IpAddress
command-line switch) or else explicitly disable the file-locking (with
the -l=0 command-line switch). As usual, please realize that I
work with Linux mainly, so the Win32 version of the program has
received only the most superficial checking.

I needed to mod the lock-server's client software to get it
working in Windows. As a consequence, Do178Builder now includes a complete
copy of the (modified) source code for OLD v0.16. This simplifies
building from source, since it's no longer necessary to download the
lock-server source code.

07/04/06. Now builds with wxWidgets 2.6.x and gcc 4.x. Still builds with wxWidgets 2.4.x using either gcc 3.x or gcc 4.x. This means it now
builds again with systems such as SuSE 10. Although I had a
horrific time figuring it out (again!), I've also made it build in
Win32.

07/03/06. The "search" feature has finally been
implemented. Some new traceability and test-identification items
and boilerplate have been added to the DO-178B template.

07/02/06. There are loads and loads of useful new
features and under-the-hood improvements, and even a broken item or two.

Do178Builder can now
be used for DO-254 documentation. Just use the command-line
switch "--DO-254". This will cause a DO-254 database template
(".template254.xml") to be used, and will alter the user-interface and
document-builds to reference DO-254 documents rather than DO-178B
documents.

Under Tools on the main menu, there are now commands "Prune
to Level B", "Prune to Level C", and "Prune to Level D". These
commands remove all of the database items that pertain to a higher
assurance level. This is useful to make the database look less
busy, but also to help you avoid wasting time on objectives that aren't
pertinent at the assurance level you're working under. When you
prune, all levels of parents are
displayed in red if a child has been pruned.

There are now hot-buttons for "Insert list", "Insert table",
and "Insert graphic". These are mini-wizards that let you
directly insert DocBook templates for lists, tables, and graphics into
your text, without having to memorize DocBook commands, or keeping a
DockBook reference manual in front of you.

There is now a navigation feature that lets you select a
particular DO-178B (or DO-254) document type, and just navigate forward
or backward through the database to the items related to the chosen
document type. This sounds like a silly little feature, but it
makes maintaining the database enormously easier since you only work on
a specific document type at any given time.

When you open a database, you can now open it in a
"read-only" mode that doesn't allow you to Save it (but does allow you
to Save-as). This is useful if multiple developers are working
with the same database. It is still true that only one developer
change the database, but other developers can view the database in
read-only mode (which was not possible previously). Thanks to Dan
Lydick for this suggestion.

When working with program code --- such as s=&c; --- developers
usually wouldn't know that the '&' character had to be replaced by
"&amp;", and would then be mysteriously caught by DocBook error messages when creating
the docs. The hot-buttons for marking up text as code now
recognize this situation, and automatically replace '&' by
"&amp;".

The search feature is still
not implemented, so I've finally grayed-out its hot-buttons.

When you load a database, the "applicability by assurance
level" and "control-category" settings are automatically adjusted so
that parent items have at least as high an applicability and control
category as each child item. This is not only logically correct,
but is needed to assure the correct behavior of the new "pruning"
functions. Items which have
been adjusted are displayed in green.

Automatic insertion of traceability references has been
improved in a variety of ways:

The template now has test cases for high-level
requirements. (Previously, I only had test cases for low-level
requirements.)

The template has added default tracebility references from
system requirements to high-level software requirements, and from
low-level requirements to source code. (Previously, you had to do
this yourself, if you wanted it. Now the references are there as
"TBD", and you have to either fill them in or delete them.

Traceability is now shown between high-level requirements
and their test cases. (Preivously, this was automatic only
for test cases of low-level requirements.)

Traceability references are now output more attractively.

The templates have been polished up in other ways, with
improved hints, boiler-plate text, and so on.

I was under the impression --- though I don't see any
reference to it below --- that Do178Builder
was broken with respect to wxDesigner,
so that editing the GUI with wxDesigner
would destroy the font-size option. If so, this is now fixed, and
wxDesigner can be used
again.

... But,
I can't get Do178Builder to
build in Win32. Nor can I get it to build in SuSE 10. My
impression is that it won't build with any version of wxWidgets higher than 2.4.x (I use
2.4.1 and 2.4.2), nor will it build with gcc except the 3.x series (I use
3.3.2 and 3.2.3). I am increasingly sorry that I used wxWidgets
rather than gtk+, because every time I turn around compatibility is
broken in some mysterious, undocumented way.

06/26/06. The stylesheet recommendations on the DocBook
page have been changed to improve the table of contents and to correct
the default graphics format (from eps to jpg). On the Tutorial page, the explanation of
how to generate marked-up versions of document changes has been
expanded to include MS-Word
rather than just OpenOffice.

12/17/05. I haven't made any code changes, but I've
discovered a great way to do change tracking, similarly to the way it's
done, for example, in Microsoft Word. In other words, you can
select any two versions of a document created by Do178Builder, and automatically get
added text underlined, deleted text struck out, and change bars in the
margins. Check
it out!

06/21/05. Given that I and my
minions are getting older, and our eyes are getting weaker, it seemed
time to make the font-size used in Do178Builder
adjustable. There is now a command-line parameter (-f) that can
be used to adjust the size. The default size is -f=10. The
screenshot at right is with -f=18; click to enlarge it to decide for
yourself if it's worth the trouble of upgrading. (Hint: It is worth it.) Various other
readability improvements have been made as well (in the editing window
and in the document check-boxes). I haven't tried building it on
any platform but Linux (RedHat 7.3, Fedora Core 1, and SuSE 9.0), so
your mileage may vary.

05/02/04. Took care of problem reports #46 and #47,
hopefully, having to do with problems in file-locking.

04/26/04. Do178Builder
now has file-locking, based on Alberto Bertogli's Open Lock Daemon
("old").

04/17/04. Added the "tr" hot-button and the <trace>
tags. Explanation
of this feature has been added to the tutorial. There have also
been some updates to .template.xml which cause some slight
imcompatibilities with existing databases. The principal change
is that multiple test cases may be created for any given low-level
requirement. It's not absolutely necessary to modify your
database to make it compatible with the new .template.xml, but I'd
suggest doing so anyway, as follows: Edit your XML database in a
text editor; do a search-and-replace to change all occurrences of
"Test_Case" to "TBD_Test_Case"; visually inspect your test cases for
any obvious problem caused by the editing.

03/28/04. Added the ability to recognize filerefs in raw
DocBook commands, so as to copy external files into the output
directory.

03/28/04. Fixed PR#43, which was that File/New had never
been implemented.

03/28/04. Fixed PR#26, which prevented a complete
sub-tree being created for a new item. The odd thing about this
is that all of the correct code was
in place, but enough was commented out to make sure that only the first
child of any given item actually appeared. I suspect it was done
deliberately, but I don't know why.

03/27/04. The Do178Builder tutorial has been pepped up
somewhat including, in particular, some helpful stuff about using raw
DocBook commands.

03/26/04. Added the ability for the text to contain
arbitrary DocBook commands. That allows the sophisticated user to
add lists, tables, inline figures, or any other feature supported by
DocBook. This is accomplished by encapsulating the DocBook
commands with the <DocBook> tag, as in
"<DocBook>...arbitrary DocBook
commands...</DocBook>". There's also a hot-button for
adding the <DocBook> tags. Some minor template fixes have
also been made.

11/12/03. During Do178Builder SGML builds, the project
XML file is now automatically duplicated, to allow for use later during
change tracking. The inability to build Do178Builder under Win32,
presumably broken in August's mods, has now been worked around.

11/10/03. There is now an 'install' target the Linux
makefile. The program and the document template now allow for
individual document names and document numbers. When
outputting SGML, the documents are placed in a directory named like "ProjectName-Date.documents", rather
than just "ProjectName.documents"
as previously; however, the earlier behavior can be restored with
the "-o" command-line switch. Furthermore, during SGML
output, graphics files (for figures) are copied into the output
directory instead of
expecting to be used from their original locations. Finally,
during SGML output, a file called Sections.log is created; this file
maps SGML sections (in the output files) to XML sections (in the
project database); furthermore, it contains checksums for all of the
text fields. Sections.log is very useful in tracking document
changes, since a simple `diff' of the Sections.log files for two
versions of the document now allows a complete determination of all
changes, and provides a way of tracking them back to the XML file.

Now depends on zlib, though, for the crc32 function.

10/28/03. Did a fairly major rewrite of the
"DO-178B for Dummies" page, to add explanations about opening FAA
projects, STCs, PMA, and so forth.

08/07/03. On this website, references to all of
the previously planned sample projects (libBirds, etc.) and their
roadmap have been expunged as being impossible to qualify.

08/07/03. All of the following changes relate
to
Do178Builder:
Now works with wxGTK 2.4 (in Linux), and so looks somewhat prettier. A
bug in which the program crashes
randomly if the editor dialog is expanded past 1280x1024 (in Linux) has
been "fixed" (by
preventing the expansion of the dialog's window); the -x and -y
command-line switches have been
added to allow overriding this limitation. The text-editor control
within the editor dialog
now uses a fixed-width font instead of a variable-width font, where the
operating environment
supports it, to make working with code fragments easier. The editor
dialog now attempts to maximize itself (within the limits mentioned
above) rather than opening up at its minimum size. Hot-buttons for
several commonly-used types
of markup (particularly emphasis and code) have been added to avoid the
need for explicitly
using the markup drop-down list every time. The operation of the -p
command-line switch has been modified so that the program actually does
a chdir to the specified directory; I hope this doesn't break
anything.
Various fixups have been made to .template.xml, and I hope that doesn't break anything.