Page MenuHomePhabricator

Update `update_compat_info.php` to use PHP_CompatInfo version 3
ClosedPublic

Authored by joshuaspence on Jun 16 2014, 6:38 AM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Nov 20, 1:18 PM
Unknown Object (File)
Mon, Nov 18, 11:12 AM
Unknown Object (File)
Thu, Nov 14, 3:59 AM
Unknown Object (File)
Thu, Nov 14, 2:04 AM
Unknown Object (File)
Thu, Nov 14, 2:02 AM
Unknown Object (File)
Wed, Nov 13, 10:06 PM
Unknown Object (File)
Wed, Nov 13, 10:06 PM
Unknown Object (File)
Wed, Nov 13, 10:04 PM
Subscribers

Details

Summary

Fixes T5377. The current scripts/update_compat_info.php script works for PHP CompatInfo version 2, but doesn't work with the newer version 3.

There are a few breaking changes in version 3 that had to be addressed:

  • PHP 5.3 is required. Whilst Arcanist is generally compatible with PHP 5.2, I don't think that having this dependency presents any real issues because it is purely a development tool that is rarely updated.
  • Composer is used for packaging, which makes including the library slightly more complicated. Basically, I had to install PHP_CompatInfo globally with Composer (composer global require "bartlett/php-compatinfo" and then symlink ~/.composer/vendor into externals/includes.
Test Plan

Compared the resources/php_compat_info.json file. There are a bunch of functions/classes that were in this file but are no longer, but I think that I've covered the most popular extensions.

Diff Detail

Repository
rARC Arcanist
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

joshuaspence retitled this revision from to Update `update_compat_info.php` to use PHP_CompatInfo version 3.
joshuaspence updated this object.
joshuaspence edited the test plan for this revision. (Show Details)
joshuaspence added a reviewer: epriestley.
scripts/update_compat_info.php
9

This isn't great and can possibly be done better.

19–44
resources/php_compat_info.json
1

It's a lot easier to diff this file if you sort the keys first.

joshuaspence edited edge metadata.
  • Add the FileInfo extension.
epriestley edited edge metadata.

Yeah, it's fine if you need weird stuff to rebuild artifacts like this.

This revision is now accepted and ready to land.Jun 16 2014, 12:55 PM