Page MenuHomePhabricator

russblau (Russell Blau)
User

Projects

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Wednesday

  • Clear sailing ahead.

User Details

User Since
Oct 29 2014, 3:02 PM (437 w, 4 d)
Availability
Available
LDAP User
Unknown
MediaWiki User
R'n'B [ Global Accounts ]

Recent Activity

Jan 17 2023

MarcoAurelio awarded T320575: Allow exporting jobs list in YAML format a Like token.
Jan 17 2023, 11:39 AM · Toolforge Jobs framework

Oct 24 2022

russblau closed T320022: Migrate russbot from Toolforge GridEngine to Toolforge Kubernetes as Resolved.
Oct 24 2022, 5:30 PM · Grid-Engine-to-K8s-Migration

Oct 11 2022

russblau created T320575: Allow exporting jobs list in YAML format.
Oct 11 2022, 9:19 PM · Toolforge Jobs framework

Apr 12 2021

russblau created T279914: Job won't die.
Apr 12 2021, 11:58 AM · cloud-services-team (Kanban), Toolforge

Aug 5 2020

russblau committed rPWBCebb024d93cba: Skip data_dict if it does not contain a 'title' attribute. (authored by russblau).
Skip data_dict if it does not contain a 'title' attribute.
Aug 5 2020, 4:25 AM

Jul 4 2020

russblau committed rPWBC886cce329470: Fix fatal errors caused by dicts lacking "title" attribute (authored by russblau).
Fix fatal errors caused by dicts lacking "title" attribute
Jul 4 2020, 2:41 PM

May 27 2020

russblau added a comment to T253709: Bug: Page.botMayEdit() returns incorrect result if "allow=" syntax is used.

The current implementation contains a logic error, in that it tries to split a parameter value on a ',' without first checking for the presence of an '='. This is a bug, regardless of whether we think the correct implementation should or should not allow for {{nobots}} to have parameters.

May 27 2020, 6:23 PM · Pywikibot
russblau created T253709: Bug: Page.botMayEdit() returns incorrect result if "allow=" syntax is used.
May 27 2020, 12:01 AM · Pywikibot

Feb 8 2020

russblau added a comment to T240405: WikiPage::updateCategoryCounts causing replication lag due to long-running writes on commonswiki.

As of today, there are 3,082 categories in [[:commons:Category:Non-empty category redirects]], which is populated by a template that uses {{PAGESINCAT}} to determine whether a category is empty. The vast majority of these categories (a) have a title that starts with a digit and (b) are actually empty, even though {{PAGESINCAT}} returns a non-zero value for them. (There are a couple of hundred categories whose names don't start with a digit, but most of these appear to be legitimately non-empty.) I can't help but wonder whether this has something to do with the non-quoted category title issue identified by CDanis in the original post ("This should probably instead be WHERE cat_title = '11'.")

Feb 8 2020, 6:36 PM · Wikimedia-database-issue, Performance Issue, Platform Team Workboards (Clinic Duty Team), Release-Engineering-Team, SRE

Jan 27 2020

russblau added a comment to T115231: dplbot webservice on Toolforge repeatedly have its dynamicproxy entry removed (because qsub schedules tasks to webgrid queues, causing portreleaser to run as job epilogue).

Ok lets say in the current situation all SIGTERMs are sent by you.

2019-12-29 01:24:56: (server.c.1751) [note] graceful shutdown started
2019-12-29 01:24:56: (server.c.1828) server stopped by UID = 51290 PID = 11187
2019-12-29 01:25:18: (log.c.164) server started
2020-01-08 00:35:17: (server.c.1558) server stopped by UID = 0 PID = 0
2020-01-08 00:35:22: (log.c.164) server started

What about these?

Jan 27 2020, 4:40 PM · Toolforge
russblau added a comment to T243734: X-Wikimedia-Debug header does nothing on Toolforge web services.

Honestly I don’t know, except that based on the wiki I expected something different from the proxy’s error page. That is why I suggested the possibility that the problem might be with the documentation.

Jan 27 2020, 12:09 PM · cloud-services-team (Kanban), Toolforge
russblau added a comment to T115231: dplbot webservice on Toolforge repeatedly have its dynamicproxy entry removed (because qsub schedules tasks to webgrid queues, causing portreleaser to run as job epilogue).

The SIGTERM is being sent when I run ‘webservice restart’ on one of the login bastions, which I do only _after_ receiving a 503 response.

Jan 27 2020, 11:45 AM · Toolforge
russblau created T243734: X-Wikimedia-Debug header does nothing on Toolforge web services.
Jan 27 2020, 2:20 AM · cloud-services-team (Kanban), Toolforge

Jan 10 2020

russblau added a comment to T115231: dplbot webservice on Toolforge repeatedly have its dynamicproxy entry removed (because qsub schedules tasks to webgrid queues, causing portreleaser to run as job epilogue).

I could really use some help trying to resolve this issue. The webservice is somewhat more stable now that I am running it with the Kubernetes backend instead of on the grid, but this just means that it fails every few hours instead of every few minutes, on average.

Jan 10 2020, 2:44 AM · Toolforge

Jan 2 2020

russblau closed T218915: Webservice no longer restarted automatically (lighttpd) as Resolved.

This issue is no longer relevant, since I have been able to start the webservice under kubernetes and no longer rely on the grid servers.

Jan 2 2020, 3:45 PM · cloud-services-team (Kanban), Toolforge

Dec 29 2019

russblau added a comment to T115231: dplbot webservice on Toolforge repeatedly have its dynamicproxy entry removed (because qsub schedules tasks to webgrid queues, causing portreleaser to run as job epilogue).

Thanks!

Dec 29 2019, 11:03 AM · Toolforge
russblau reopened T115231: dplbot webservice on Toolforge repeatedly have its dynamicproxy entry removed (because qsub schedules tasks to webgrid queues, causing portreleaser to run as job epilogue) as "Open".

The webservice for dplbot now rarely stays up for more than 10-15 minutes at a time. There are still no error messages whatsoever in the logs giving any clue as to the cause of the outages. Note that, as reported originally, the lighttpd process continues to run during these outages, but all http requests return an error 503. (I have tried using webservice start --backend=kubernetes, but this results in all requests throwing an error 502.) I have also reopened T218915, a related issue.

Dec 29 2019, 12:47 AM · Toolforge

Dec 24 2019

russblau reopened T218915: Webservice no longer restarted automatically (lighttpd) as "Open".

This issue has resurfaced. /data/project/dplbot/service.log shows that the last attempted restart was at 2019-12-22T06:24:17.778139; it is now Tue Dec 24 15:49:50 and the webservice has been down for over 48 hours. I can restart it manually, but it will inevitably crash again sometime in the near future.

Dec 24 2019, 3:50 PM · cloud-services-team (Kanban), Toolforge

Oct 15 2019

russblau created T235557: Cancel button of en.wp gadget ConfirmationRollback-mobile.js fails on rollback confirmation dialog on Chrome for iOS.
Oct 15 2019, 8:33 PM

Mar 24 2019

russblau closed T216320: Cannot connect to toolsdb as Resolved.

no longer an issue

Mar 24 2019, 11:54 AM · cloud-services-team (Kanban), Toolforge

Mar 22 2019

russblau added a comment to T216441: Evaluate transferring the non-replicated tables to the new toolsdb server.

It's done as far as s51290 is concerned; thanks!

Mar 22 2019, 7:52 PM · Data-Services, cloud-services-team (Kanban)
russblau added a comment to T218486: Grid jobs stuck on host.

As of this morning, all of the jobs listed in my previous comment are now gone.

Mar 22 2019, 11:50 AM · cloud-services-team (Kanban), Toolforge
russblau closed T218927: Cannot manually restart webservice (lighttpd) as Resolved.

As of this morning I was able to start the webservice again.

Mar 22 2019, 11:49 AM · Toolforge

Mar 21 2019

russblau created T218927: Cannot manually restart webservice (lighttpd).
Mar 21 2019, 6:41 PM · Toolforge
russblau created T218915: Webservice no longer restarted automatically (lighttpd).
Mar 21 2019, 4:28 PM · cloud-services-team (Kanban), Toolforge

Mar 19 2019

russblau added a comment to T218486: Grid jobs stuck on host.

I have four unkillable jobs stuck on the stretch grid for two different tools:

Mar 19 2019, 2:24 PM · cloud-services-team (Kanban), Toolforge

Mar 1 2019

russblau added a comment to T216441: Evaluate transferring the non-replicated tables to the new toolsdb server.

@jcrespo please restore the table s51290__dpl_p.dab_hof ; thanks in advance!

Mar 1 2019, 2:27 PM · Data-Services, cloud-services-team (Kanban)

Feb 19 2019

russblau added a comment to T216441: Evaluate transferring the non-replicated tables to the new toolsdb server.

Also, please try

Feb 19 2019, 11:40 AM · Data-Services, cloud-services-team (Kanban)

Feb 18 2019

russblau added a comment to T216441: Evaluate transferring the non-replicated tables to the new toolsdb server.

Thanks. The tables that I'd like to recover from database s51290__dpl_p if possible are as follows:

Feb 18 2019, 11:23 PM · Data-Services, cloud-services-team (Kanban)
russblau added a comment to T216441: Evaluate transferring the non-replicated tables to the new toolsdb server.

Although I can probably recreate most of the tables in s51290__dpl_p from scratch, there are a few tables I’d like to recover if they turn out to be recoverable. (I’m mobile now but can come up with a list of tables sometime within the next 24 hours).

Feb 18 2019, 8:06 PM · Data-Services, cloud-services-team (Kanban)

Feb 16 2019

russblau updated the task description for T216320: Cannot connect to toolsdb.
Feb 16 2019, 1:17 PM · cloud-services-team (Kanban), Toolforge
russblau created T216320: Cannot connect to toolsdb.
Feb 16 2019, 1:17 PM · cloud-services-team (Kanban), Toolforge

Jul 5 2018

bd808 awarded T193806: Uncategorized articles a Barnstar token.
Jul 5 2018, 11:27 PM · Tools
russblau closed T193806: Uncategorized articles as Resolved.

All working now.

Jul 5 2018, 4:50 PM · Tools

Jul 2 2018

russblau added a comment to T193806: Uncategorized articles.

Sorry for the delay in responding to this. I was able to update the list manually for you.

Jul 2 2018, 5:53 PM · Tools

Feb 26 2018

russblau created T188320: Page.botMayEdit does not parse comma-separated lists correctly.
Feb 26 2018, 9:41 PM · good first task, Patch-For-Review, Pywikibot

Jan 2 2018

russblau created T183987: Add category redirect template on commons.
Jan 2 2018, 8:12 PM · Pywikibot, Patch-For-Review, User-Kizule, Pywikibot-General

Nov 16 2017

russblau reopened T180560: labsdb1004 replication broken: in memory tables from s51290__dpl_p as "Open".

No one contacted me during this whole process, until after everything had been "resolved". I won't run the job with MEMORY tables again, so you can remove the filters.

Nov 16 2017, 10:43 AM · Patch-For-Review, Data-Services, DBA

Nov 3 2017

russblau added a comment to T179614: Enable innodb-large-prefix on tools.db.svc.eqiad.wmflabs.

To answer your question: We cannot ensure that titles in a user database are unique unless we can set a UNIQUE KEY on the entire column; two titles might be identical in the first 254 characters but differ in the 255th (in the most extreme possible case).

Nov 3 2017, 5:14 PM · Patch-For-Review, DBA, Data-Services

Nov 2 2017

russblau created T179614: Enable innodb-large-prefix on tools.db.svc.eqiad.wmflabs.
Nov 2 2017, 8:19 PM · Patch-For-Review, DBA, Data-Services

Oct 25 2017

russblau closed T179005: Has bot account been blocked? as Resolved.

I can't reproduce the issue now, and the bot seems to be logging in as before.

Oct 25 2017, 8:03 PM · MediaWiki-User-login-and-signup
russblau created T179005: Has bot account been blocked?.
Oct 25 2017, 3:09 PM · MediaWiki-User-login-and-signup

Oct 16 2017

russblau added a comment to T138967: Labs database replica drift.

User error :-) please disregard.

Oct 16 2017, 7:47 PM · Data-Services, Epic, DBA
russblau added a comment to T138967: Labs database replica drift.

I have found an apparent replication issue on one of the new servers:

Oct 16 2017, 7:06 PM · Data-Services, Epic, DBA

Sep 22 2017

russblau added a comment to T172882: s51187 and p50380g50692 database users are generating excessive lag on replica service.

Is it possible to give s51290 read-only access to labsdb1001 until I have a chance to update the troublesome scripts?

Sep 22 2017, 5:19 PM · Data-Services, XTools

Sep 4 2017

russblau added a comment to T172882: s51187 and p50380g50692 database users are generating excessive lag on replica service.

What is the specific query that seems to be causing the problem now?

Sep 4 2017, 6:11 PM · Data-Services, XTools

Aug 24 2017

russblau added a comment to T174041: Category redirects broken on commons.

More detail ... in the commons family file (families/commons_family.py), the values in self.category_redirect_templates aren't being picked up when the Family object's .category_redirects() method is called.

Aug 24 2017, 3:14 PM · Patch-For-Review, Pywikibot
russblau created T174041: Category redirects broken on commons.
Aug 24 2017, 3:04 PM · Patch-For-Review, Pywikibot

Aug 10 2017

russblau added a comment to T172882: s51187 and p50380g50692 database users are generating excessive lag on replica service.

ENGINE=MEMORY changed to ENGINE=InnoDB for all dplbot jobs.

Aug 10 2017, 1:08 PM · Data-Services, XTools

Aug 9 2017

russblau added a comment to T172882: s51187 and p50380g50692 database users are generating excessive lag on replica service.

Well, this came as quite a surprise, but I've gone ahead and converted all of dplbot's user databases to use InnoDB. (Hard to believe we were causing all this lag, since the lag was continuing to be a problem even when none of dplbot's jobs were running, but whatever.)

Aug 9 2017, 4:35 PM · Data-Services, XTools

May 25 2017

russblau added a comment to T138967: Labs database replica drift.

@jcrespo: Is there (or will there be) a way to access and create user databases on the new servers (as per https://wikitech.wikimedia.org/wiki/Help:Tool_Labs/Database#User_databases)?

May 25 2017, 7:38 PM · Data-Services, Epic, DBA

Jan 26 2017

russblau reopened T156307: Unable to connect to new database servers as "Open".

Still not working; same error message as previously reported (ERROR 1045).

Jan 26 2017, 1:21 AM · Toolforge, Cloud-Services

Jan 25 2017

russblau updated subscribers of T156307: Unable to connect to new database servers.
Jan 25 2017, 9:24 PM · Toolforge, Cloud-Services
russblau created T156307: Unable to connect to new database servers.
Jan 25 2017, 9:22 PM · Toolforge, Cloud-Services

Nov 5 2016

russblau added a comment to T138967: Labs database replica drift.
MariaDB [enwiki_p]> select page_title from page join pagelinks on pl_from = page_id where page_namespace=0 and pl_namespace = 0 and pl_title="Will_Johnson";
+----------------------------------+
| page_title                       |
+----------------------------------+
| Denver_Broncos                   |
| List_of_current_AFC_team_rosters |
| Will_Johnson_(disambiguation)    |
| William_Johnson_(rugby_player)   |
| Will_Johnson_(American_football) |
| Johnson,_Will                    |
| 2016_Denver_Broncos_season       |
+----------------------------------+
7 rows in set (0.01 sec)
Nov 5 2016, 2:11 PM · Data-Services, Epic, DBA
russblau added a comment to T134203: enwiki_p replica on s1 is corrupted.

Is there any update on the status of the database? The erroneous entries reported back in May are still an issue. It has been nearly six months; is the reimport complete yet? If not, is there an ETA?

Nov 5 2016, 2:04 PM · DBA, Toolforge, Cloud-Services

Sep 8 2016

russblau added a comment to T115231: dplbot webservice on Toolforge repeatedly have its dynamicproxy entry removed (because qsub schedules tasks to webgrid queues, causing portreleaser to run as job epilogue).

It is down again and not restarting. It just went down at approx. 10:20 GMT today (Thursday).

Sep 8 2016, 10:24 AM · Toolforge

Aug 6 2016

russblau added a comment to T115231: dplbot webservice on Toolforge repeatedly have its dynamicproxy entry removed (because qsub schedules tasks to webgrid queues, causing portreleaser to run as job epilogue).

I've had to restart it manually at least once a day for the past several days, although not today (so far).

Aug 6 2016, 11:54 PM · Toolforge

Jul 22 2016

russblau added a comment to T115231: dplbot webservice on Toolforge repeatedly have its dynamicproxy entry removed (because qsub schedules tasks to webgrid queues, causing portreleaser to run as job epilogue).

Is there some custom code that's attempting to autorestart this tool?

Jul 22 2016, 10:13 AM · Toolforge

Jul 21 2016

russblau added a comment to T115231: dplbot webservice on Toolforge repeatedly have its dynamicproxy entry removed (because qsub schedules tasks to webgrid queues, causing portreleaser to run as job epilogue).

It is currently down again. Shell shows the following:

Jul 21 2016, 2:43 PM · Toolforge

Jul 19 2016

russblau added a comment to T115231: dplbot webservice on Toolforge repeatedly have its dynamicproxy entry removed (because qsub schedules tasks to webgrid queues, causing portreleaser to run as job epilogue).

It is down at the moment. "webservice status" says it is running, but "qstat" shows no server process running.

Jul 19 2016, 6:38 PM · Toolforge
russblau added a comment to T115231: dplbot webservice on Toolforge repeatedly have its dynamicproxy entry removed (because qsub schedules tasks to webgrid queues, causing portreleaser to run as job epilogue).

Yes, I had to manually restart it twice today. The automatic webservice restarter is not working.

Jul 19 2016, 5:38 PM · Toolforge
russblau reopened T115231: dplbot webservice on Toolforge repeatedly have its dynamicproxy entry removed (because qsub schedules tasks to webgrid queues, causing portreleaser to run as job epilogue) as "Open".

Reopening; same symptoms are occurring again.

Jul 19 2016, 5:27 PM · Toolforge

Jun 1 2016

russblau added a comment to T126946: disk failure on labsdb1002.

Sorry; it appears that I must have stopped reading before the end of the sentence. :-*>

Jun 1 2016, 8:48 PM · DBA, Cloud-Services, SRE

May 31 2016

russblau added a comment to T126946: disk failure on labsdb1002.

Is there any update on the status of this? On 23 May, the revision table was in progress and was expected to take ~12 hours. The pagelinks table is about 3X larger and so might be expected to take ~36 hours. But this was eight days ago, so even if the estimates were off by a factor of 2 (or 4), the process could have completed by now.

May 31 2016, 9:12 PM · DBA, Cloud-Services, SRE

May 22 2016

russblau added a comment to T125505: Tool Labs: shared Pywikibot code not available.

This has been happening multiple times per month, sometimes more than once in a week. When it happens, it can be fixed simply by re-running the nightly job on the Tool Labs pywikibot account. However, this has to be done manually. It would be much better if the script could be modified to detect failures and start over.

May 22 2016, 11:13 AM · Pywikibot, Cloud-Services, Toolforge

May 2 2016

russblau created T134203: enwiki_p replica on s1 is corrupted.
May 2 2016, 9:45 PM · DBA, Toolforge, Cloud-Services

Jan 19 2016

russblau created T124051: webservice restart times out.
Jan 19 2016, 3:58 PM · Toolforge, Cloud-Services

Dec 30 2015

russblau added a comment to T121305: cron fail on tools-submit.

No cron jobs have run for approximately the last six hours. The error messages I've been getting vary quite a bit; the most recent one was:

Dec 30 2015, 2:45 AM · Toolforge, Cloud-Services

Oct 21 2015

Ladsgroup awarded T116148: 'become' broken in Tool Labs ("sudo: a password is required") a The World Burns token.
Oct 21 2015, 12:57 PM · Patch-For-Review, Cloud-Services, Toolforge
Addshore awarded T116148: 'become' broken in Tool Labs ("sudo: a password is required") a Baby Tequila token.
Oct 21 2015, 12:39 PM · Patch-For-Review, Cloud-Services, Toolforge
zhuyifei1999 awarded T116148: 'become' broken in Tool Labs ("sudo: a password is required") a The World Burns token.
Oct 21 2015, 12:34 PM · Patch-For-Review, Cloud-Services, Toolforge
Luke081515 awarded T116148: 'become' broken in Tool Labs ("sudo: a password is required") a The World Burns token.
Oct 21 2015, 11:37 AM · Patch-For-Review, Cloud-Services, Toolforge
russblau created T116148: 'become' broken in Tool Labs ("sudo: a password is required").
Oct 21 2015, 11:34 AM · Patch-For-Review, Cloud-Services, Toolforge

Oct 11 2015

russblau added a comment to T115231: dplbot webservice on Toolforge repeatedly have its dynamicproxy entry removed (because qsub schedules tasks to webgrid queues, causing portreleaser to run as job epilogue).

I'm not entirely sure because I have been mostly offline myself for several days, but I noticed it definitely on Saturday 10 Oct.

Oct 11 2015, 11:34 PM · Toolforge
russblau created T115231: dplbot webservice on Toolforge repeatedly have its dynamicproxy entry removed (because qsub schedules tasks to webgrid queues, causing portreleaser to run as job epilogue).
Oct 11 2015, 9:20 PM · Toolforge

Mar 4 2015

russblau committed rPWBO727b0544790a: supply missing translations for 'category-renamed', copied from values of… (authored by russblau).
supply missing translations for 'category-renamed', copied from values of…
Mar 4 2015, 8:51 AM
russblau committed rPWBOe0c0eae50cc9: New cat redir template on enwiki (authored by russblau).
New cat redir template on enwiki
Mar 4 2015, 8:49 AM
russblau committed rPWBOa02a3caa771d: Fix login bug for trunk #2983182 (only works if config.use_api_login is True) (authored by russblau).
Fix login bug for trunk #2983182 (only works if config.use_api_login is True)
Mar 4 2015, 8:49 AM
russblau committed rPWBOd9feb5e250c5: Fix typo in r8055 (authored by russblau).
Fix typo in r8055
Mar 4 2015, 8:49 AM
russblau committed rPWBO5d9215f00897: Refactor: Python is an object-oriented language; it makes no sense to pass… (authored by russblau).
Refactor: Python is an object-oriented language; it makes no sense to pass…
Mar 4 2015, 8:48 AM
russblau committed rPWBO6bffeb6b2134: Bugfix: prevent infinite loop when using -start parameter (authored by russblau).
Bugfix: prevent infinite loop when using -start parameter
Mar 4 2015, 8:48 AM
russblau committed rPWBOc499f5c4d7eb: Cleanup code formatting, whitespace, and break long lines; fix some… (authored by russblau).
Cleanup code formatting, whitespace, and break long lines; fix some…
Mar 4 2015, 8:48 AM
russblau committed rPWBO4fae5b5ee391: New category redirect template alias on simple: (authored by russblau).
New category redirect template alias on simple:
Mar 4 2015, 8:48 AM
russblau committed rPWBO4c52dafddd76: Replace redundant list of templates (authored by russblau).
Replace redundant list of templates
Mar 4 2015, 8:48 AM
russblau committed rPWBO194dd0f02645: use library function instead of re-inventing the wheel (also some PEP 8… (authored by russblau).
use library function instead of re-inventing the wheel (also some PEP 8…
Mar 4 2015, 8:48 AM
russblau committed rPWBOfdc863cdf7f6: use library function instead of re-inventing the wheel (also some PEP 8… (authored by russblau).
use library function instead of re-inventing the wheel (also some PEP 8…
Mar 4 2015, 8:48 AM
russblau committed rPWBO545d6fcf3dd2: Update enwiki category name (authored by russblau).
Update enwiki category name
Mar 4 2015, 8:48 AM
russblau committed rPWBObb4c30642d9a: replace all uses of deprecated .has_key() method (authored by russblau).
replace all uses of deprecated .has_key() method
Mar 4 2015, 8:48 AM
russblau committed rPWBO902b66b3ea4a: Commenting out "output" statement that was added without explanation and that… (authored by russblau).
Commenting out "output" statement that was added without explanation and that…
Mar 4 2015, 8:48 AM
russblau committed rPWBO9f153b22054c: Fix for bug 2821989 (templatesWithParameters failed to accept empty parameter… (authored by russblau).
Fix for bug 2821989 (templatesWithParameters failed to accept empty parameter…
Mar 4 2015, 8:48 AM
russblau committed rPWBO7dc9a8ccb5d5: fix syntax error (authored by russblau).
fix syntax error
Mar 4 2015, 8:48 AM
russblau committed rPWBO6e1a016b2f3f: Don't mix spaces and tabs! (authored by russblau).
Don't mix spaces and tabs!
Mar 4 2015, 8:48 AM
russblau committed rPWBO435593a91c0d: Use existing function that correctly handles OS file path conventions (authored by russblau).
Use existing function that correctly handles OS file path conventions
Mar 4 2015, 8:48 AM
russblau committed rPWBO608c733f41f2: add comments to assist in future maintenance (authored by russblau).
add comments to assist in future maintenance
Mar 4 2015, 8:48 AM
russblau committed rPWBOd00739fa516e: .capitalize() is not desirable: (authored by russblau).
.capitalize() is not desirable:
Mar 4 2015, 8:48 AM
russblau committed rPWBO037402d96417: More #REDIRECT synonyms, from MediaWiki message files (authored by russblau).
More #REDIRECT synonyms, from MediaWiki message files
Mar 4 2015, 8:48 AM
russblau committed rPWBO49f422e97a71: translits for exponents (authored by russblau).
translits for exponents
Mar 4 2015, 8:48 AM
russblau committed rPWBO7cd48ab86e63: fix randompages() typos (authored by russblau).
fix randompages() typos
Mar 4 2015, 8:48 AM
russblau committed rPWBOf03ed758259f: use framework's category redirect methods; clean up output, exception… (authored by russblau).
use framework's category redirect methods; clean up output, exception…
Mar 4 2015, 8:48 AM