Page MenuHomePhabricator

Simetrical (Aryeh Gregor (inactive until at least March 26))
User

Projects

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Tuesday

  • Clear sailing ahead.

User Details

User Since
Mar 18 2018, 12:21 PM (119 w, 6 d)
Availability
Available
IRC Nick
AryehGregor
LDAP User
Unknown
MediaWiki User
Simetrical [ Global Accounts ]

I learn full-time in kollel, and sometimes contract for Wikimedia bein hazemanim.

Recent Activity

Apr 22 2020

DannyS712 awarded T200790: Auto-fix errors in pushed changesets where possible a Barnstar token.
Apr 22 2020, 5:50 AM · MediaWiki-Codesniffer, Continuous-Integration-Infrastructure

Oct 30 2019

Simetrical updated Simetrical.
Oct 30 2019, 11:53 AM
Simetrical created T236880: Document when to use different ILoadBalancer::get*Connection* methods.
Oct 30 2019, 9:24 AM · MW-1.35-notes (1.35.0-wmf.35; 2020-06-02), Core Platform Team (Icebox), Performance-Team, Documentation, Wikimedia-Rdbms, MediaWiki-Documentation

Oct 29 2019

Simetrical added a comment to T178136: Encourage type hints for function parameters and return after moving MediaWiki to PHP 7.

What type of errors? Keeping in mind, again, that it only affects type hints on functions, not anything else.

Oct 29 2019, 6:49 PM · MediaWiki-Codesniffer, Technical-Debt, MediaWiki-General
Simetrical added a comment to T178136: Encourage type hints for function parameters and return after moving MediaWiki to PHP 7.

Also, as we start using scalar type hints, we should require declare( strict_types = 1 ) for all files. This will not affect backward compatibility, because it only affects calls to functions with strict type hints. If it's not enabled, PHP will silently cast other scalar types when you call the function, which is surprising. (I'm posting this because I was just bitten by it -- although in my case strict_types wouldn't have helped, because the call to the function was from within PHPUnit.)

Oct 29 2019, 6:19 PM · MediaWiki-Codesniffer, Technical-Debt, MediaWiki-General
Simetrical added a comment to T231419: Audit using a library to bypass 'final' keyword in PHPUnit.

See also the PHP bug: https://bugs.php.net/bug.php?id=65119

Oct 29 2019, 2:28 PM · Patch-For-Review, MediaWiki-Core-Testing
Simetrical updated subscribers of T231419: Audit using a library to bypass 'final' keyword in PHPUnit.

The problem of finals is still interfering with testing work. (This time it's unit tests for FileBackend, where I can't test that it's properly forwarding to LockManager because the LockManager methods are marked final.)

Oct 29 2019, 2:10 PM · Patch-For-Review, MediaWiki-Core-Testing
Simetrical added a comment to T178136: Encourage type hints for function parameters and return after moving MediaWiki to PHP 7.

In addition to the advantages of type hints that have already been mentioned, I'll point out that the language is moving toward more and better type hints. PHP 7.4 has typed class properties, and the next version looks like it will have union types, probably followed by a "mixed" type.

Oct 29 2019, 1:05 PM · MediaWiki-Codesniffer, Technical-Debt, MediaWiki-General
Simetrical closed T201405: Separate Language static methods/members into service(s), a subtask of T231866: Circular dependency when creating service! ContentLanguage, as Resolved.
Oct 29 2019, 10:21 AM · MW-1.34-notes, MW-1.35-notes (1.35.0-wmf.10; 2019-12-10), Performance-Team (Radar), Language-Team, MW-1.34-release, Core Platform Team Workboards (Clinic Duty Team), MediaWiki-ResourceLoader, MediaWiki-extensions-Gadgets, MediaWiki-ServiceContainer
Simetrical closed T201405: Separate Language static methods/members into service(s) as Resolved.
Oct 29 2019, 10:21 AM · MW-1.35-notes (1.35.0-wmf.4; 2019-10-29), MW-1.34-notes, MW-1.34-release, Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review, CPT Initiatives (Decoupling (CDP2)), I18n, MediaWiki-Internationalization

Oct 28 2019

Simetrical added a comment to T201405: Separate Language static methods/members into service(s).

Remaining non-deprecated public static methods on Language:

Oct 28 2019, 5:58 PM · MW-1.35-notes (1.35.0-wmf.4; 2019-10-29), MW-1.34-notes, MW-1.34-release, Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review, CPT Initiatives (Decoupling (CDP2)), I18n, MediaWiki-Internationalization

Oct 27 2019

Simetrical added a comment to T231930: Introduce Authority objects to represent the user performing a given action.

As far as I can tell, the issue is we need a way for IP address and cookies to be available for logging and security checks. We obviously are not going to pass these all the way down the call chain. This seems like exactly the use-case a service manager is intended for. Why not just make a service that contains the needed info? Generally we can just inject the info from the service, but if some code wants to perform certain actions that should be considered relevant to a different IP address/set of cookies, it can inject different info. If something is being performed without relevance to any specific IP address, like a maintenance script run via a cron job, it can use 127.0.0.1 as the IP address (which I imagine is the info PHP supplies anyway). And of course empty cookies.

Oct 27 2019, 10:31 AM · CPT Initiatives (Decoupling (CDP2)), Patch-For-Review, User-Daniel, MediaWiki-User-management
Simetrical closed T202094: Deprecate Title::getUserCaseDBKey(), a subtask of T214319: Replace usage of Title with usage of LinkTarget in File, as Resolved.
Oct 27 2019, 9:27 AM · CPT Initiatives (Decoupling (CDP2)), Patch-For-Review, MediaWiki-File-management, Multimedia, Commons
Simetrical closed T202094: Deprecate Title::getUserCaseDBKey() as Resolved.
Oct 27 2019, 9:27 AM · MW-1.35-notes (1.35.0-wmf.4; 2019-10-29), Core Platform Team Workboards (Clinic Duty Team), CPT Initiatives (Decoupling (CDP2)), MW-1.33-notes (1.33.0-wmf.9; 2018-12-18), MediaWiki-General

Oct 25 2019

Simetrical added a comment to T236191: SSH login to gerrit no longer works for me (simetrical/Aryeh Gregor).

Nope, config was fine, it was a filtering proxy. The proxy had been configured to allow SSH to the old IP, but needed to be updated to allow the new IP. I should always remember to check for that first before bothering anyone else about issues that could be network-related, but sometimes I forget. :/

Oct 25 2019, 8:36 AM · Gerrit
Simetrical closed T236191: SSH login to gerrit no longer works for me (simetrical/Aryeh Gregor) as Invalid.

Sorry about that, it was a problem on my end after all. All fixed now.

Oct 25 2019, 7:38 AM · Gerrit

Oct 24 2019

Simetrical added a comment to T234227: Improve test coverage for FileBackend and friends.

Coverage for includes/libs/lockmanager: 16.64% of lines (116/697)

Oct 24 2019, 9:25 AM · MW-1.35-notes (1.35.0-wmf.5; 2019-11-05), Patch-For-Review, Core Platform Team Workboards (Clinic Duty Team), CPT Initiatives (Decoupling (CDP2))

Oct 23 2019

Simetrical added a comment to T234227: Improve test coverage for FileBackend and friends.

Coverage for includes/filebackend/: 41.18% of lines (119/289)

Oct 23 2019, 5:19 PM · MW-1.35-notes (1.35.0-wmf.5; 2019-11-05), Patch-For-Review, Core Platform Team Workboards (Clinic Duty Team), CPT Initiatives (Decoupling (CDP2))
Simetrical added a comment to T231799: LuaWikibaseEntityLibraryTest: CI failing en masse.

It runs them a while after the patch is already merged, or what? It doesn't seem to run them every time a new changeset is submitted to Gerrit, nor in gate-and-submit, nor in the post-merge run that Jenkins reports. Those are the test runs I see in practice.

Oct 23 2019, 4:36 PM · MW-1.35-notes (1.35.0-wmf.4; 2019-10-29), Wikimedia-production-error (ARCHIVED -- Shared Build Failure), MW-1.34-notes (1.34.0-wmf.21; 2019-09-03), User-Ladsgroup, Wikidata-Campsite (Wikidata-Campsite-Iteration-∞), MediaWiki-extensions-Scribunto, Wikidata
Simetrical added a comment to T236191: SSH login to gerrit no longer works for me (simetrical/Aryeh Gregor).

Pushing over HTTPS works for the time being as a workaround.

Oct 23 2019, 4:29 PM · Gerrit
Simetrical added a comment to T193613: RFC: Establish stable interface policy for PHP code.

It occurs to me that we need to define rules for changes in stability similar to rules for deprecation and removal. If I want to mark a public interface as internal when it wasn't officially marked as such in the past, does that need a mention in release notes? If so, where -- the deprecation section or somewhere else? Are there any rules for how soon I can remove a method (or otherwise break callers) after declaring it unstable? Is there going to be any equivalent of hard deprecation for declaring things unstable?

Oct 23 2019, 2:36 PM · TechCom-RFC (TechCom-RFC-Closed), Core Platform Team, Discovery-Search, MediaWiki-General
Simetrical added a comment to T193613: RFC: Establish stable interface policy for PHP code.

If I understand you right, you would like an explicit notice on the generated documentation for all constructors that state that they are not safe to call (unless marked as stable, or the class being marked newable).

I don't know how hard that would be do achieve. Also, seeing the same notice on most constructors make result in "banner blindness"...

Oct 23 2019, 8:56 AM · TechCom-RFC (TechCom-RFC-Closed), Core Platform Team, Discovery-Search, MediaWiki-General

Oct 22 2019

Simetrical added a comment to T236191: SSH login to gerrit no longer works for me (simetrical/Aryeh Gregor).

Gerrit bails out after five failed "logins" - that is, if you have more than five miscellaneous identity files preceding the right one. Yes, it's stupid. (We have a task about it but I can't find it now.) Use something like

Host gerrit.wikimedia.org
  IdentityFile /path/to/gerrit/keyfile
  IdentitiesOnly yes

in your SSH config.

Oct 22 2019, 6:12 PM · Gerrit
Simetrical created T236191: SSH login to gerrit no longer works for me (simetrical/Aryeh Gregor).
Oct 22 2019, 5:04 PM · Gerrit
Simetrical added a comment to T231799: LuaWikibaseEntityLibraryTest: CI failing en masse.

How am I supposed to test its impact on Wikibase before merging? How can I run Wikibase tests on a patch I'm submitting to core, if they aren't run automatically?

Oct 22 2019, 4:41 PM · MW-1.35-notes (1.35.0-wmf.4; 2019-10-29), Wikimedia-production-error (ARCHIVED -- Shared Build Failure), MW-1.34-notes (1.34.0-wmf.21; 2019-09-03), User-Ladsgroup, Wikidata-Campsite (Wikidata-Campsite-Iteration-∞), MediaWiki-extensions-Scribunto, Wikidata

Sep 1 2019

Simetrical updated Simetrical.
Sep 1 2019, 11:13 AM
Simetrical added a comment to T231710: Recommend PHP7-only features after dropping HHVM support.
  • void return value for functions, for the same reason we want to type-hint generally
  • Convert list() to [] just like we converted array()
  • Specify visibility of class constants (some are only used internally and should be made protected or private)
Sep 1 2019, 10:01 AM · MW-1.34-notes, MW-1.35-notes (1.35.0-wmf.1; 2019-10-08), PHP 7.0 support, Code-Health
Simetrical added a comment to T231710: Recommend PHP7-only features after dropping HHVM support.

It looks like soon we're probably going to require PHP 7.2, so features from 7.1 and 7.2 should be considered as well. These pages are useful:

Sep 1 2019, 9:29 AM · MW-1.34-notes, MW-1.35-notes (1.35.0-wmf.1; 2019-10-08), PHP 7.0 support, Code-Health
Simetrical added a comment to T231159: Wrap file access so it can be mocked.

It is not part of the contract of a cache to cache something, insofar as caches by definition are for things that can be regenerated, and therefore are not designed to guarantee persistency.

Sep 1 2019, 9:01 AM · MediaWiki-Core-Testing
Simetrical added a comment to T231656: MediaWikiTestCaseTrait::creatNoOpMock should permit calling destructors.

Is this actually causing problems? MovePage did have it because destruct would actually get called, but now it seems it doesn't. Why would destruct actually get called on the mock? It seems it doesn't really get called every time an object is destroyed.

Sep 1 2019, 8:53 AM · MW-1.34-notes (1.34.0-wmf.21; 2019-09-03), MediaWiki-Core-Testing

Aug 30 2019

Simetrical added a comment to T225730: Reduce runtime of MW shared gate Jenkins jobs to 5 min.

For the overloading issue, is there any option of just getting more resources? Maybe using EC2 or similar? We're trying to add lots more tests, and one way or another, we're going to need more resources to run them.

Aug 30 2019, 9:10 AM · MW-1.35-notes (1.35.0-wmf.27; 2020-04-07), Patch-For-Review, Developer Productivity, Release-Engineering-Team (Unit & Int & System Tooling), Release-Engineering-Team-TODO, Code-Health, Performance-Team (Radar), Epic, MediaWiki-Core-Testing, Continuous-Integration-Config
Simetrical created T231631: Allow using non-Gregorian calendars in all languages.
Aug 30 2019, 8:42 AM · MediaWiki-Internationalization
Simetrical added a comment to T231551: NamespaceInfo.php: PHP Notice: A non well formed numeric value encountered.

ChangesListSpecialPage is not validating the parameters. It's assuming that the namespace parameter in the query string is a semicolon-delimited list of numbers. The URL here is invalid, and has garbage after the namespace parameter:

namespace=1%20waitfor%20delay%20'0:0:10'%20--%20

This will be parsed to int(1), which is probably correct, but it issues a notice.

Aug 30 2019, 7:24 AM · Growth-Team, MediaWiki-General
Simetrical added a comment to T225730: Reduce runtime of MW shared gate Jenkins jobs to 5 min.

Again, there are two concerns: reducing latency, and reducing server load. The two are only related if the servers are actually overloaded and therefore individual jobs take longer. What exactly is our concern here? Latency, server load, or both?

Aug 30 2019, 7:16 AM · MW-1.35-notes (1.35.0-wmf.27; 2020-04-07), Patch-For-Review, Developer Productivity, Release-Engineering-Team (Unit & Int & System Tooling), Release-Engineering-Team-TODO, Code-Health, Performance-Team (Radar), Epic, MediaWiki-Core-Testing, Continuous-Integration-Config

Aug 29 2019

Simetrical added a comment to T231159: Wrap file access so it can be mocked.

It seems that what you're suggesting is that instead of defining a wrapper class that you can use if you want to mock the file access, each class should define separate methods on an ad hoc basis to wrap the file access. Wouldn't it be preferable to define the wrappers only once?

Aug 29 2019, 3:24 PM · MediaWiki-Core-Testing
Simetrical added a comment to T230979: CR+2 on MediaWiki for Aryeh Gregor (aka Simetrical).

It's been seven days, and seemingly no objections. It would be useful for me to have +2 rights now just to re-submit patches I've written that failed gate-and-submit due to flaky tests or non-substantive reasons ("HHVM doesn't like syntax X"). I seem to have a lot of those, and right now I have to wait for someone else to deal with it.

Aug 29 2019, 2:42 PM · MediaWiki-Gerrit-Group-Requests
Simetrical added a comment to T218555: Provide access to WebRequest and associated information via a service object.

What I mean is - what is our strategy for constructing things like a RevisionStore, Parser or MessageCache for another wiki. If services only vary by wiki and their Config, it is logically trivial to construct another tree for that, so long as its config can be retrieved (SiteConfiguration, legacy, known issues, limitations etc. yes).

Aug 29 2019, 2:32 PM · TechCom, MediaWiki-ServiceContainer, CPT Initiatives (Decoupling (CDP2))
Simetrical added a comment to T218555: Provide access to WebRequest and associated information via a service object.

Will do next. Meanwhile:

  • What are both your thoughts on the cross-wiki use case?

How might this work with WebRequest in the service container? Or does it not matter for that use case whether WebRequest is in or out the service container? Or should we depart from this long-term ideal? If so, what would be our strategy for use cases of that kind going forward? (E.g. HTTP requests to API only)

Aug 29 2019, 1:08 PM · TechCom, MediaWiki-ServiceContainer, CPT Initiatives (Decoupling (CDP2))
Simetrical added a comment to T231159: Wrap file access so it can be mocked.

Since the point of a cache is to save disk reads, I think we would want to directly test that it doesn't do unnecessary disk risks. Otherwise the cache isn't doing its job. Just injecting the directory doesn't give you any way to directly test that the cache is saving disk reads, i.e., that it's behaving usefully.

Aug 29 2019, 11:35 AM · MediaWiki-Core-Testing
Simetrical added a comment to T225730: Reduce runtime of MW shared gate Jenkins jobs to 5 min.

If you want to split things up, split up PHPUnit tests themselves into multiple chunks. That will allow reducing latencies more or less arbitrarily, assuming we have adequate server resources and we don't spend too much time in setting up the test instance.

Aug 29 2019, 11:31 AM · MW-1.35-notes (1.35.0-wmf.27; 2020-04-07), Patch-For-Review, Developer Productivity, Release-Engineering-Team (Unit & Int & System Tooling), Release-Engineering-Team-TODO, Code-Health, Performance-Team (Radar), Epic, MediaWiki-Core-Testing, Continuous-Integration-Config
Simetrical added a comment to T231488: UploadFromChunks.php: Call to undefined method MediaWiki\FileBackend\FSFile\TempFSFileFactory::getTempFSFile().

Why did phan not catch this?

Aug 29 2019, 10:09 AM · MW-1.34-notes (1.34.0-wmf.20; 2019-08-27), MediaWiki-Uploading, Wikimedia-production-error

Aug 28 2019

Simetrical added a comment to T218555: Provide access to WebRequest and associated information via a service object.
  • It's not everywhere –The subset of MediaWiki that both 1) cannot compute these and 2) cannot be given these by method parameter, almost always has a RequestContext already. So we've already paid the migration cost for this over the past years. They already have direct or nearby access to these concepts. The number of places where we currently need to call RequestContext::getMain() is quite small, and migrating these away seems quite doable (we've already done it in most other places).
Aug 28 2019, 4:05 PM · TechCom, MediaWiki-ServiceContainer, CPT Initiatives (Decoupling (CDP2))
Simetrical added a comment to T218555: Provide access to WebRequest and associated information via a service object.

In practical terms:
PermissionManager::getUserPermissions currently relies on global variables via RequestContext::getMain(). I want to change that. Making the necessary context injectable is simple and would fix the problem.

Aug 28 2019, 1:55 PM · TechCom, MediaWiki-ServiceContainer, CPT Initiatives (Decoupling (CDP2))
Simetrical added a comment to T218555: Provide access to WebRequest and associated information via a service object.

If I understand correctly, Krinke's point is that the behavior of a service should only vary on 1) the parameters provided and b) configuration. Injecting knowledge about the current Request, User, Session, etc breaks that assumption. So these things should be provided as parameters where needed.

Aug 28 2019, 1:50 PM · TechCom, MediaWiki-ServiceContainer, CPT Initiatives (Decoupling (CDP2))
Simetrical created T231434: How to support extensions overriding services without having to update them for every constructor signature change.
Aug 28 2019, 11:47 AM · MediaWiki-extensions-General, MediaWiki-ServiceContainer
Simetrical added a comment to T231159: Wrap file access so it can be mocked.

For that matter, testing anything in that method requires making assumptions about the contents of files in the filesystem and perhaps copy-pasting something about their contents. This doesn't seem like the best approach. The correctness of Language::getGrammarTransformations() shouldn't have to depend on the data that we happen to ship.

Aug 28 2019, 10:08 AM · MediaWiki-Core-Testing
Simetrical reopened T231159: Wrap file access so it can be mocked as "Open".

So here's an example: Language::getGrammarTransformations() will throw an exception if it finds invalid JSON in a grammar transformations file. The file path is hardcoded to __DIR__ . "/data/grammarTransformations/$languageCode.json" and accessed with is_readable() and file_get_contents(). How are we supposed to test that the exception is thrown properly?

Aug 28 2019, 9:48 AM · MediaWiki-Core-Testing
Simetrical added a comment to T30426: Remove stub link formatting user preference from MediaWiki core.

If we wanted to make this feature work properly, I think the right way would be to parse the HTML page content for links, find all links to pages on the current wiki, run a DB query to see how big they are, and add a suitable class to the parsed HTML. This would not affect caching; would have no performance impact on anyone who has the feature disabled; and for whoever has the feature enabled, will add one HTML parse/serialize and one (small, indexed) database query.

Aug 28 2019, 8:48 AM · Performance Issue, WorkType-NewFunctionality, MediaWiki-General
Simetrical closed T231159: Wrap file access so it can be mocked as Invalid.

Maybe it doesn't really need to be mocked, then. I'll reopen if I find a case where it really does.

Aug 28 2019, 7:31 AM · MediaWiki-Core-Testing

Aug 27 2019

Simetrical added a comment to T225730: Reduce runtime of MW shared gate Jenkins jobs to 5 min.

I think the best returns here are going to be not on pinpointing specific tests, but looking for systemic issues. Even if you find a test that takes ten seconds, optimizing it will save at most ten seconds, and there aren't enough such tests to add up to the target savings of 10+ minutes.

Aug 27 2019, 4:30 PM · MW-1.35-notes (1.35.0-wmf.27; 2020-04-07), Patch-For-Review, Developer Productivity, Release-Engineering-Team (Unit & Int & System Tooling), Release-Engineering-Team-TODO, Code-Health, Performance-Team (Radar), Epic, MediaWiki-Core-Testing, Continuous-Integration-Config
Simetrical closed T231183: L10n cache is completely broken, a subtask of T220745: 1.34.0-wmf.20 deployment blockers, as Resolved.
Aug 27 2019, 7:15 AM · User-zeljkofilipin, Release-Engineering-Team-TODO (201908), Release-Engineering-Team (Deployment services), Release, Train Deployments
Simetrical closed T231183: L10n cache is completely broken as Resolved.
Aug 27 2019, 7:15 AM · Core Platform Team, MW-1.34-notes (1.34.0-wmf.20; 2019-08-27), MediaWiki-Internationalization, MediaWiki-Cache

Aug 26 2019

Simetrical added a comment to T218555: Provide access to WebRequest and associated information via a service object.

So let's say for LBFactory, how would you suggest making it not depend at all on the current request? How should it get the request's IP address and User-Agent so that ChronologyProtector works?

Aug 26 2019, 5:56 PM · TechCom, MediaWiki-ServiceContainer, CPT Initiatives (Decoupling (CDP2))
Simetrical added a comment to T231183: L10n cache is completely broken.

Then I think it's resolved, although the patch is being backed out anyway for now because of T231198/T231200.

Aug 26 2019, 5:51 PM · Core Platform Team, MW-1.34-notes (1.34.0-wmf.20; 2019-08-27), MediaWiki-Internationalization, MediaWiki-Cache
Simetrical added a comment to T231220: Figure out how to make LocalisationCache a service without hurting performance.

By the way, @Ladsgroup, how did you actually measure the performance hit here? I'm going to need a way to test it to make sure I've fixed the problem before re-committing.

Aug 26 2019, 5:49 PM · Core Platform Team Workboards (Clinic Duty Team), MediaWiki-General
Simetrical created T231220: Figure out how to make LocalisationCache a service without hurting performance.
Aug 26 2019, 5:48 PM · Core Platform Team Workboards (Clinic Duty Team), MediaWiki-General
Simetrical added a comment to T218555: Provide access to WebRequest and associated information via a service object.

Few services will actually want direct access to the request info, so I'd think it doesn't make sense to make a service for this without specific use-cases that don't make more sense to deal with by other means. For instance, LBFactory needs only a few specific pieces of information from the request, so it doesn't seem necessary to make a whole service to pass in for it.

Aug 26 2019, 5:21 PM · TechCom, MediaWiki-ServiceContainer, CPT Initiatives (Decoupling (CDP2))
Simetrical added a comment to T231183: L10n cache is completely broken.

This should be fixed now, can you test?

Aug 26 2019, 4:02 PM · Core Platform Team, MW-1.34-notes (1.34.0-wmf.20; 2019-08-27), MediaWiki-Internationalization, MediaWiki-Cache
Simetrical added a comment to T231183: L10n cache is completely broken.

So those two patches should fix the two issues that you ran into. I leave it up to the people with +2 access to decide whether it's wise to just commit these two fixes or to revert LocalisationCache and LanguageNameUtils for now.

Aug 26 2019, 9:56 AM · Core Platform Team, MW-1.34-notes (1.34.0-wmf.20; 2019-08-27), MediaWiki-Internationalization, MediaWiki-Cache
Simetrical added a comment to T231183: L10n cache is completely broken.

The breakage of rebuildLocalisationCache.php is an entirely separate problem. Separate patch coming for that. See, this is why tests before refactoring is a good idea!

Aug 26 2019, 9:46 AM · Core Platform Team, MW-1.34-notes (1.34.0-wmf.20; 2019-08-27), MediaWiki-Internationalization, MediaWiki-Cache
Simetrical added a comment to T231183: L10n cache is completely broken.

I think I see the problem:

Aug 26 2019, 9:41 AM · Core Platform Team, MW-1.34-notes (1.34.0-wmf.20; 2019-08-27), MediaWiki-Internationalization, MediaWiki-Cache
Simetrical added a comment to T231183: L10n cache is completely broken.

You need to revert LanguageNameUtils too, then it works fine (other than RELEASE-NOTES conflicts, obviously): 2e52f48c2ed

Aug 26 2019, 9:34 AM · Core Platform Team, MW-1.34-notes (1.34.0-wmf.20; 2019-08-27), MediaWiki-Internationalization, MediaWiki-Cache

Aug 25 2019

Simetrical added a project to T231159: Wrap file access so it can be mocked: MediaWiki-Core-Testing.
Aug 25 2019, 12:06 PM · MediaWiki-Core-Testing
Simetrical created T231159: Wrap file access so it can be mocked.
Aug 25 2019, 12:06 PM · MediaWiki-Core-Testing
Simetrical added a comment to T224429: Hunt and remove unused i18n messages in mediawiki core.

We definitely should have a test that checks for this. Any existing cases can be whitelisted for the time being, but it could at least stop new cases from being inadvertently added.

Aug 25 2019, 9:16 AM · MW-1.34-notes (1.34.0-wmf.24; 2019-09-24), Patch-For-Review, translatewiki.net, Wikimania-Hackathon-2019, I18n, MediaWiki-Internationalization
Simetrical added a comment to T231103: WikibaseLexeme test broken by refactor of MediaWiki's Language class.

WikibaseLexeme tests were accessing a private property of Language via ReflectionClass in order to clear Language caches, instead of using the public method Language::clearCaches(). When Language got refactored, the private member was removed, which broke the tests. Tests that are not run by CI cannot rely on private things not changing if they want to not break -- they need to use only public interfaces.

Aug 25 2019, 9:11 AM · MediaWiki-Core-Testing, Wikidata, Lexicographical data, Release-Engineering-Team-TODO (201908), ci-test-error

Aug 23 2019

Simetrical added a comment to T230688: @coversDefaultClass should be allowed on traits as well as classes (MediaWiki.Commenting.PhpunitAnnotations.NotClass).

For the record, @coversDefaultClass seems not to work properly on HHVM either, although on PHP I didn't get any errors. So maybe the sniff is a good idea, at least for now.

Aug 23 2019, 9:49 AM · MediaWiki-Codesniffer

Aug 22 2019

Simetrical added a comment to T231014: ServiceContainer.php: Circular dependency when creating MobileFrontend service "AMC.UserMode > AMC.Manager > FeaturesManager > UserModes > AMC.UserMode".

The question is, did this work before, or crash with a stack overflow? Do we log all fatal errors in such a way that we know these page views actually succeeded before this change, or might the error just have changed?

Aug 22 2019, 4:37 PM · MW-1.34-notes (1.34.0-wmf.19; 2019-08-20), Readers-Web-Backlog (Readers-Web-Kanbanana-2019-20-Q1), MobileFrontend, Wikimedia-production-error
Simetrical placed T218555: Provide access to WebRequest and associated information via a service object up for grabs.
Aug 22 2019, 1:29 PM · TechCom, MediaWiki-ServiceContainer, CPT Initiatives (Decoupling (CDP2))
Simetrical added a comment to T230979: CR+2 on MediaWiki for Aryeh Gregor (aka Simetrical).

I should add that lately I've been contracting for Wikimedia for about seven weeks a year, and have been working 30-40 hours a week during those periods. When not contracting, I'm completely inactive.

Aug 22 2019, 10:30 AM · MediaWiki-Gerrit-Group-Requests
Simetrical added a comment to T230979: CR+2 on MediaWiki for Aryeh Gregor (aka Simetrical).

My older contributions are available via git log --author simetrical. I couldn't find a webpage that would display the results of the search that I could link to. Note that that includes things from the SVN era that I only committed and didn't author, so it's inflated (probably only slightly). But if we leave that aside, according to git shortlog -sne, I have 1052 commits (after updating .mailmap to merge the three different e-mail addresses I've used). Surprisingly, this still makes me the #19 all-time contributor by number of commits. I think I always tended to break up my commits more than a lot of people, though.

Aug 22 2019, 10:15 AM · MediaWiki-Gerrit-Group-Requests
Simetrical closed T200882: Create BadFileLookup service as Resolved.
Aug 22 2019, 8:46 AM · Patch-For-Review, Core Platform Team (Needs Cleaning - Code Health (TEC13)), MediaWiki-General

Aug 21 2019

Simetrical added a comment to T224020: Create a class to represent the identity of wikis on the same wiki farm.

In general, false instead of a string ID, or null instead of a SiteID object, are considered to represent the current wiki (home wiki).

Aug 21 2019, 11:21 AM · Crosswiki, Performance-Team (Radar), Proposal, MediaWiki-General, MediaWiki-Farmers, User-Daniel

Aug 19 2019

Simetrical closed T230528: Allow hooks to work with dependency injection as Resolved.

I don't see a way to mark as duplicate?

Aug 19 2019, 4:43 PM · MediaWiki-Core-Hooks, Dependency injection, Core Platform Team, MediaWiki-General
Simetrical added a comment to T200392: RfC: Release notes automation.

If we wanted a simpler change that would solve the immediate problem, I suggest just adding new release-notes lines in separate files in a designated directory. Before a release, a simple script could aggregate them into a traditional RELEASE-NOTES file. E.g., instead of adding * MediaWikiServices is now deprecated to the 'Deprecations in 1.x' section of RELEASE-NOTES, I'd put a file in release-notes/deprecations named whatever I feel like (name will be ignored by the script) with my release-notes line. Then to accumulate all the deprecations before making a release could be as simple as cat $(ls -tr release-notes/deprecations) or such.

Aug 19 2019, 12:17 PM · TechCom-RFC (TechCom-RFC-Closed), MediaWiki-Documentation
Simetrical added a comment to T200882: Create BadFileLookup service.

Patch: https://gerrit.wikimedia.org/r/c/mediawiki/core/+/530829

Aug 19 2019, 11:51 AM · Patch-For-Review, Core Platform Team (Needs Cleaning - Code Health (TEC13)), MediaWiki-General

Aug 18 2019

Simetrical claimed T200882: Create BadFileLookup service.
Aug 18 2019, 6:18 PM · Patch-For-Review, Core Platform Team (Needs Cleaning - Code Health (TEC13)), MediaWiki-General
Simetrical added a comment to T230688: @coversDefaultClass should be allowed on traits as well as classes (MediaWiki.Commenting.PhpunitAnnotations.NotClass).

Actually, @covers might not actually work on trait-level comments (PHPUnit bug?).

Aug 18 2019, 2:31 PM · MediaWiki-Codesniffer
Simetrical added a comment to T230688: @coversDefaultClass should be allowed on traits as well as classes (MediaWiki.Commenting.PhpunitAnnotations.NotClass).

Also @covers and presumably other things.

Aug 18 2019, 2:29 PM · MediaWiki-Codesniffer
Simetrical created T230688: @coversDefaultClass should be allowed on traits as well as classes (MediaWiki.Commenting.PhpunitAnnotations.NotClass).
Aug 18 2019, 1:01 PM · MediaWiki-Codesniffer
Simetrical closed T220966: TitleParser needs a substitute for Title::makeTitleSafe() as Resolved.
Aug 18 2019, 9:30 AM · MW-1.34-notes (1.34.0-wmf.20; 2019-08-27), MediaWiki-General

Aug 15 2019

Simetrical added a comment to T230528: Allow hooks to work with dependency injection.

So I should probably have waited to get feedback from someone before writing up a test implementation. They would probably have pointed out to me that existing hooks are in some cases run before services are functional. This complicates things a bit, but I think the idea is still something we need to implement.

Aug 15 2019, 5:38 PM · MediaWiki-Core-Hooks, Dependency injection, Core Platform Team, MediaWiki-General
Simetrical added a comment to T230528: Allow hooks to work with dependency injection.

Okay, this took way more time than I expected. I'm putting it on hold for now until I get feedback on the general approach.

Aug 15 2019, 1:32 PM · MediaWiki-Core-Hooks, Dependency injection, Core Platform Team, MediaWiki-General
Simetrical added a project to T230378: Fail tests if they access stale services: MediaWiki-Core-Testing.

Sorry about that. If we want every task to have at least one project tag, is there a way to make it mandatory, or at least warn the submitter if they don't provide one? Other issue trackers I've used all require picking a product/component/whatever, and I keep forgetting with this one.

Aug 15 2019, 12:24 PM · MediaWiki-Core-Testing
Simetrical added a comment to T228342: Define criteria for setting explicit PHP support target for MediaWiki.

The idea being, then, that we just don't want to waste resources fixing 7.0-specific problems when it's already been EOL'd? That makes perfect sense, I just got confused because of my own assumptions about why we'd want to drop support for old PHP. (There are plenty of 7.1/7.2 features I'd love to use!)

Aug 15 2019, 12:21 PM · Performance-Team, TechCom, TechCom-RFC (TechCom-RFC-Closed), MediaWiki-General, PHP 7.3 support, PHP 7.2 support, PHP 7.1 support, PHP 7.0 support
Simetrical added a comment to T230528: Allow hooks to work with dependency injection.

So I should probably have waited to get feedback from someone before writing up a test implementation. They would probably have pointed out to me that existing hooks are in some cases run before services are functional. This complicates things a bit, but I think the idea is still something we need to implement.

Aug 15 2019, 11:26 AM · MediaWiki-Core-Hooks, Dependency injection, Core Platform Team, MediaWiki-General
Simetrical added a comment to T228342: Define criteria for setting explicit PHP support target for MediaWiki.

I don't see anywhere in Krinkle's text that explains the benefits of dropping support for older PHP versions. I assumed it was so we'd be able to use features of newer PHP versions in core code (because that's why I want to require a newer version :) ). If this is the case, I'm interested in knowing what new features we could use while still supporting HHVM. If there's some other reason entirely that we want to require a higher version, that explains my confusion.

Aug 15 2019, 11:25 AM · Performance-Team, TechCom, TechCom-RFC (TechCom-RFC-Closed), MediaWiki-General, PHP 7.3 support, PHP 7.2 support, PHP 7.1 support, PHP 7.0 support
Simetrical created T230528: Allow hooks to work with dependency injection.
Aug 15 2019, 8:36 AM · MediaWiki-Core-Hooks, Dependency injection, Core Platform Team, MediaWiki-General

Aug 14 2019

Simetrical committed rECIRaad8e658de54: Support MessageCache as service (authored by Simetrical).
Support MessageCache as service
Aug 14 2019, 5:49 PM
Simetrical added a comment to T228342: Define criteria for setting explicit PHP support target for MediaWiki.

If it's not really useful to require 7.2 before dropping HHVM support, is it worth making third-party admins upgrade their PHP? I don't know how many there are who will need to, but it's presumably nonzero, so shouldn't we identify some clear benefit to us before inconveniencing them?

Aug 14 2019, 11:05 AM · Performance-Team, TechCom, TechCom-RFC (TechCom-RFC-Closed), MediaWiki-General, PHP 7.3 support, PHP 7.2 support, PHP 7.1 support, PHP 7.0 support

Aug 13 2019

Simetrical added a comment to T228342: Define criteria for setting explicit PHP support target for MediaWiki.

How does this relate to dropping HHVM support? Is it useful to require PHP 7.2 but also support HHVM? Should T192166 block this, and does it have a timeline?

Aug 13 2019, 11:16 AM · Performance-Team, TechCom, TechCom-RFC (TechCom-RFC-Closed), MediaWiki-General, PHP 7.3 support, PHP 7.2 support, PHP 7.1 support, PHP 7.0 support

Aug 12 2019

Simetrical created T230378: Fail tests if they access stale services.
Aug 12 2019, 5:47 PM · MediaWiki-Core-Testing
Simetrical closed T192078: Figure out some way to not use addUncoveredFilesFromWhitelist="true" when running only some PHPUnit tests as Resolved.

This is fixed now, right? Yay! \o/

Aug 12 2019, 9:50 AM · MW-1.34-notes (1.34.0-wmf.15; 2019-07-23), Test-Coverage, Continuous-Integration-Config, MediaWiki-Core-Testing
Simetrical closed T201278: Running PHPUnit on includes/ or includes/parser/ results in "Call to a member function staticSetup() on null" as Resolved.

Seems fixed.

Aug 12 2019, 9:18 AM · MW-1.32-notes (WMF-deploy-2018-10-16 (1.32.0-wmf.26)), MediaWiki-Core-Testing
Simetrical updated Simetrical.
Aug 12 2019, 9:12 AM

May 6 2019

Simetrical updated Simetrical.
May 6 2019, 11:20 AM
Simetrical closed T214390: Refactor the Http class to not use global state as Resolved.
May 6 2019, 10:20 AM · Core Platform Team Workboards (Done with CPT), MW-1.34-notes (1.34.0-wmf.4; 2019-05-07), Core Platform Team (Decoupling (CDP2))
Simetrical created T222598: NamespaceInfo::getRestrictionLevels() does not correctly handle namespace restrictions that require more than one permission.
May 6 2019, 10:03 AM · Core Platform Team Workboards (Done with CPT), MW-1.34-notes (1.34.0-wmf.7; 2019-05-28), Core Platform Team (Needs Cleaning - Security, stability, performance, and scalability (TEC1)), Security-Team, MediaWiki-Page-protection, MediaWiki-User-management, MediaWiki-General

May 5 2019

Simetrical created T222545: Where should page move permissions go?.
May 5 2019, 6:34 PM · MediaWiki-User-management, MediaWiki-Page-rename, MediaWiki-General
Simetrical added a comment to T222529: Wikimedia\Assert\ParameterAssertionException when rendering a log snippet and log_user_text is empty.

So this is an actual bug -- until now, we were presumably creating a bogus link (to https://en.wiktionary.org/wiki/User_talk:). What should we actually do here? Is the database actually supposed to ever have empty usernames in it? That doesn't seem reasonable. Surely conversion scripts should also have usernames?

May 5 2019, 11:48 AM · MW-1.34-notes (1.34.0-wmf.3; 2019-04-30), MediaWiki-Logging, MediaWiki-Revision-backend, Wikimedia-production-error