It used to just grab anything that looked like a version number from a
string. Now the whole string must be a version number. Left the library
list in a little bit of a mess, but will clean that up next.
So that a release can have a version number before it goes into beta.
Note: needed to run update-doc-list for this to work, as the serialised
documentation list includes version numbers.
Pretty large development merge. Including:
- More robust PHP error handling.
- Automatically update release data from various sources. Manually
updating a json file was too error prone.
- Normalize hashes of release notes, so that they won't need to be
manually updated so often.
- Small improvements to quickbook page data.
- Cache html generated from quickbook - so no need to reparse when
changing release data. Much of the site can now be rebuilt without
installing quickbook, although changes in quickbook won't be included.
- Scripts in site-tools have are more consistent at the command line,
and all support '--help' (although some have very little information).
- Automatically update more of the site for new releases.
Prompted by:
http://stackstatus.net/post/147710624694/outage-postmortem-july-20-2016
Not really an issue here, as mostly processing our own files, so they
should be less problematic. The version number parsing code might have
an issue with really long URLs, but I don't think that's possible. But
fix it anyway.
Now cleans up the database even when there are no updates. Updating for
a relese is better integrated. And also sets up the ground work for
deleting libraries.
It used to just ignore the beta information, but that wasn't quite right.
This does means that the library details will still have information about
the beta version after a release, which isn't desirable, but it
shouldn't be too hard to write something to strip out old beta
information.
PHP 5.4 uses UTF-8 by default, but PHP 5.3 uses ISO-8859-1 so character
encoding is going wrong there. So replace htmlentities with a function
that uses the correct encoding.