This library is enormous (1K files, ~100K SLOC), which is why we don't just include it in externals/. This install process is a little weird and we could improve it, but users don't seem to have too much difficulty with it. This shouldn't be worse than the existing workflow in Maniphest, and I tried to make it at least slightly more clear.
Uninstalled PHPExcel, got it marked "Unavailable" and got reasonably-helpful-ish guidance on how to get it to work. Reinstalled, exported, got a sheet.
- rP Phabricator
Lint Passed Severity Location Code Message Advice src/infrastructure/export/format/PhabricatorExcelExportFormat.php:17 XHP16 TODO Comment
- Build Status
Buildable 19241 Build 25998: Run Core Tests Build 25997: arc lint + arc unit
To make this slightly easier, we could also create some phabricator/externals/clone-stuff-here/ directory and say "put it here", and then automatically add that (or, that plus PHPExcel/Classes, I guess) to include_path so you only had to do the git clone and didn't have to mess with php.ini. We could also raise a setup warning like "if you want excel support, cd into this directory and run git clone .... You can safely ignore this suggestion if you don't care about excel exports." to guide you down that path a little more smoothly.
To make this significantly easier we could ship PHPExcel in externals/ so it just works (or switch to PhpSpreadsheet and distribute that), but I'm really hesitant about bundling an extra 100K lines of externals. On the other hand, there's no really concrete cost to doing this, so maybe we should just bite the bullet and accept that we're distributing a spreadsheet exporting library with a little bit of code review functionality on top? (Phabricator is something in the realm of 1M lines, I think, so it's not quite that bad.)
Historically, I think users have had surprisingly little difficulty getting through this so it feels like improving this isn't terribly important. If more users were hitting issues with it I'd be more inclined to try to make it easier.
As per https://github.com/PHPOffice/PHPExcel/commit/c269793ee715fb5a15f0b2ad25c064d9ee6e8e53, PHPExcel has been deprecated and replaced with PHPSpreadsheet. So, instead of recommending PHPExcel, shouldn't PHPSpreadsheet be supported?
(I'd file a task for this, but that functionality isn't available anymore, so not sure where to mention this.)