Page MenuHomePhorge

20after4 (Mukunda Modell)
ContributorAdministrator

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Tuesday

  • Clear sailing ahead.

User Details

User Since
Jun 12 2021, 22:11 (184 w, 16 h)
Roles
Administrator
Availability
Available
Timezone
US Central

Phabricator, Phorge.it & Me

I started working with Phabricator in 2012 and I've been a contributor to the open source project since 2014. I also maintained Wikimedia's Fork of Phabricator, along with several extensions until 2021. When Phacility announced the end of active maintenance for Phabricator, I was involved in organizing a group of interested parties to take over community support of the project. Ultimately that effort has evolved into this project that you are currently viewing.

See L1 Phorge Vision Statement for the project vision statement.

Employment

Previously:

  • Senior Engineer at play.co.
  • Release Engineer at the Wikimedia Foundation (2014 to 2022).
  • Back-end and DevOps Engineer at deviantArt.com (2009 to 2013)

Disclaimer & Disclosure

Any opinions that I express do not necessarily represent those of current or previous employers. My participation in the phorge community is in a personal capacity and not as part of my employment.

Recent Activity

Wed, Dec 11

20after4 updated the answer details for Q159: Is MFA requiring all factors intentional? (Answer 200).
Wed, Dec 11, 03:31
20after4 added Q159: Is MFA requiring all factors intentional? (Answer 200).
Wed, Dec 11, 03:28
20after4 accepted D25845: Repository Identity "Automatically Detected User": don't trust unverified emails.
Wed, Dec 11, 03:27

Tue, Dec 10

20after4 added a comment to T15965: Repository Identity "Automatically Detected User": it reads unverified emails, with spam concerns.

If there are no objections I would be happy to accept the diff. @speck are your concerns addressed or should we continue discussion / consider other options?

Tue, Dec 10, 18:15 · Spam mitigation, Diffusion, Security
20after4 added a comment to T15965: Repository Identity "Automatically Detected User": it reads unverified emails, with spam concerns.

What is changing is, that unverified email will not match your unverified email as default, so that should need these 2 clicks manual configs (or, find a way to verify the email)

Tue, Dec 10, 18:10 · Spam mitigation, Diffusion, Security
20after4 added a comment to T15965: Repository Identity "Automatically Detected User": it reads unverified emails, with spam concerns.

Another edge case: Most of my contributions to Phorge happened as part of my work for Wikimedia. Those commits are under an email address that I no longer have access to, since I am no longer employed at the Wikimedia Foundation.

Tue, Dec 10, 16:47 · Spam mitigation, Diffusion, Security

Thu, Nov 28

aklapper awarded T15961: Should we adopt modern PHP type hints in Phorge source code? a Like token.
Thu, Nov 28, 16:55 · Phorge Development Tools, Discussion Needed
valerio.bozzolan awarded T15961: Should we adopt modern PHP type hints in Phorge source code? a Like token.
Thu, Nov 28, 14:34 · Phorge Development Tools, Discussion Needed
20after4 added a comment to Q158: Is there a way to create a task in Maniphest via a webhook? (Answer 198).

Yes maniphest.edit is the modern way to do it.

Thu, Nov 28, 03:13
20after4 updated the task description for T15961: Should we adopt modern PHP type hints in Phorge source code?.
Thu, Nov 28, 03:10 · Phorge Development Tools, Discussion Needed
20after4 created T15961: Should we adopt modern PHP type hints in Phorge source code?.
Thu, Nov 28, 03:10 · Phorge Development Tools, Discussion Needed

Oct 20 2024

20after4 accepted D25828: ManiphestReportController: Separate legacy and synthetic data handling.

Nice, it's a good step towards cleaning up this mess!

Oct 20 2024, 21:08
20after4 added Q156: How to support project commercialy? (Answer 197).
Oct 20 2024, 21:01
20after4 accepted D25809: ArcanistBundleTestCase: fix support of non-English environments.
Oct 20 2024, 20:43
20after4 accepted D25829: Update mimemailparser from May 2011 version to 8.0.4.

It would be nice to have some unit tests for this but that seems like it might be quite a bit of work to implement.

Oct 20 2024, 20:37

Oct 18 2024

20after4 added a comment to Q153: php-fpm memory leak.
  1. Can you add a swap file to allow memory usage above 8gb? This will have poor performance but it may allow repo processing to continue.
  2. Can you tell if there is a repo which is still importing? Normal day to day repo tracking shouldn’t require tons of ram so the only situation that I can imagine needing this much ram is importing a large repository.
Oct 18 2024, 17:37

Oct 9 2024

20after4 added a comment to T15947: Add method to query if user is member of a list of projects.

Maybe express it as allowed by Policy xxx? (Related to T15277)

Oct 9 2024, 18:23 · Feature Requests
20after4 added a comment to T15947: Add method to query if user is member of a list of projects.

So essentially this:

Oct 9 2024, 18:17 · Feature Requests
20after4 added a comment to T15948: Allow public API access when equivalent public web access exists.

If I were starting today I would probably design the back-end APIs first, then make the web interface derive from those APIs, such that web requests and api requests are not really any different, at least with regard to enforcing access controls.

Oct 9 2024, 18:07 · Conduit, Phorge
20after4 accepted D25826: Avoid RuntimeException passing bogus "service" parameter to Diffusion commit view.
Oct 9 2024, 08:07
20after4 awarded D25826: Avoid RuntimeException passing bogus "service" parameter to Diffusion commit view a Yellow Medal token.
Oct 9 2024, 08:07
20after4 awarded D25827: Allow zooming on pages a Yellow Medal token.
Oct 9 2024, 08:06
20after4 accepted D25827: Allow zooming on pages.

This one seems worthy of a rubber stamp. And a gold star.

Oct 9 2024, 08:05
20after4 updated the answer details for Q155: Is there a way to add new tokens? (Answer 192).
Oct 9 2024, 08:03
20after4 added Q155: Is there a way to add new tokens? (Answer 192).
Oct 9 2024, 08:00
20after4 added a comment to Q153: php-fpm memory leak.

Are you importing some huge git repo or something? I haven't seen a lot of OOM with php-fpm on phorge/phabricator. It's generally not been an issue in the past so this is either a new bug or something specific to the environment. Then again, I've almost always ran Phorge with much more than 8GB of ram available.

Oct 9 2024, 07:50
20after4 added a comment to Q147: How does one get the value of a custom field in a custom field extension? (Answer 183).

For another example, here is a fairly straightforward use of that API which takes place entirely outside of a custom field subclass:

Oct 9 2024, 07:41
20after4 added a comment to Q147: How does one get the value of a custom field in a custom field extension? (Answer 183).

There is a pretty complicated and not really easy to follow subclass of ManiphestCustomField over here: https://phabricator.wikimedia.org/source/phab-extensions/browse/wmf%252Fstable/src/customfields/ReleaseDetailsCustomField.php

Oct 9 2024, 07:33
20after4 added a comment to Q147: How does one get the value of a custom field in a custom field extension? (Answer 183).

@keithzg what you might be missing is

$object = $this->getObject()
Oct 9 2024, 07:31
20after4 updated subscribers of T15501: Voluntary Usage Survey App.

There is a significant amount of Phabricator dark matter out there - companies/people using the software, it works well enough, not really easy to know they exist or anything about their usage. I'm sure at least some of them have moved to Phorge. Automattic/wordpress.com have moved to Phorge and I wasn't even aware that they were using Phabricator before that. This is despite the fact that I did a pretty extensive amount of research to identify every company using Phabricator back in ~2019 as part of my work for Wikimedia, with the goal of reaching out and trying to organize an informal Phabricator users group. We had the idea that the various corporate users probably had good reasons to be collaborating and at least talking to each other since most of them were not active in the upstream project. Anyway, that never really panned out, although it did trigger a flurry of interest and some ongoing discussions via email (maybe even one video meeting but I can't remember the details now.)

Oct 9 2024, 07:16 · Discussion Needed

Jul 23 2024

20after4 added a comment to T15891: Ineffective instanceof check in PhabricatorMySQLSetupCheck:shouldUseMySQLSearchEngine().

I think line 392 should be:

Jul 23 2024, 21:15

Jul 1 2024

20after4 added a comment to T15744: Render html color codes in remarkup.

I was unaware of `#0969DA` syntax from github/gitlab.

Jul 1 2024, 02:55 · Discussion Needed, Remarkup
20after4 added a comment to T15744: Render html color codes in remarkup.

I was unaware of #0969DA syntax from github/gitlab. I'm not sure if I like that syntax better than {} but I am generally in favor of using the same syntax as other systems in order to converge towards defacto standardization.

Jul 1 2024, 02:46 · Discussion Needed, Remarkup
20after4 updated the task description for T15873: Consider supporting OpenCtx.
Jul 1 2024, 01:27
20after4 created T15873: Consider supporting OpenCtx.
Jul 1 2024, 01:26

Jun 22 2024

20after4 added a comment to D25697: Run celerity map after rP1fa8c79b1ef86a9edda575b582b18fa24d60ea1f.

I obviously failed to run ./bin/celerity map one more time before running arc diff.

Jun 22 2024, 21:20
20after4 accepted D25697: Run celerity map after rP1fa8c79b1ef86a9edda575b582b18fa24d60ea1f.
Jun 22 2024, 21:19

Apr 29 2024

20after4 added a comment to T15802: Regression: HTML entities rendered as plain text in config option descriptions.

Odd, I can't quite figure out how this would interfere with //Optional list<string>.//

Apr 29 2024, 14:01

Apr 26 2024

20after4 added Q133: Tags instead of subtypes (Answer 166).
Apr 26 2024, 00:27

Apr 25 2024

Iniquity awarded T15694: Consider adopting the "search results context highlighting" feature from Wikimedia's fork a Love token.
Apr 25 2024, 19:08

Apr 23 2024

20after4 closed D25540: Add PhutilRemarkupHexColorCodeRule, a new remarkup rule to format color codes.
Apr 23 2024, 21:45
20after4 committed rP4d12d014fd9d: Add PhutilRemarkupHexColorCodeRule, a new remarkup rule to format color codes.
Add PhutilRemarkupHexColorCodeRule, a new remarkup rule to format color codes
Apr 23 2024, 21:45
20after4 added a comment to D25540: Add PhutilRemarkupHexColorCodeRule, a new remarkup rule to format color codes.

I think the current syntax should be ok because it isn't normal to use {} around a project name. And my regex only matches exactly 3 or 6 hex digits, as demonstrated in the hex-color-code.txt test file.

Apr 23 2024, 21:42
20after4 updated the answer details for Q128: How deeply is Ponder integrated with the rest of Phorge? (Answer 161).
Apr 23 2024, 21:35
20after4 added Q128: How deeply is Ponder integrated with the rest of Phorge? (Answer 161).
Apr 23 2024, 21:33
20after4 updated the answer wiki for Q130: How to join the group "Trusted Contributors"?.
Apr 23 2024, 21:26
20after4 updated the answer wiki for Q130: How to join the group "Trusted Contributors"?.
Apr 23 2024, 21:26
20after4 closed Q130: How to join the group "Trusted Contributors"? as resolved.
Apr 23 2024, 21:24
20after4 added a comment to Q130: How to join the group "Trusted Contributors"? (Answer 160).

Trusted Contributors membership granted.

Apr 23 2024, 21:24
20after4 added a member for Trusted Contributors: Iniquity.
Apr 23 2024, 21:23
20after4 updated subscribers of Q131: Why is the Ponder project archived?.

Good question.

Apr 23 2024, 19:25 · Phorge
20after4 updated the answer details for Q130: How to join the group "Trusted Contributors"? (Answer 160).
Apr 23 2024, 19:21
20after4 added Q130: How to join the group "Trusted Contributors"? (Answer 160).
Apr 23 2024, 19:21
20after4 added a comment to Q128: How deeply is Ponder integrated with the rest of Phorge? (Answer 159).

@Jack_who_built_the_house This is one of the things that always frustrated me with Wikimedia projects, there is a tendency to discourage doing something new or trying something experimental. Instead of just putting it out there and letting it either succeed or fail based on the merits, there is a lot of bureaucracy around consensus building. Sadly it's just the way things are with a community/organization as large and as socialistic as Wikimedia has become.

Apr 23 2024, 19:16

Apr 21 2024

20after4 added a comment to Q128: How deeply is Ponder integrated with the rest of Phorge? (Answer 159).

I think ponder is sort of a minimal viable product state currently. It lacks some features like putting questions on workboards and there just aren't many
(or any?) integrations with the rest of Phorge. That wouldn't take much effort to improve it, most likely.

Apr 21 2024, 19:19

Apr 5 2024

20after4 added a comment to D25540: Add PhutilRemarkupHexColorCodeRule, a new remarkup rule to format color codes.

Also apologies for not testing this locally in the phab ui, I was far too confident in my TDD.

Apr 5 2024, 19:52
20after4 added a comment to D25540: Add PhutilRemarkupHexColorCodeRule, a new remarkup rule to format color codes.

man I didn't even consider that you could actually have a valid project named #0dba11 ... maybe the syntax should be something different. #{00ffff} perhaps?

Apr 5 2024, 19:51
20after4 added a comment to D25540: Add PhutilRemarkupHexColorCodeRule, a new remarkup rule to format color codes.

It's kind of a shame that remarkup wasn't named Pharkup.

Apr 5 2024, 02:01
20after4 updated the diff for D25540: Add PhutilRemarkupHexColorCodeRule, a new remarkup rule to format color codes.

Actually add the rule to the remarkup engine.

Apr 5 2024, 02:01
20after4 added a comment to D25540: Add PhutilRemarkupHexColorCodeRule, a new remarkup rule to format color codes.

LOL I only ever tested the unit test case. I forgot to add the rule to PhabricatorMarkupEngine:

Apr 5 2024, 02:00

Apr 3 2024

20after4 added inline comments to D25565: Make incoming mail handling more robust / correct.
Apr 3 2024, 17:12
20after4 added a comment to T15670: Diffusion repository commits: avoid to be a black hole for webcrawlers.

Thinking more, I think we'd like to allow the robots to index latest version of the code - these days the big boys know how to handle that. Stopping them from crawling older versions is still important.

Anyway, I vote to revert the change - commit pages can have discussions in.

Apr 3 2024, 17:03 · Discussion Needed
20after4 added a comment to T15670: Diffusion repository commits: avoid to be a black hole for webcrawlers.

If it's that easy, then I'm both impressed and surprised it remained this way for so long. I'm actually not quite sure I understand the reasoning for not using # to begin with.

Apr 3 2024, 16:58 · Discussion Needed
20after4 awarded P35 Replace fragments a Mountain of Wealth token.
Apr 3 2024, 16:57
20after4 added inline comments to D25540: Add PhutilRemarkupHexColorCodeRule, a new remarkup rule to format color codes.
Apr 3 2024, 01:21
20after4 added inline comments to D25540: Add PhutilRemarkupHexColorCodeRule, a new remarkup rule to format color codes.
Apr 3 2024, 01:18
20after4 updated the diff for D25540: Add PhutilRemarkupHexColorCodeRule, a new remarkup rule to format color codes.

Address review feedback:

Apr 3 2024, 01:18
20after4 accepted D25567: Fix PHP 8.1 "preg_match(null)" exception exporting task list to CSV.
Apr 3 2024, 00:50
20after4 accepted D25568: Fix PHP 8.1 "addcslashes(null)" exception exporting task list to tab-separated text.
Apr 3 2024, 00:49

Apr 2 2024

20after4 added a comment to D25549: Add Standard Custom Fields to Item List.

I'll test this locally, I can't see any reason we shouldn't merge it.

Apr 2 2024, 19:22
20after4 awarded D25475: Drag & Drop Task Cover Image: also attach a Mountain of Wealth token.
Apr 2 2024, 19:21
20after4 awarded D25538: Separate repository home and browse view in tab menu a Orange Medal token.
Apr 2 2024, 19:19
20after4 awarded D25566: Fix setup check for gzip request mangling being sent as GET a Mountain of Wealth token.
Apr 2 2024, 19:15
20after4 updated 20after4.
Apr 2 2024, 19:14

Apr 1 2024

20after4 added a comment to T15744: Render html color codes in remarkup.

This D25540: Add PhutilRemarkupHexColorCodeRule, a new remarkup rule to format color codes should be ready to merge now, if someone wouldn't mind reviewing it.

Apr 1 2024, 18:14 · Discussion Needed, Remarkup
20after4 accepted D25566: Fix setup check for gzip request mangling being sent as GET.

Discussed on IRC: it seems that this should have been POST all along.

Apr 1 2024, 18:12
20after4 added a comment to D25540: Add PhutilRemarkupHexColorCodeRule, a new remarkup rule to format color codes.

About your Remarkup unit tests, try to rebase. Maybe related to D25559.

Apr 1 2024, 18:11
20after4 retitled D25540: Add PhutilRemarkupHexColorCodeRule, a new remarkup rule to format color codes from WIP: add PhutilRemarkupHexColorCodeRule
Apr 1 2024, 18:10
20after4 updated the diff for D25540: Add PhutilRemarkupHexColorCodeRule, a new remarkup rule to format color codes.
  • Fixed a logic bug.
  • Added passing unit tests.
Apr 1 2024, 18:04

Mar 30 2024

20after4 awarded D25561: Fix important regression in search engine a Mountain of Wealth token.
Mar 30 2024, 11:02
20after4 accepted D25554: Custom integer fields: fix search by array of possible values.
Mar 30 2024, 11:01

Mar 22 2024

20after4 added Q86: Policy lifecycle of security tasks (Answer 154).
Mar 22 2024, 14:59
20after4 added Q115: How to analyze each member story points data (Answer 153).
Mar 22 2024, 14:57
20after4 added a comment to T15048: Allow awarding Tokens to individual Comments.

So I got this mostly working locally, it's actually fairly trivial to reuse the existing token storage and infrastructure. Actually displaying the tokens might not be the most efficient of operations when there are a lot of comments on a given object. I still need to write an optimized query to fetch all of the token given in one query rather than many and then figure out how to display the tokens inline with the comments.

Mar 22 2024, 14:42 · Comments

Mar 10 2024

20after4 added a comment to Q116: How to set fa-pie-chart value? (Answer 147).

@littleggghost I think you might just need to run celerity to update the icons.

Mar 10 2024, 00:56

Mar 2 2024

20after4 added Q116: How to set fa-pie-chart value? (Answer 147).
Mar 2 2024, 11:55
20after4 awarded T15750: Integrate CustomField into more interfaces a Love token.
Mar 2 2024, 11:37
20after4 awarded D25549: Add Standard Custom Fields to Item List a Mountain of Wealth token.
Mar 2 2024, 11:36
20after4 added a comment to D25549: Add Standard Custom Fields to Item List.

This is really cool!

Mar 2 2024, 11:36
20after4 closed D25547: Diviner: Improve documentation for remarkup code blocks.
Mar 2 2024, 11:32
20after4 committed rP32b5139d46dc: Diviner: Improve documentation for remarkup code blocks.
Diviner: Improve documentation for remarkup code blocks
Mar 2 2024, 11:32

Feb 29 2024

20after4 updated the summary of D25547: Diviner: Improve documentation for remarkup code blocks.
Feb 29 2024, 17:39
20after4 added a comment to T15747: Support short language specifier in code blocks: ```php instead of ```lang=php.

Added documentation in D25547: Diviner: Improve documentation for remarkup code blocks

Feb 29 2024, 17:36 · Remarkup
20after4 requested review of D25547: Diviner: Improve documentation for remarkup code blocks.
Feb 29 2024, 17:34
20after4 added a comment to Q114: Subtypes deadline switch to colored calendar icons (Answer 146).

Awesome! I'm glad it finally worked. If you want all of your tasks to have the 'deadline' subtype you can edit your task form to set the subtype (or create a separate form that sets the subtype) that way you don't have to manually change the type of each task after it's created.

Feb 29 2024, 16:46
20after4 added a comment to Q114: Subtypes deadline switch to colored calendar icons (Answer 146).

Did you manage to get the extension working?

Feb 29 2024, 16:38
20after4 accepted D25545: Make lipsum project generator also fill in project description.
Feb 29 2024, 16:38
20after4 changed the visibility for F1441547: 0001-Add-custom-task-deadline-display-on-workboard-cards.patch.
Feb 29 2024, 11:49
20after4 changed the visibility for F1469703: Screenshot from 2024-02-29 03-46-40.png.
Feb 29 2024, 11:49
20after4 changed the visibility for F1469699: Screenshot from 2024-02-29 03-45-51.png.
Feb 29 2024, 11:48