The following discussion is an archived debate. Please do not modify it. To request review of this BRFA, please start a new section at WT:BRFA. The result of the discussion was  Approved.

Operator: Primefac (talk · contribs · SUL · edit count · logs · page moves · block log · rights log · ANI search)

Time filed: 18:54, Monday, December 26, 2016 (UTC)

Automatic, Supervised, or Manual: automatic

Programming language(s): AWB

Source code available: AWB

Function overview: Replace deprecated parameters post-TFD merger of ((video game release)) and ((video game release new))

Links to relevant discussions (where appropriate): TFD and the ensuing discussion

Edit period(s): one time run

Estimated number of pages affected: 13,000 ± 500

Exclusion compliant (Yes/No): yes

Already has a bot flag (Yes/No): yes

Function details: Using regex, will replace \| *(JP|NA|PAL|EU|AUS|BR|UK|INT|WW) *= * with |$1| in the template call in order to remove named parameters (which are being phased out thanks to better coding post-merge).

Discussion[edit]

@Primefac: We might want to account for when the parameter has no value. For instance ((Video game release|EU=|NA=January 1, 2018)) would get converted to ((Video game release|EU|NA|January 1, 2018)). This makes a link to EU but with NA as the link text, which I don't think is what we want MusikAnimal talk 02:58, 28 December 2016 (UTC)Reply[reply]

Good point. \| *(JP|NA|PAL|EU|AUS|BR|UK|INT|WW) *= *(.*?)\| going to |$1|$2| would cover that, and would leave a blank second parameter. Primefac (talk) 03:09, 28 December 2016 (UTC)Reply[reply]
It seems the new regex wouldn't work when there is both a parameter and value, and also won't capture the last parameter/value of the template since it is not followed by a pipe [1] (I know you're not using Ruby, but I assume this evaluates in the same way). I think the first approach is less prone to error. Maybe we could only target parameters that have word-like characters as the value [2]. With this you'll end up with something like ((Video game release|NA=|EU|January 1, 2018|AUS|1 January, 2017)) which still leaves the NA=, but the rendered template is correct. How does that sound? MusikAnimal talk 03:53, 28 December 2016 (UTC)Reply[reply]
I could set up two searches, one which does ...= *\w as you've suggested, and one which does ...= *(\||}), the latter replacing to |$1|$2. This would catch both sets of conditions. Primefac (talk) 04:03, 28 December 2016 (UTC)Reply[reply]
The latter ...= *(\||}) would have to account for when the pipe or closing )) is on a new line. If we can take care of that, a two-step process might work. A programmatic approach, if possible, might be more well-rounded. For instance [3], which accounts for all the weird possibilities with newlines, and both sets of conditions. Here you could check if there was a second value in the match group, and if not (as with match 2), remove that parameter altogether. Note the /m to make .*? match newlines. If you want to go the simpler approach that's perfectly fine :) Do however make sure \w is a positive lookahead, which I forgot, otherwise that single word character would get removed. In Ruby this is (?=\w). See [4] vs [5] MusikAnimal talk 04:41, 28 December 2016 (UTC)Reply[reply]
Example 3 works a charm. Did some manual testing on my account ([6]). I tried looking for examples with newlines, but after 200 skips I figured I'd just go with it. I did test it out in AWB's regex tester, and the test case given in example 3 works fine. So, I think we'll go with that option. Primefac (talk) 16:29, 28 December 2016 (UTC)Reply[reply]

Approved for trial (100 edits). Please provide a link to the relevant contributions and/or diffs when the trial is complete. but do link either here, the TfD or the discussion in the edit summary. The edit rate you went with for other tasks seems reasonable too – 10 to 20 edits per minute. We can speed this up a tad if there are no issues with the trial MusikAnimal talk 18:28, 28 December 2016 (UTC)Reply[reply]

Trial complete. Primefac (talk) 00:43, 29 December 2016 (UTC)Reply[reply]
 Approved. I spot checked all 100 edits and everything checks out. There was one edit where the bot removed whitespace from an unrelated template. Why that happened I'm not sure, but it doesn't seem to a problem. I realize there's a lot of pages to go through so we might want to bump up the edit rate. I'm going to recommend around 30 edits per minute. We're not concerned about performance, but should something go wrong it's best it doesn't happen at high speed :) 30 EPM would amount to around seven hours to process all ~11,000 pages, but being an automatic bot task I assume this is not an issue MusikAnimal talk 05:44, 29 December 2016 (UTC)Reply[reply]
The above discussion is preserved as an archive of the debate. Please do not modify it. To request review of this BRFA, please start a new section at WT:BRFA.