Archive for the ‘consodoc’ Category
In addition to my talk “Generative XPath” at XML Prague 2007, I decided to submit also a poster:
Title: XML to beautiful documents
Abstract: I’d like to present an alternative to XSL-FO. Using TeX to create PDF from XML is an old trick, but thanks to TeXML (an XML syntax for TeX) and Consodoc (a publishing server), the process is greately simplified and the produced documents are of high quality.
From the Consodoc forum:
* Running Consodoc under Windows
* What is the document input format:
* – What is the document input format? I know, it’s XML, but what “dialect”, e.g. ODF or DocBook or XHTML?
* – Do you support multilanguage input files, e.g. English text with citations in Greek, Hebrew or Chinese?
Finally, Consodoc publishing server is released as beta. Consodoc assist with getting beautiful PDFs from XML. The main features are:
* XML is converted to PDF through TeXML and LaTeX.
* It’s possible to manually tune the generated layout.
* Tunings are remembered and re-applied during re-generations.
Finally, I traced out why time-to-time my functional tests stop passing.
* Some steps are associated with Python functions.
* Signatures of such steps depend on the code of the functions.
* If the code of a function is changed, the signature is changes, and the step is considered out-of-date.
Therefore, small changes in code lead to changes in the build process.
I have a lot of functional tests for my build process. Recently I changed the program name on one of the intermediate steps. As result, SCons
* thinks the build signatures are updated, and
* wants to rebuild starting from that step instead of doing the expected rebuilds.
Therefore, I have to update the most part of the tests. But it’s near to impossible to update manually.
Finally, all the functional tests (at the moment, 34) for consodoc are written and passed. The rest is easy: walk through FIXME file and make refactoring, create distro, create site and publish an announce. The middle of August is reasonable estimation for the first release.
My build process consists of several steps. One of the intermediate files is actually intended to be edited by the user. But I noticed that when user changes the file, SCons doesn’t re-generate the rest of the build chain.
Consodoc project is now one month delay, and I expect I can’t release anything before the end of August. Functional testing revealed a lot of problems, some of them are important. Anyway, I’m glad with the current results.
I have a lot of functional tests for SCons processes. At some moment, I improved one of the first steps in the process. As result, now most tests fail due to “rebuilding `file‘ because the contents of the build action changed”. It’s impossible to re-made the tests. Instead, I decided to correct information in the .sconsign files.
SCons supports a list of files to be also deleted on “scons -c” (cleaning). Here is a code example how to check that a file is in the list.
Unit testing is good, but the actual behaviour of a program also should be tested.