Page MenuHomePhabricator
Feed All Stories

Jan 11 2021

epriestley committed rP04c1f67a020c: Add "M<digit>" and "P<digit>" to the default Remarkup ignore list (authored by epriestley).
Add "M<digit>" and "P<digit>" to the default Remarkup ignore list
Jan 11 2021, 6:54 PM
epriestley closed D21507: Add "M<digit>" and "P<digit>" to the default Remarkup ignore list.
Jan 11 2021, 6:54 PM
epriestley requested review of D21507: Add "M<digit>" and "P<digit>" to the default Remarkup ignore list.
Jan 11 2021, 6:52 PM
epriestley added a revision to T13575: PHP built-in webserver fails on POST: D21507: Add "M<digit>" and "P<digit>" to the default Remarkup ignore list.
Jan 11 2021, 6:51 PM · Infrastructure
epriestley requested review of D21506: Fix reading of the request path when running the PHP builtin webserver.
Jan 11 2021, 6:36 PM
epriestley added a revision to T13575: PHP built-in webserver fails on POST: D21506: Fix reading of the request path when running the PHP builtin webserver.
Jan 11 2021, 6:34 PM · Infrastructure
epriestley added a comment to T13575: PHP built-in webserver fails on POST.

Guess I should probably add M1 to the remarkup blocklist now.

Jan 11 2021, 5:52 PM · Infrastructure
epriestley added a comment to T13575: PHP built-in webserver fails on POST.

I switched to an M1 Mac Mini on Big Sur, which has motivated me somewhat to try to get this working since I suspect doing another install through Homebrew on M1 silicon will be more adventure than I have stomach for.

Jan 11 2021, 5:45 PM · Infrastructure
epriestley claimed T13575: PHP built-in webserver fails on POST.
Jan 11 2021, 5:43 PM · Infrastructure
jrtc27 closed D21504: Fix pyflakes tests for recent pyflakes versions.
Jan 11 2021, 4:52 AM
jrtc27 committed rARC172381260ee7: Fix pyflakes tests for recent pyflakes versions (authored by jrtc27).
Fix pyflakes tests for recent pyflakes versions
Jan 11 2021, 4:52 AM
jrtc27 closed D21503: Fix ArcanistJSHintLinterTestCase::testLinter for recent JSHint.
Jan 11 2021, 4:51 AM
jrtc27 committed rARC09cff8611ba4: Fix ArcanistJSHintLinterTestCase::testLinter for recent JSHint (authored by jrtc27).
Fix ArcanistJSHintLinterTestCase::testLinter for recent JSHint
Jan 11 2021, 4:51 AM
jrtc27 closed D21502: Fix PhutilOAuth1FutureTestCase::testOAuth1SigningWithJIRAExamples for PHP 8.
Jan 11 2021, 4:50 AM
jrtc27 committed rARCf64eb04300b4: Fix PhutilOAuth1FutureTestCase::testOAuth1SigningWithJIRAExamples for PHP 8 (authored by jrtc27).
Fix PhutilOAuth1FutureTestCase::testOAuth1SigningWithJIRAExamples for PHP 8
Jan 11 2021, 4:50 AM
jrtc27 closed D21501: Fix PhutilUTF8TestCase::testUTF8Convert for PHP 8.
Jan 11 2021, 4:50 AM
jrtc27 committed rARC9589fd18662f: Fix PhutilUTF8TestCase::testUTF8Convert for PHP 8 (authored by jrtc27).
Fix PhutilUTF8TestCase::testUTF8Convert for PHP 8
Jan 11 2021, 4:50 AM
jrtc27 updated the diff for D21504: Fix pyflakes tests for recent pyflakes versions.

Rebased patch series

Jan 11 2021, 4:49 AM
epriestley accepted D21501: Fix PhutilUTF8TestCase::testUTF8Convert for PHP 8.
Jan 11 2021, 4:48 AM
jrtc27 updated the diff for D21503: Fix ArcanistJSHintLinterTestCase::testLinter for recent JSHint.

Rebased patch series

Jan 11 2021, 4:48 AM
jrtc27 updated the diff for D21502: Fix PhutilOAuth1FutureTestCase::testOAuth1SigningWithJIRAExamples for PHP 8.

Rebased patch series

Jan 11 2021, 4:47 AM
jrtc27 updated the summary of D21501: Fix PhutilUTF8TestCase::testUTF8Convert for PHP 8.
Jan 11 2021, 4:46 AM
jrtc27 updated the diff for D21501: Fix PhutilUTF8TestCase::testUTF8Convert for PHP 8.

Catch Throwable in the test rather than converting to Exception inside phutil_utf8_convert

Jan 11 2021, 4:45 AM
epriestley accepted rARC90ac9a2ff281: Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8.

See D21500 for discussion, the test failure was an interaction between callbacks specified in C::m form and $callback() inside xsprintf() under old versions of PHP. Resolved by D21505.

Jan 11 2021, 4:41 AM
jrtc27 closed D21505: Fix ArcanistFormattedStringXHPASTLinterRule on older PHP after D21500.
Jan 11 2021, 4:40 AM
jrtc27 committed rARC687cb41ace6c: Fix ArcanistFormattedStringXHPASTLinterRule on older PHP after D21500 (authored by jrtc27).
Fix ArcanistFormattedStringXHPASTLinterRule on older PHP after D21500
Jan 11 2021, 4:40 AM
epriestley accepted D21505: Fix ArcanistFormattedStringXHPASTLinterRule on older PHP after D21500.
Jan 11 2021, 4:40 AM
jrtc27 requested review of D21505: Fix ArcanistFormattedStringXHPASTLinterRule on older PHP after D21500.
Jan 11 2021, 4:39 AM
epriestley added a comment to T13588: PHP 8 Compatibility.

So I don't forget:

Jan 11 2021, 4:33 AM · Infrastructure
jrtc27 added a comment to D21500: Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8.

Ah even better.

Jan 11 2021, 4:31 AM
epriestley added a comment to D21500: Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8.

Oh, or the array('C', 'm') version appears to work properly when invoked as $callback in all versions of PHP since PHP 5.4:

Jan 11 2021, 4:31 AM
jrtc27 added a comment to D21500: Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8.

https://3v4l.org/eYFoc does work for 5.2.2+ to pass by reference, provided which arguments are passed by reference is part of the contract. But probably best to keep it simple and define xsprintf_test_callback as you say.

Jan 11 2021, 4:30 AM
epriestley added a comment to D21500: Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8.

Oh, I think the reason to use $callback(...) is the behavior of the reference parameters. Yikes.

Jan 11 2021, 4:25 AM
epriestley added a comment to D21500: Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8.

Here's some evidence to support that theory:

Jan 11 2021, 4:21 AM
epriestley added a comment to D21500: Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8.

Ah, I think the issue is that xsprintf() internally does this :

Jan 11 2021, 4:19 AM
jrtc27 updated the diff for D21504: Fix pyflakes tests for recent pyflakes versions.

Stay under 80 characters (and format the other long preg_match a bit more nicely)

Jan 11 2021, 4:12 AM
epriestley accepted D21504: Fix pyflakes tests for recent pyflakes versions.

See T10038 for general context.

Jan 11 2021, 4:09 AM
jrtc27 added a comment to D21500: Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8.

Hm, Harbormaster is failing with:

Fatal error: Call to undefined function ArcanistFormattedStringXHPASTLinterRule::processXsprintfCallback() in /core/data/drydock/workingcopy-70/repo/arcanist/src/xsprintf/xsprintf.php on line 70

Does referencing static functions not work in old PHP versions or something? I tested with 7.4 and it was fine.

Jan 11 2021, 4:08 AM
Harbormaster failed to build B24990: rARC90ac9a2ff281: Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8 for rARC90ac9a2ff281: Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8!
Jan 11 2021, 4:05 AM
jrtc27 closed D21500: Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8.
Jan 11 2021, 4:05 AM
jrtc27 committed rARC90ac9a2ff281: Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8 (authored by jrtc27).
Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8
Jan 11 2021, 4:05 AM
jrtc27 committed rARC0adef03fdfee: Fix PhutilTypeSpec's regex handling for PHP 8 (authored by jrtc27).
Fix PhutilTypeSpec's regex handling for PHP 8
Jan 11 2021, 4:04 AM
jrtc27 closed D21499: Fix PhutilTypeSpec's regex handling for PHP 8.
Jan 11 2021, 4:04 AM
jrtc27 requested review of D21504: Fix pyflakes tests for recent pyflakes versions.
Jan 11 2021, 4:03 AM
epriestley added a comment to D21500: Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8.

Oh, I'm totally onboard with this change -- I think this behavior is generally better than the old behavior and the property of getting the input string out is useful/clever, just trying to save future-me a minute or two if this breaks and I end up here via git blame.

Jan 11 2021, 3:52 AM
epriestley added a comment to D21501: Fix PhutilUTF8TestCase::testUTF8Convert for PHP 8.

Sounds good. I think it's very unlikely anything is relying on the type of exception thrown, and we would (or, at least, should) normally throw a narrower exception (UTF8ConversionEncodingFailedVeryNarrowlyException) if really trying to make this part of the API.

Jan 11 2021, 3:47 AM
epriestley accepted D21503: Fix ArcanistJSHintLinterTestCase::testLinter for recent JSHint.

🤷

Jan 11 2021, 3:42 AM
epriestley accepted D21499: Fix PhutilTypeSpec's regex handling for PHP 8.

preg_match() in all modern versions of PHP seems to be willing to accept an object with __toString() as the first parameter:

Jan 11 2021, 3:38 AM
jrtc27 added a comment to D21500: Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8.

In the case of hypothetical zsprintf("A %XYZ B", ...), where %XYZ is some multi-character conversion like %Ls, the real zsprintf() would call sprintf("A %s B") internally, while this will call sprintf("A %sYZ B") -- that is, this callback can't know that %XYZ is a single conversion, rather than %X + YZ.

I can't think of any problems this will cause today or any theoretical problems it will cause in the future, and there's no easy way to future-proof it anyway, so I think this is the most reasonable fix.

Jan 11 2021, 3:38 AM
epriestley accepted D21500: Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8.

In the case of hypothetical zsprintf("A %XYZ B", ...), where %XYZ is some multi-character conversion like %Ls, the real zsprintf() would call sprintf("A %s B") internally, while this will call sprintf("A %sYZ B") -- that is, this callback can't know that %XYZ is a single conversion, rather than %X + YZ.

Jan 11 2021, 3:29 AM
jrtc27 added a comment to D21501: Fix PhutilUTF8TestCase::testUTF8Convert for PHP 8.

Does this just break a test or something?

Jan 11 2021, 3:29 AM
epriestley requested changes to D21501: Fix PhutilUTF8TestCase::testUTF8Convert for PHP 8.

Does this just break a test or something?

Jan 11 2021, 3:18 AM
epriestley accepted D21502: Fix PhutilOAuth1FutureTestCase::testOAuth1SigningWithJIRAExamples for PHP 8.

Thanks!

Jan 11 2021, 3:01 AM
jrtc27 requested review of D21503: Fix ArcanistJSHintLinterTestCase::testLinter for recent JSHint.
Jan 11 2021, 3:00 AM
jrtc27 added a comment to T13588: PHP 8 Compatibility.

With the four revisions I've just added, arc lint works with PHP 8 when run inside the arcanist repo, and arc unit --everything has no regressions compared with PHP 7.4 (both do have a few failures but they're the same and relate to pyflakes/jshint/hg, and look environment-specific so nothing to do with PHP 8).

Jan 11 2021, 2:24 AM · Infrastructure
jrtc27 added a revision to T13588: PHP 8 Compatibility: D21499: Fix PhutilTypeSpec's regex handling for PHP 8.
Jan 11 2021, 2:21 AM · Infrastructure
jrtc27 added a task to D21499: Fix PhutilTypeSpec's regex handling for PHP 8: T13588: PHP 8 Compatibility.
Jan 11 2021, 2:21 AM
jrtc27 added a task to D21500: Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8: T13588: PHP 8 Compatibility.
Jan 11 2021, 2:21 AM
jrtc27 added a revision to T13588: PHP 8 Compatibility: D21500: Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8.
Jan 11 2021, 2:21 AM · Infrastructure
jrtc27 added a revision to T13588: PHP 8 Compatibility: D21501: Fix PhutilUTF8TestCase::testUTF8Convert for PHP 8.
Jan 11 2021, 2:20 AM · Infrastructure
jrtc27 added a task to D21501: Fix PhutilUTF8TestCase::testUTF8Convert for PHP 8: T13588: PHP 8 Compatibility.
Jan 11 2021, 2:20 AM
jrtc27 added a task to D21502: Fix PhutilOAuth1FutureTestCase::testOAuth1SigningWithJIRAExamples for PHP 8: T13588: PHP 8 Compatibility.
Jan 11 2021, 2:20 AM
jrtc27 added a revision to T13588: PHP 8 Compatibility: D21502: Fix PhutilOAuth1FutureTestCase::testOAuth1SigningWithJIRAExamples for PHP 8.
Jan 11 2021, 2:20 AM · Infrastructure
jrtc27 requested review of D21502: Fix PhutilOAuth1FutureTestCase::testOAuth1SigningWithJIRAExamples for PHP 8.
Jan 11 2021, 2:06 AM
jrtc27 requested review of D21501: Fix PhutilUTF8TestCase::testUTF8Convert for PHP 8.
Jan 11 2021, 2:05 AM
jrtc27 requested review of D21500: Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8.
Jan 11 2021, 2:04 AM
jrtc27 requested review of D21499: Fix PhutilTypeSpec's regex handling for PHP 8.
Jan 11 2021, 2:04 AM
jrtc27 closed D21498: Fix error handler on PHP 8.
Jan 11 2021, 2:02 AM
jrtc27 committed rARC446dcf1ccdcd: Fix error handler on PHP 8 (authored by jrtc27).
Fix error handler on PHP 8
Jan 11 2021, 2:02 AM
jrtc27 updated the diff for D21498: Fix error handler on PHP 8.

Trivially rebased for landing

Jan 11 2021, 2:01 AM

Jan 10 2021

epriestley added a comment to D21497: Suppress PHP 8 deprecation warning in __arcanist_init_script__.

Feel free to test against secure within reason if that's easier. These patches might not seem like a big deal, but stuff like this which just makes my life easier is incredibly rare, so make yourself at home.

Jan 10 2021, 10:37 PM
jrtc27 added a comment to D21497: Suppress PHP 8 deprecation warning in __arcanist_init_script__.

In trying to arc diff --update this I got an exception (but it worked with --head, which I had been using to submit each commit of the patch series). What's the best way to test out arc itself and reproduce that? Use admin.phacility.com to get a testing instance?

Jan 10 2021, 10:25 PM
epriestley added a comment to T13588: PHP 8 Compatibility.

In D21496, declaring a method private final (which is redundant, as a private method may never be overridden) causes an issue in PHP8.

Jan 10 2021, 10:25 PM · Infrastructure
epriestley added a task to D21498: Fix error handler on PHP 8: T13588: PHP 8 Compatibility.
Jan 10 2021, 10:23 PM
epriestley added a task to D21497: Suppress PHP 8 deprecation warning in __arcanist_init_script__: T13588: PHP 8 Compatibility.
Jan 10 2021, 10:23 PM
epriestley added a task to D21496: Remove final from private functions for PHP 8 compatibility: T13588: PHP 8 Compatibility.
Jan 10 2021, 10:23 PM
epriestley added revisions to T13588: PHP 8 Compatibility: D21498: Fix error handler on PHP 8, D21497: Suppress PHP 8 deprecation warning in __arcanist_init_script__, D21496: Remove final from private functions for PHP 8 compatibility.
Jan 10 2021, 10:23 PM · Infrastructure
epriestley triaged T13588: PHP 8 Compatibility as Low priority.
Jan 10 2021, 10:23 PM · Infrastructure
jrtc27 closed D21497: Suppress PHP 8 deprecation warning in __arcanist_init_script__.
Jan 10 2021, 10:21 PM
jrtc27 committed rARC930f7e117d81: Suppress PHP 8 deprecation warning in __arcanist_init_script__ (authored by jrtc27).
Suppress PHP 8 deprecation warning in __arcanist_init_script__
Jan 10 2021, 10:21 PM
epriestley accepted D21497: Suppress PHP 8 deprecation warning in __arcanist_init_script__.

Ah, great. Making this variation of the change will probably never actually matter compared to the first version, but I'll sleep at least a little better at night.

Jan 10 2021, 10:20 PM
jrtc27 retitled D21497: Suppress PHP 8 deprecation warning in __arcanist_init_script__ from Fix PHP 8 deprecation warning in __arcanist_init_script__ to Suppress PHP 8 deprecation warning in __arcanist_init_script__.
Jan 10 2021, 10:19 PM
jrtc27 added a comment to D21497: Suppress PHP 8 deprecation warning in __arcanist_init_script__.

What's the specific issue you run into with PHP8 with the existing code -- the function emits a deprecation warning when called?

Since the attack surface on the XML entity loader is huge/scary (historically, see D8049), I'd prefer to continue explicitly disabling it if we can. Although there's probably no real risk, I can imagine scenarios like some distro shipping a version of PHP which enables it by default, or users enabling it by default because they run some other software that needs it alongside Phabricator. In these cases, we're a little better off at runtime if we continue disabling the loader.

If this just raises a deprecation warning under PHP8, I'd be more comfortable "fixing" it by suppressing the warning with @ (so @libxml_disable_entity_loader(true); -- not sure how familiar you are with PHP) so that we're still making sure the loader is disabled. Is that reasonable, or does it create more problems?

Jan 10 2021, 10:19 PM
jrtc27 updated the diff for D21497: Suppress PHP 8 deprecation warning in __arcanist_init_script__.

Suppress deprecation warning with @ rather than skip the function call.

Jan 10 2021, 10:19 PM
epriestley accepted D21498: Fix error handler on PHP 8.

It's possible that third party code which installs custom error listeners via setErrorListener() that expect 'context' to be populated may exist, I'm not aware of any such code and think it probably does not exist. It would also be easy to update any such code in response to this change, so I think it's not worth retaining backward compatibility with a dummy parameter and that this is the most-desirable version of this change.

Jan 10 2021, 10:17 PM
epriestley requested changes to D21497: Suppress PHP 8 deprecation warning in __arcanist_init_script__.

What's the specific issue you run into with PHP8 with the existing code -- the function emits a deprecation warning when called?

Jan 10 2021, 10:08 PM
jrtc27 closed D21496: Remove final from private functions for PHP 8 compatibility.
Jan 10 2021, 10:05 PM
jrtc27 committed rARC3ab2b407db4a: Remove final from private functions for PHP 8 compatibility (authored by jrtc27).
Remove final from private functions for PHP 8 compatibility
Jan 10 2021, 10:05 PM
epriestley added a comment to D21496: Remove final from private functions for PHP 8 compatibility.

I added you to Blessed Committers, so you should be able to arc land this yourself. See the description of that project for more detailed instructions, or let me know if you run into issues. "Land Revision" here in the web UI should also work, or I can just pull it for you if that's easier.

Jan 10 2021, 10:02 PM
epriestley added a member for Blessed Committers: jrtc27.
Jan 10 2021, 10:01 PM
epriestley accepted D21496: Remove final from private functions for PHP 8 compatibility.

Thanks! There are some similar linters already (e.g., for final in a final class, or final on an abstract method) but this particular combination (private + final) slipped through. I'll add a linter so these don't get re-introduced and apply an equivalent change to Phabricator.

Jan 10 2021, 10:00 PM
epriestley removed a reviewer for D21496: Remove final from private functions for PHP 8 compatibility: Unknown Object (Owners Package).
Jan 10 2021, 9:55 PM
jrtc27 requested review of D21498: Fix error handler on PHP 8.
Jan 10 2021, 9:54 PM
jrtc27 requested review of D21497: Suppress PHP 8 deprecation warning in __arcanist_init_script__.
Jan 10 2021, 9:54 PM
jrtc27 requested review of D21496: Remove final from private functions for PHP 8 compatibility.
Jan 10 2021, 9:54 PM

Jan 8 2021

yuanchen.zhu added a comment to T11091: Make `arc patch` try the local working copy and staging areas.

Just want to add a note that with git lfs managed files, arc patch won't work unless one fetch the ref tag and then the lfs blobs from the staging server first. See https://discourse.phabricator-community.org/t/arc-patch-fails-with-git-lfs-files/2447/3

Jan 8 2021, 2:06 AM · Haskell.org, Arcanist

Dec 22 2020

flippingtables updated flippingtables.
Dec 22 2020, 1:35 PM

Dec 18 2020

epriestley added a comment to T13230: Native Applications.

As of macOS X 11 (Big Sur), php on the CLI emits:

Dec 18 2020, 12:48 AM · Phacility

Dec 3 2020

epriestley added a comment to T13269: Improve initial implementations of Workboard triggers and groups.

That seems reasonable. I also ran into a couple of other suggestions elsewhere:

Dec 3 2020, 4:32 PM · Workboards (v3)
20after4 added a comment to T13269: Improve initial implementations of Workboard triggers and groups.

Off the wall suggestion: how about a trigger that sets the subtype:

Dec 3 2020, 7:31 AM · Workboards (v3)