I am currently approaching the “zero bugs” watermark (except for two almost persistent bugs that I tend to ignore) so it is time to think about releasing a new stable version and,shortly after, version 5:
The development of the speedata Publisher has one big “mantra”: existing setups must work with newer versions of the speedata Publisher without change. So you can always upgrade the latest development version without having to fear that you need to change your layout file.
This imposes limitations on development and usage of course. New features have new XML tags or attributes. For example the version 2.3.39 introduced a command to set options for PDF processing. This only affects layout files that use this commands, old layout files simply ignore this command. Similar with attributes, for example the balance attribute in tables was introduced in version 3.1.24. In this case, older versions of the speedata Publisher will not balance the table, but will continue to work.
There are some major new technologies introduced since the speedata Publisher was first published in 2010. These usually work with a feature flag:
The version 4.15.8 of the speedata Publisher contains a completely rewritten XML and XPath parser. Currently this is opt in, but it will be the default in version 5 of the speedata Publisher.
The old (current) implementation is a combination of an ad-hoc XML parser and an XPath parser, both written in pure lua. These parser works fine in practice, but are too fault tolerant and do not give enough information in case of an error. In some errors these parsers get into a bad state. There have been many, many issues fixed related to these two parser parts since starting the development.