boost_archive.php:
For mime types, the current list seems fine, and a full list doesn't
seem feasable.
boost_filter_text.php:
For supporting other character sets, could possibly use
mb_detect_encoding to guess the file's encoding, but it's not currently
installed on the server, and I think guesses are probably no better than
just assuming everything is UTF-8. The alternative would be some
mechanism to specify a file's (path's?) encoding, but I'm sure that can
be done if the need arises.
boost_library.php:
If it turns out that a better exception is needed, then it will be
handled then, so I'm not concerned with that TODO note.
boost_pages.php:
Sourceforge is redirecting downloads to the right place, so I'll not
bother with '/download' at the end. It's probably better if the download
URLs have the right filename.
boost_simple_template.php:
I don't think the simple template class really needs to support tricky
edge cases, so I'll just leave that alone.
doc/libraries.php:
I don't think anyone's desperate to see the library list for ancient
versions. If they are, they can get the it in json format using:
http://www.boost.org/doc/libraries.json.php?version=1.11.1
site-tools/git-prep-beta.sh:
Coming back to this, I think the answer is no. A change on master is
only really made when it has been pushed to remote, if it's only local
then it might get rebased.
This script doesn't actually get much use now that there are long
standing unmerged changes in beta, but it used to work well for me.
site-tools/update-doc-list.php:
Other TODO note was to make the script a little more automatic when run
against a local git tree, but I don't think that's a use case to support
in general. The tree might not be fully synced, or might be checked out
from a tag, which would be harder to check.
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.
Now get_modules works if there are no submodules, and stop throwing
exceptions for unusal submodule urls, since odeint has an external
documentation submodule.
This allowed me to simplify some of update-doc-list as there's no longer
any need to work out the module for a library. This might break
update-doc-list in places. Will work on that next.
I just implemented the mechanism, but on second thoughts, it's probably
a bad idea to do it that way. Will leave alone BoostLibraries for now,
but will probably remove the functionality later.
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.
The code was pretty messy because it was using BoostLibraries for
everything, this will hopefully let it be a bit cleaner.
Also removes support for xml metadata files. No one has ever used it.
First remove some old code which guessed the module from the library's
key, this was there to bootstrap modules - no need now they're all
stored either in the documentation list, or implicitly by the location
of libraries.json.
Secondly, pass the name of the module as the parameter, rather than the
array containing the module data.
Because they only need to be squashed for the website page, and that
uses the serialized list. This means that arrays from the metadata will
now be properly preserved.
This is a bit awkward as the serialized list is now different from the
xml file. It might be better to squash names after loading the
serialized file instead, althought that would be a bit less efficient
(premature optimization?).