Thank Jeffrey, that's a good eye, but
unfortunately, the problem persists.
Indeed, update.php had not completed *successfully*. There
appears to be a mistake in the documentation (or a shorthand
in which it is assumed the admin understands the syntax is not
literal). The INSTALL page says to run:
> composer require "phpoffice/phpexcel:~1.8"
I had ran this command verbatim. Initially, composer would
not complete due to another unrelated module which specified
unit-tests in its require/manifest, but the module was not
deployed with its test directory. Having fixed that problem in
multiple places, the composer command ran successfully.
Unfortunately the tilde seems to have been the cause of the
failure for running update:
phpoffice/phpexcel: 1.8.2 installed, ~1.8 required.
Error: your composer.lock file is not up to date. Run
"composer update --no-dev" to install newer dependencies
This is really quite strange. I looked at the composer
documentation, and there is definitely some confusion there.
In one section, it says that the version attribute must match
a regular expression, which does not include the ~. Another
section (
https://getcomposer.org/doc/articles/versions.md)
indicates this is perfectly acceptable, and that "~1.8" should
mean ">=1.8.0". However, none of the following
combinations in composer.json worked:
- "1.8*"
- "1.8.*"
- "1.8.0"
- ">=1.8.0"
In the end, I had to change composer.json with the exact
version number composer had previously installed. Then I could
run update. I also updated the language cache.