In T3277#254315, @epriestley wrote:grep -v master | grep -v '^[0-9a-f.]*$'
This part may prove slightly trickier to implement correctly in the general case.
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Feed All Stories
All Stories
All Stories
Yesterday
Yesterday
grep -v master | grep -v '^[0-9a-f.]*$'
+1 for this command. We have use a web-based UI for landing so our branches stick around locally. To fix this I'm currently using:
arc branches | grep ' Closed ' | sed 's/[^ ]* //' | sed 's/ .*//' | grep -v master | grep -v '^[0-9a-f.]*$' | xargs git br -D
epriestley changed the visibility for T13589: Git may interpret refnames as flags in some commands which accept both refs and paths.
epriestley changed the visibility for T13589: Git may interpret refnames as flags in some commands which accept both refs and paths.
Thu, Jan 14
Thu, Jan 14
Recently smtp-relay.gmail.com stopped accepting email from our Phabricator instance because it turns out Phabricator was sending HELO localhost.localdomain instead of HELO smtp-relay.gmail.com when doing the SMTP connection.
Wed, Jan 13
Wed, Jan 13
epriestley updated the task description for T13559: Include "Moved/Copied" gutter in 1-up diffs, and add aural cues, coverage, and fix inline counting.
epriestley updated the task description for T13559: Include "Moved/Copied" gutter in 1-up diffs, and add aural cues, coverage, and fix inline counting.
epriestley updated the task description for T13072: Merge Harbormaster BuildCommand into BuildMessage.
epriestley updated the task description for T13559: Include "Moved/Copied" gutter in 1-up diffs, and add aural cues, coverage, and fix inline counting.
epriestley committed rPea9cb0b625fb: Disambiguate Git ref selectors in some Git command line invocations (authored by epriestley).
Disambiguate Git ref selectors in some Git command line invocations
epriestley committed rARCb2e715fc5a9c: Provide "gitsprintf(...)" and disambiguate Git ref selectors (authored by epriestley).
Provide "gitsprintf(...)" and disambiguate Git ref selectors
Tue, Jan 12
Tue, Jan 12
epriestley updated the diff for D21510: Disambiguate Git ref selectors in some Git command line invocations.
- Include fix for a "blame" callsite.
epriestley requested review of D21510: Disambiguate Git ref selectors in some Git command line invocations.
epriestley updated the task description for T13589: Git may interpret refnames as flags in some commands which accept both refs and paths.
epriestley requested review of D21509: Provide "gitsprintf(...)" and disambiguate Git ref selectors.
I'm not completely thrilled about maintaining PHP builtin webserver support...
epriestley triaged T13589: Git may interpret refnames as flags in some commands which accept both refs and paths as Normal priority.
epriestley committed rPc63c2aadef3a: Support "control" and "return/enter" in the remarkup rule for keystrokes (authored by epriestley).
Support "control" and "return/enter" in the remarkup rule for keystrokes
Mon, Jan 11
Mon, Jan 11
In T13575#254280, @epriestley wrote:I added M1, etc., to the ignored list in D21507.
I think this is now resolved. I'm not completely thrilled about maintaining PHP builtin webserver support because I think use is very limited, but since I'm currently using it I expect to support it at least until I summon the nerve to deal with Homebrew.
epriestley updated the summary of D21506: Fix reading of the request path when running the PHP builtin webserver.
epriestley committed rP18f049a282f4: Fix reading of the request path when running the PHP builtin webserver (authored by epriestley).
Fix reading of the request path when running the PHP builtin webserver
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
epriestley requested review of D21507: Add "M<digit>" and "P<digit>" to the default Remarkup ignore list.
epriestley requested review of D21506: Fix reading of the request path when running the PHP builtin webserver.
Guess I should probably add M1 to the remarkup blocklist now.
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.
jrtc27 committed rARC172381260ee7: Fix pyflakes tests for recent pyflakes versions (authored by jrtc27).
Fix pyflakes tests for recent pyflakes versions
jrtc27 committed rARC09cff8611ba4: Fix ArcanistJSHintLinterTestCase::testLinter for recent JSHint (authored by jrtc27).
Fix ArcanistJSHintLinterTestCase::testLinter for recent JSHint
jrtc27 committed rARCf64eb04300b4: Fix PhutilOAuth1FutureTestCase::testOAuth1SigningWithJIRAExamples for PHP 8 (authored by jrtc27).
Fix PhutilOAuth1FutureTestCase::testOAuth1SigningWithJIRAExamples for PHP 8
jrtc27 committed rARC9589fd18662f: Fix PhutilUTF8TestCase::testUTF8Convert for PHP 8 (authored by jrtc27).
Fix PhutilUTF8TestCase::testUTF8Convert for PHP 8
Rebased patch series
Rebased patch series
jrtc27 updated the diff for D21502: Fix PhutilOAuth1FutureTestCase::testOAuth1SigningWithJIRAExamples for PHP 8.
Rebased patch series
Catch Throwable in the test rather than converting to Exception inside phutil_utf8_convert
jrtc27 committed rARC687cb41ace6c: Fix ArcanistFormattedStringXHPASTLinterRule on older PHP after D21500 (authored by jrtc27).
Fix ArcanistFormattedStringXHPASTLinterRule on older PHP after D21500
jrtc27 requested review of D21505: Fix ArcanistFormattedStringXHPASTLinterRule on older PHP after D21500.
So I don't forget:
Ah even better.
Oh, or the array('C', 'm') version appears to work properly when invoked as $callback in all versions of PHP since PHP 5.4:
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.
Oh, I think the reason to use $callback(...) is the behavior of the reference parameters. Yikes.
Here's some evidence to support that theory:
Ah, I think the issue is that xsprintf() internally does this :
Stay under 80 characters (and format the other long preg_match a bit more nicely)
See T10038 for general context.
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.
jrtc27 committed rARC90ac9a2ff281: Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8 (authored by jrtc27).
Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8
jrtc27 committed rARC0adef03fdfee: Fix PhutilTypeSpec's regex handling for PHP 8 (authored by jrtc27).
Fix PhutilTypeSpec's regex handling 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.
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.
🤷
preg_match() in all modern versions of PHP seems to be willing to accept an object with __toString() as the first parameter:
In D21500#272930, @epriestley wrote: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.
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.
In D21501#272924, @epriestley wrote:Does this just break a test or something?
Does this just break a test or something?
epriestley accepted D21502: Fix PhutilOAuth1FutureTestCase::testOAuth1SigningWithJIRAExamples for PHP 8.
Thanks!
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).
jrtc27 added a revision to T13588: PHP 8 Compatibility: D21499: Fix PhutilTypeSpec's regex handling for PHP 8.
jrtc27 added a revision to T13588: PHP 8 Compatibility: D21500: Fix ArcanistFormattedStringXHPASTLinterRule for PHP 8.
jrtc27 added a revision to T13588: PHP 8 Compatibility: D21501: Fix PhutilUTF8TestCase::testUTF8Convert for PHP 8.