Page MenuHomePhabricator

joshuaspence (Joshua Spence)
Code Monkey

Projects (91)

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Thursday

  • Clear sailing ahead.

User Details

User Since
Oct 9 2013, 12:25 AM (581 w, 6 d)
Availability
Available

Recent Activity

Jun 1 2021

bbrdaric awarded Changelog a Heartbreak token.
Jun 1 2021, 8:41 AM

Aug 13 2019

jcox awarded Changelog a Love token.
Aug 13 2019, 4:30 PM

Jul 18 2019

joshuaspence created P2121 bulk_move_columns.php.
Jul 18 2019, 10:34 PM
joshuaspence created P2120 ConduitIterator.php.
Jul 18 2019, 10:33 PM

Jul 8 2019

joshuaspence abandoned D20643: Allow daemons to be run in the foreground.
Jul 8 2019, 6:20 PM
joshuaspence requested review of D20643: Allow daemons to be run in the foreground.
Jul 8 2019, 3:02 AM

May 31 2019

joshuaspence abandoned D19795: Allow searching for Maniphest tasks by parent/subtask ID.
May 31 2019, 8:16 AM

May 27 2019

joshuaspence added a comment to D20557: Allow linter to be passed into `ArcanistLinterTestCase::executeTestsInDirectory`.

This is the last of my linter improvement diffs for a while.

May 27 2019, 9:57 PM
joshuaspence requested review of D20557: Allow linter to be passed into `ArcanistLinterTestCase::executeTestsInDirectory`.
May 27 2019, 9:51 PM

May 26 2019

joshuaspence added inline comments to D20555: Add a hook method that is called before `ArcanistLinter::getLinterConfigurationOptions`.
May 26 2019, 10:19 PM

May 24 2019

joshuaspence requested review of D20555: Add a hook method that is called before `ArcanistLinter::getLinterConfigurationOptions`.
May 24 2019, 4:45 AM
joshuaspence updated the diff for D20523: Add a hook method that is called after `ArcanistLinter::setEngine`.

Rebase

May 24 2019, 12:22 AM

May 23 2019

joshuaspence updated the diff for D20526: Make it easier to parse external linter versions.

Minor

May 23 2019, 10:20 PM
joshuaspence updated the summary of D20526: Make it easier to parse external linter versions.
May 23 2019, 10:10 PM

May 22 2019

joshuaspence updated the diff for D20526: Make it easier to parse external linter versions.

Implement parseVersionOutput in ArcanistExternalLinter so that it can be called from within another instance of ArcanistExternalLinter

May 22 2019, 3:27 AM
joshuaspence updated the summary of D20526: Make it easier to parse external linter versions.
May 22 2019, 3:24 AM
joshuaspence updated the diff for D20542: Be more strict when checking linter versions.

Rebase

May 22 2019, 1:59 AM
joshuaspence requested review of D20542: Be more strict when checking linter versions.
May 22 2019, 1:25 AM
joshuaspence requested review of D20541: Use the checkstyle reporter with JSHint.
May 22 2019, 1:00 AM
joshuaspence updated the diff for D20526: Make it easier to parse external linter versions.

Rebase

May 22 2019, 12:50 AM
joshuaspence added a comment to D20532: Fix handling of empty line/column in linter tests.

Unrelated but I noticed that ArcanistBundleTestCase::testGitRepository fails locally for me when running arc unit --everything:

May 22 2019, 12:37 AM
joshuaspence updated the summary of D20526: Make it easier to parse external linter versions.
May 22 2019, 12:32 AM

May 21 2019

joshuaspence updated the summary of D20532: Fix handling of empty line/column in linter tests.
May 21 2019, 8:34 AM
joshuaspence updated the diff for D20532: Fix handling of empty line/column in linter tests.

Remove description since it can span multiple lines

May 21 2019, 8:34 AM
joshuaspence added a comment to D20526: Make it easier to parse external linter versions.

Semi-related thought: the current behavior of getVersion (return a string if successful, false if unable to determine the version or null if no version exists) is rather awkward and I feel like we should throw some sort of ArcanistUnableToDetermineLinterVersionException instead of returning false.

May 21 2019, 8:18 AM
joshuaspence requested review of D20532: Fix handling of empty line/column in linter tests.
May 21 2019, 8:02 AM
joshuaspence added a revision to T6854: Modify the `lint-test` file format to allow for assertions against linter codes: D20532: Fix handling of empty line/column in linter tests.
May 21 2019, 8:02 AM · Lint
joshuaspence closed D11176: Modify the `lint-test` file format to allow for more powerful assertions.
May 21 2019, 3:48 AM
joshuaspence committed rARCdd514e268b2c: Modify the `lint-test` file format to allow for more powerful assertions (authored by joshuaspence).
Modify the `lint-test` file format to allow for more powerful assertions
May 21 2019, 3:48 AM
joshuaspence closed T6854: Modify the `lint-test` file format to allow for assertions against linter codes as Resolved by committing rARCdd514e268b2c: Modify the `lint-test` file format to allow for more powerful assertions.
May 21 2019, 3:48 AM · Lint
joshuaspence updated the diff for D11176: Modify the `lint-test` file format to allow for more powerful assertions.

Rebase

May 21 2019, 3:47 AM

May 20 2019

joshuaspence updated the diff for D20526: Make it easier to parse external linter versions.

Remove unrelated change

May 20 2019, 2:07 AM
joshuaspence added inline comments to D20526: Make it easier to parse external linter versions.
May 20 2019, 2:05 AM
joshuaspence requested review of D20526: Make it easier to parse external linter versions.
May 20 2019, 1:57 AM

May 17 2019

joshuaspence abandoned D11773: [Draft] Convert `ArcanistScriptAndRegexLinter` to `ArcanistExternalLinter`.

Not actively working on this.

May 17 2019, 2:24 AM
joshuaspence abandoned D10741: Added SCSS-Lint linter.

Moving this to [[https://github.com/freelancer/flarc | flarc]].

May 17 2019, 2:22 AM
joshuaspence abandoned D11657: Add a ShellCheck linter.

Moving this to [[https://github.com/freelancer/flarc | flarc]].

May 17 2019, 2:20 AM
joshuaspence abandoned D15133: Allow objects implementing `ArrayAccess` to the passed to `idx`.

Not actively working on this.

May 17 2019, 1:52 AM
joshuaspence abandoned D14936: Convert passphrase to edit engine.

Not actively working on this.

May 17 2019, 1:52 AM
joshuaspence abandoned D14655: Add an ID field to `PhabricatorBotTarget`.

This code is gone.

May 17 2019, 1:51 AM
joshuaspence abandoned D14616: Consolidate two linter rules.

Not actively working on this.

May 17 2019, 1:51 AM
joshuaspence abandoned D14482: Improve FontAwesome icons.

Not actively working on this.

May 17 2019, 1:51 AM
joshuaspence abandoned D14474: Improve a bunch of translation strings.

Not actively working on this.

May 17 2019, 1:50 AM
joshuaspence abandoned D14460: Provide more context to naming hook linter.

Not actively working on this.

May 17 2019, 1:15 AM
joshuaspence abandoned D14416: Make all comments quotable.

Not actively working on this.

May 17 2019, 1:13 AM
joshuaspence abandoned D14074: Add escaping for Checkstyle output.

Not actively working on this.

May 17 2019, 1:13 AM
joshuaspence abandoned D13373: Separate interfaces in library maps.

Not actively working on this.

May 17 2019, 1:10 AM
joshuaspence abandoned D13271: Rename DoorkeeperBridge subclasses.

Not actively working on this.

May 17 2019, 1:10 AM
joshuaspence abandoned D12634: Extend revert edges.

Not actively working on this.

May 17 2019, 1:09 AM
joshuaspence abandoned D11504: Add a linter rule for PHP indentation.

Not actively working on this.

May 17 2019, 1:09 AM

May 16 2019

joshuaspence requested review of D20523: Add a hook method that is called after `ArcanistLinter::setEngine`.
May 16 2019, 1:58 AM

May 15 2019

joshuaspence committed rARC82445bb60534: Let lint rules support anonymous classes (authored by wjiang).
Let lint rules support anonymous classes
May 15 2019, 1:11 AM
joshuaspence closed D19741: Let lint rules support anonymous classes.
May 15 2019, 1:11 AM
joshuaspence committed rPHU6c83b169bc18: Fix class attribute node in anonymous class (authored by wjiang).
Fix class attribute node in anonymous class
May 15 2019, 12:56 AM
joshuaspence closed D19740: Fix class attribute node in anonymous class.
May 15 2019, 12:55 AM

May 14 2019

joshuaspence abandoned D18379: Add a "Reviewed By" Herald condition.
May 14 2019, 11:25 PM
joshuaspence committed rARC6a8e76db329e: Allow `buildFutures` and `resolveFutures` to be overridden (authored by joshuaspence).
Allow `buildFutures` and `resolveFutures` to be overridden
May 14 2019, 11:10 PM
joshuaspence closed D19730: Allow `buildFutures` and `resolveFutures` to be overridden.
May 14 2019, 11:10 PM
joshuaspence committed rARCfceac878f112: Allow `setCustomSeverityRules` to be overridden in subclasses (authored by joshuaspence).
Allow `setCustomSeverityRules` to be overridden in subclasses
May 14 2019, 11:06 PM
joshuaspence closed D20514: Allow `setCustomSeverityRules` to be overridden in subclasses.
May 14 2019, 11:06 PM
joshuaspence committed rARC4f583dded366: Call `$linter->setEngine` in linter tests (authored by joshuaspence).
Call `$linter->setEngine` in linter tests
May 14 2019, 11:02 PM
joshuaspence closed D20515: Call `$linter->setEngine` in linter tests.
May 14 2019, 11:02 PM
joshuaspence added a comment to D19730: Allow `buildFutures` and `resolveFutures` to be overridden.

Thanks for the reviews :)

May 14 2019, 2:23 PM
joshuaspence accepted D20505: Remove unnecessary "," from Pylint version regex.
May 14 2019, 12:40 AM
joshuaspence accepted D20510: When a user pastes a Phabricator URI into the search box, redirect to the URI.
May 14 2019, 12:39 AM
joshuaspence accepted D20511: Provide an extension point for handling hyperlinks in remarkup in a special way.
May 14 2019, 12:38 AM
joshuaspence accepted D20512: Specialize rendering of self-URIs in the form "/X123".
May 14 2019, 12:36 AM
joshuaspence requested review of D19730: Allow `buildFutures` and `resolveFutures` to be overridden.
May 14 2019, 12:32 AM
joshuaspence updated the summary of D20514: Allow `setCustomSeverityRules` to be overridden in subclasses.
May 14 2019, 12:30 AM

May 13 2019

joshuaspence updated the diff for D20514: Allow `setCustomSeverityRules` to be overridden in subclasses.

Remove a TODO comment that is no longer relevant

May 13 2019, 11:48 PM
joshuaspence requested review of D20515: Call `$linter->setEngine` in linter tests.
May 13 2019, 4:28 AM
joshuaspence requested review of D20514: Allow `setCustomSeverityRules` to be overridden in subclasses.
May 13 2019, 4:19 AM

May 10 2019

joshuaspence edited the content of Community Resources.
May 10 2019, 12:52 AM

May 3 2019

joshuaspence edited the content of Community Resources.
May 3 2019, 4:59 AM
joshuaspence edited the content of Community Resources.
May 3 2019, 4:58 AM

Apr 26 2019

joshuaspence requested review of D20481: Apply custom fields implemented using edges to apply validation logic.
Apr 26 2019, 4:19 AM

Apr 20 2019

joshuaspence added a comment to T13277: In repositories, realign "Track Only", "Autoclose", and "Publish/Notify" toward "Permanent Refs".

I believe there is very little reason for the "Autoclose" and "Publish" behaviors to actually be separate. That is, there are very few use cases where users want a commit to trigger only Herald or only feed or only audits. These use cases do exist (see T9210 for an example of "Herald, No Feed") but they're overwhelmingly niche and off-label.

Apr 20 2019, 2:19 AM · Plans, Diffusion

Apr 19 2019

remusvrm awarded Changelog a Like token.
Apr 19 2019, 7:09 PM

Mar 1 2019

joshuaspence awarded D20221: Improve performance of "arc diff" updates for changes with large diff text a Burninate token.
Mar 1 2019, 1:00 AM

Feb 11 2019

joshuaspence awarded D20138: Improve top-level fatal exception handling in PHP 7+ a 100 token.
Feb 11 2019, 11:42 PM
joshuaspence awarded D20143: Let "phlog()" log Throwables a 100 token.
Feb 11 2019, 11:40 PM
joshuaspence awarded D20142: Let the top-level exception handler dump a stack trace if we reach debug mode before things go sideways a 100 token.
Feb 11 2019, 11:39 PM
joshuaspence added a comment to D20116: Explicitly fail if `phutil_build_http_querystring()` is passed a map of nonscalars.

Please report bugs to Discourse, not by making comments on changes or commits. If you believe you know which change caused a problem, you can link to it from your bug report on Discourse. It's easy for us to keep track of threads, and hard to keep track of random comments on already-closed changes. Thanks!

Feb 11 2019, 7:26 PM
joshuaspence added inline comments to D20126: Support a wider range of "Audit" rules for Owners packages.
Feb 11 2019, 6:45 AM
joshuaspence added a comment to D20116: Explicitly fail if `phutil_build_http_querystring()` is passed a map of nonscalars.

This broke some custom fields. Specifically, this custom field results in Phabricator fataling:

Feb 11 2019, 3:31 AM

Jan 21 2019

joshuaspence added a watcher for Plans: joshuaspence.
Jan 21 2019, 1:40 AM

Jan 11 2019

PXke awarded T4558: Make Diviner useful for third-parties a Mountain of Wealth token.
Jan 11 2019, 5:46 PM · Diviner

Dec 13 2018

joshuaspence added a comment to T13219: When returning a writable connection as a "r" connection, label it so it can be reused as a "w" connection.

I am seeing a similar issue on our install:

[2018-12-13 12:20:12] EXCEPTION: (PhabricatorClusterImproperWriteException) Unable to establish a write-mode connection (to application database "phabricator_repository") because Phabricator is in read-only mode. Whatever you are trying to do does not function correctly in read-only mode. at [<phabricator>/src/infrastructure/storage/lisk/PhabricatorLiskDAO.php:119] arcanist(head=stable, ref.master=d9a4293ae734, ref.stable=45a8d22c74a6), phabricator(head=stable, ref.master=2951694c2737, ref.stable=237a2a190984), phlab(head=master, ref.master=564c60d09ff4), phutil(head=stable, ref.master=dd136d1c3712, ref.stable=414a4c6abb1b)
  #0 PhabricatorLiskDAO::raiseImproperWrite(string) called at [<phabricator>/src/infrastructure/storage/lisk/PhabricatorLiskDAO.php:60]
  #1 PhabricatorLiskDAO::establishLiveConnection(string) called at [<phabricator>/src/infrastructre/storage/lisk/LiskDAO.php:1011]
  #2 LiskDAO::establishConnection(string) called at [<phabricator>/src/applications/repository/stora... (619 more bytes) ... at [<phutil>/src/future/exec/ExecFuture.php:380]
[13-Dec-2018 12:20:12 Etc/UTC] arcanist(head=stable, ref.master=d9a4293ae734, ref.stable=45a8d22c74a6), phabricator(head=stable, ref.master=2951694c2737, ref.stable=237a2a190984), phlab(head=master, ref.master=564c60d09ff4), phutil(head=stable, ref.master=dd136d1c3712, ref.stable=414a4c6abb1b)
[13-Dec-2018 12:20:12 Etc/UTC]   #0 <#3> ExecFuture::resolvex() called at [<phabricator>/src/applications/repository/daemon/PhabricatorRepositoryPullLocalDaemon.php:446]
[13-Dec-2018 12:20:12 Etc/UTC]   #1 phlog(PhutilProxyException) called at [<phabricator>/src/applications/repository/daemon/PhabricatorRepositoryPullLocalDaemon.php:453]
[13-Dec-2018 12:20:12 Etc/UTC]   #2 PhabricatorRepositoryPullLocalDaemon::resolveUpdateFuture(PhabricatorRepository, ExecFuture, integer) called at [<phabricator>/src/applications/repository/daemon/PhabricatorRepositoryPullLocalDaemon.php:222]
[13-Dec-2018 12:20:12 Etc/UTC]   #3 PhabricatorRepositoryPullLocalDaemon::run() called at [<phutil>/src/daemon/PhutilDaemon.php:219]
[13-Dec-2018 12:20:12 Etc/UTC]   #4 PhutilDaemon::execute() called at [<phutil>/scripts/daemon/exec/exec_daemon.php:131]
Dec 13 2018, 11:40 PM · Clusters, Infrastructure
joshuaspence added a comment to T13219: When returning a writable connection as a "r" connection, label it so it can be reused as a "w" connection.

I am seeing a similar issue on our install:

Dec 13 2018, 11:38 PM · Clusters, Infrastructure
joshuaspence accepted D19880: Fix another qsprintf() straggler in "Has Open Subtasks".

Looks about right.

Dec 13 2018, 1:07 AM
joshuaspence edited P2111 (An Untitled Masterwork).
Dec 13 2018, 12:36 AM
joshuaspence edited P2111 (An Untitled Masterwork).
Dec 13 2018, 12:25 AM
joshuaspence created P2111 (An Untitled Masterwork).
Dec 13 2018, 12:24 AM

Dec 12 2018

joshuaspence added a comment to T12145: Resource allocator does not create new host resources when one is already active.

I'm having some trouble getting this new behaviour (which IIUC basically means that multiple hosts in a Drydock pool should be load-balanced across). In "active resources" I see three Drydock hosts, which all belong to the same Almanac service. In "active leases", however, I see only a single host lease and many working copy leases.

Dec 12 2018, 10:15 AM · Bug Report, Drydock

Dec 9 2018

joshuaspence added a comment to T12145: Resource allocator does not create new host resources when one is already active.

I'm having some trouble getting this new behaviour (which IIUC basically means that multiple hosts in a Drydock pool should be load-balanced across). In "active resources" I see three Drydock hosts, which all belong to the same Almanac service. In "active leases", however, I see only a single host lease and many working copy leases.

Dec 9 2018, 11:39 PM · Bug Report, Drydock

Dec 7 2018

joshuaspence accepted rP5d54f26daca8: Support reading and querying Almanac service PHIDs via "diffusion.repository..
Dec 7 2018, 2:34 AM

Nov 21 2018

joshuaspence added a comment to T7643: Improve prose diffs (was: description changes don't generate usable diffs).

I do have a real-life example where the prose diff engine rendered a suboptimal diff. I was able to fix it by changing the maximum length of the edit distance matrix from 128 to 256.

Nov 21 2018, 5:44 AM · Prioritized, Transactions

Nov 19 2018

joshuaspence accepted D19822: Allow "Can Configure Application" permissions to be configured.

I feel like custom forms should have their own edit permissions can that access can be managed more granularly.

Nov 19 2018, 1:21 AM

Nov 8 2018

joshuaspence requested review of D19795: Allow searching for Maniphest tasks by parent/subtask ID.
Nov 8 2018, 12:13 PM

Nov 1 2018

joshuaspence accepted D19768: Fix a bug where "View as Query" could replace a saved query row by ID, causing workboard 404s.
Nov 1 2018, 1:58 AM