After about 6 months of development 0.9.5 of cssutils is released as a final version. The last final version has been 0.6 …
Not that final means perfect but at least I tested everything, the lib itself, the scripts which have been broken in some alpha and beta releases and also the examples on the website which have been changed quite a bit. There still are quite a few areas where I suspect problems but there has to be a release at some point
Anyway a release means starting a new one. I guess I have to improve the basic property handling. New values have been added to CSS2.1, CSS3 modules can be added (especially the Color Module which is almost a recommendation).
But I think I do look into other small projects first as I have been concentrating on cssutils in my spare time for quite some time now…
I guess this is one of the releases I have been tested much more deeply than any others before. I know there are still lots of bugs in the lib but I did not expect such a major one which has been fixed in 0.9.5rc2. It more or less made handling lib not as it is meant to be handled. Please see the change log for a more details explanation just in short:
The global setting cssutils.log.raiseExceptions defines if exceptions when using any DOM method are actually raised (the default) or simply logged away. Problem was that whenever you used any parse* function or any CSSParser.parse* method this setting was set to “False” and exceptions were not raised anymore. Exceptions would be if the parser itself was initialized with CSSParser(raiseExceptions=True) which I reckon hardly anyone who uses the lib had done.
0.9.5rc2 fixes this bug. Any parse* does restore the original value of cssutils.log.raiseExceptions to its former defined value (which would be “True” as the default value).
I know this is normally not a time for such a serious change (at least I think it is serious, is it not?) but I think better now than later. Also there is a workaround. Simply set csstutils.log.raiseExceptions to “False” or “True” whatever you prefer. Beware though that “True” (meaning raising) should be used except during a parse* but when actually working in the DOM.
Anyway, there are also some positive things to report. A few bug have been “squashed” and the performance has been improved by maybe 25% (depending on your source sheet). This was more or less a side effect of a bugfix which made me refactor the tokenizer and realize that there is massive room for optimization…
Guess 0.9.5final will be coming shortly. The next release 0.9.6 will probably concentrate on properties and values which are not testet very well and do have room for optimization – speaking positively