Page MenuHomePhabricator

Rename GrowthExperiments ResourceLoader files to follow MediaWiki conventions
Closed, ResolvedPublic

Description

Most of our ResourceLoader files are currently named <group>[/<subgroup>]/<module name>.[less|js] or <group>[/<subgroup>]/<module name>.<class name>.js, e.g. modules/homepage/ext.growthExperiments.Homepage.less or modules/homepage/suggestededits/ext.growthExperiments.Homepage.SuggestedEdits.EndOfQueueWidget.js. (Add Link modules tend to omit the <module name> part.) The long file names can be unwieldy (e.g. the IDE will end up showing some prefix of the file name due to limited space, and that prefix is the same for all files in the module), and the directory structure doesn't give much insight into the module structure. We should come up with a more convenient and more uniform convention.

While asset naming is a bit chaotic in the rest of MediaWiki as well, the most organized parts of the codebase tend to follow one of two conventions:

  1. use file names like <module name>/<module name>.<class>.js and make the class available via the global variable <module name>.<class> (this made a lot of sense before ResourceLoader had package support, probably less sensible today)
  2. use the packageFiles option of ResourceLoader, with file names like <module name>/index.js for the entry point and <module name>/<class>.js for the classes

We should probably pick one of those (probably #2 as it's the more modern convention), make it specific enough to be easy to follow (e.g. where go common files like Utils.js and mixins.less go? do we want some internal grouping if we end up with huge modules due to ResourceLoader module count performance limits?), and rename our existing modules - that's a lot of renames, but it's mostly just search & replace so the biggest burden is probably in rebasing open patches. We don't have that many of them right now, so maybe we can get most of them merged and then do this.

Remaining modules:

Done via T289211: Add Image: Generalize Add Link ResourceLoader modules:

  • ext.growthExperiments.AddLink.onboarding
  • ext.growthExperiments.AddLink
  • ext.growthExperiments.AddLink.mobile
  • ext.growthExperiments.AddLink.desktop

See also:

Details

SubjectRepoBranchLines +/-
mediawiki/extensions/GrowthExperimentsmaster+89 -88
mediawiki/extensions/GrowthExperimentsmaster+18 -13
mediawiki/extensions/GrowthExperimentsmaster+1 K -1 K
mediawiki/extensions/GrowthExperimentsmaster+5 -11
mediawiki/extensions/GrowthExperimentsmaster+8 -8
mediawiki/extensions/GrowthExperimentsmaster+59 -59
mediawiki/extensions/GrowthExperimentsmaster+75 -75
mediawiki/extensions/GrowthExperimentsmaster+15 -17
mediawiki/extensions/GrowthExperimentsmaster+10 -10
mediawiki/extensions/GrowthExperimentsmaster+8 -7
mediawiki/extensions/GrowthExperimentsmaster+2 -2
mediawiki/extensions/GrowthExperimentsmaster+3 -3
mediawiki/extensions/GrowthExperimentsmaster+3 -3
mediawiki/extensions/GrowthExperimentsmaster+6 -6
mediawiki/extensions/GrowthExperimentsmaster+10 -10
mediawiki/extensions/GrowthExperimentsmaster+15 -15
Show related patches Customize query in gerrit

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
Restricted Application added a subscriber: Aklapper. · View Herald Transcript

Might also be worth to raise the topic of an official filename standard on the JS and CSS/LESS coding conventions page.

kostajh triaged this task as Medium priority.Aug 18 2021, 7:54 AM

Option 2 sounds sensible to me. @mewoph what do you think?

Should we start with a patch for just a single ResourceLoader module so we can see how we like the proposed changes before pushing the changes out to all the modules?

@kostajh @Tgr Option 2 sounds good to me as well.

Maybe we should also create a folder for helper/utility functions so that Utils.js can become utils/index.js, mixins.less helpers/mixins.less ?

Might also be worth to raise the topic of an official filename standard on the JS and CSS/LESS coding conventions page.

Turns out this is mentioned already, just not where I would have looked for it: https://www.mediawiki.org/wiki/Manual:Coding_conventions#JS,_CSS,_and_media_files

Maybe we should also create a folder for helper/utility functions so that Utils.js can become utils/index.js, mixins.less helpers/mixins.less ?

Yeah, we'll need some kind of shared folder for files which appear in more than one module.

I'd reserve the name index.js for package entry points, though.

Change 719247 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] Mentor dashboard: Rename ResourceLoader files to follow new conventions

https://gerrit.wikimedia.org/r/719247

Change 719247 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Mentor dashboard: Rename ResourceLoader files to follow new conventions

https://gerrit.wikimedia.org/r/719247

@mewoph I will rename the non-Homepage modules

Change 743144 had a related patch set uploaded (by Sergio Gimeno; author: Sergio Gimeno):

[mediawiki/extensions/GrowthExperiments@master] Welcome survey: rename client module name to follow MediaWiki conventions

https://gerrit.wikimedia.org/r/743144

Change 743153 had a related patch set uploaded (by Sergio Gimeno; author: Sergio Gimeno):

[mediawiki/extensions/GrowthExperiments@master] Confirm email: rename client module name to follow MediaWiki conventions

https://gerrit.wikimedia.org/r/743153

Change 743159 had a related patch set uploaded (by Sergio Gimeno; author: Sergio Gimeno):

[mediawiki/extensions/GrowthExperiments@master] Donor signup: rename client module files to follow MediaWiki conventions

https://gerrit.wikimedia.org/r/743159

Change 743144 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Welcome survey: rename client module name to follow MediaWiki conventions

https://gerrit.wikimedia.org/r/743144

Change 743153 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Confirm email: rename client module name to follow MediaWiki conventions

https://gerrit.wikimedia.org/r/743153

Change 743159 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Donor signup: rename client module files to follow MediaWiki conventions

https://gerrit.wikimedia.org/r/743159

Change 747557 had a related patch set uploaded (by MewOphaswongse; author: MewOphaswongse):

[mediawiki/extensions/GrowthExperiments@master] Move SuggestedEditSession.js out of homepage directory

https://gerrit.wikimedia.org/r/747557

Change 747562 had a related patch set uploaded (by MewOphaswongse; author: MewOphaswongse):

[mediawiki/extensions/GrowthExperiments@master] Rename files in ext.growthExperiments.Homepage.ConfirmEmail & ext.growthExperiments.Homepage.ConfirmEmail.styles

https://gerrit.wikimedia.org/r/747562

Change 747622 had a related patch set uploaded (by MewOphaswongse; author: MewOphaswongse):

[mediawiki/extensions/GrowthExperiments@master] Rename files and modules for discovering the homepage

https://gerrit.wikimedia.org/r/747622

Change 747557 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Move SuggestedEditSession.js out of homepage directory

https://gerrit.wikimedia.org/r/747557

Change 747562 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Rename files in ext.growthExperiments.Homepage.ConfirmEmail & ext.growthExperiments.Homepage.ConfirmEmail.styles

https://gerrit.wikimedia.org/r/747562

Change 747956 had a related patch set uploaded (by MewOphaswongse; author: MewOphaswongse):

[mediawiki/extensions/GrowthExperiments@master] Rename files in ext.growthExperiments.Homepage.Logger & ext.growthExperiments.Homepage.Logging

https://gerrit.wikimedia.org/r/747956

Change 747956 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Rename files in ext.growthExperiments.Homepage.Logger & ext.growthExperiments.Homepage.Logging

https://gerrit.wikimedia.org/r/747956

Change 747622 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Rename files and modules for discovering the homepage

https://gerrit.wikimedia.org/r/747622

Change 748161 had a related patch set uploaded (by Sergio Gimeno; author: Sergio Gimeno):

[mediawiki/extensions/GrowthExperiments@master] Help panel: rename client module to follow MW conventions

https://gerrit.wikimedia.org/r/748161

Change 749520 had a related patch set uploaded (by Sergio Gimeno; author: Sergio Gimeno):

[mediawiki/extensions/GrowthExperiments@master] Help: rename client module to follow MW conventions

https://gerrit.wikimedia.org/r/749520

Change 748161 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Help panel: rename client module to follow MW conventions

https://gerrit.wikimedia.org/r/748161

Change 749520 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Help: rename client module to follow MW conventions

https://gerrit.wikimedia.org/r/749520

Change 752030 had a related patch set uploaded (by MewOphaswongse; author: MewOphaswongse):

[mediawiki/extensions/GrowthExperiments@master] Rename files in ext.growthExperiments.Homepage.Impact, ext.growthExperiments.Homepage.Mentorship and ext.growthExperiments.Homepage.RecentQuestions

https://gerrit.wikimedia.org/r/752030

Change 752035 had a related patch set uploaded (by MewOphaswongse; author: MewOphaswongse):

[mediawiki/extensions/GrowthExperiments@master] Rename files in ext.growthExperiments.Homepage.styles

https://gerrit.wikimedia.org/r/752035

I wonder if files that are shared between several modules, like ext.growthExperiments.Homepage.styles/mixins.less, should maybe be in a "shared" directory, outside the module directories.

Change 752035 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Rename files in ext.growthExperiments.Homepage.styles

https://gerrit.wikimedia.org/r/752035

Change 752030 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Rename files in ext.growthExperiments.Homepage.Impact, ext.growthExperiments.Homepage.Mentorship and ext.growthExperiments.Homepage.RecentQuestions

https://gerrit.wikimedia.org/r/752030

Change 753116 had a related patch set uploaded (by MewOphaswongse; author: MewOphaswongse):

[mediawiki/extensions/GrowthExperiments@master] Combine ext.growthExperiments.Homepage.StartEditing & ext.growthExperiments.Homepage.SuggestedEdits

https://gerrit.wikimedia.org/r/753116

Change 755749 had a related patch set uploaded (by MewOphaswongse; author: MewOphaswongse):

[mediawiki/extensions/GrowthExperiments@master] Consolidate ext.growthExperiments.Homepage.contribs.styles into ext.growthExperiments.Homepage.styles

https://gerrit.wikimedia.org/r/755749

Change 755749 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Consolidate ext.growthExperiments.Homepage.contribs.styles into ext.growthExperiments.Homepage.styles

https://gerrit.wikimedia.org/r/755749

Change 753116 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Combine ext.growthExperiments.Homepage.StartEditing & ext.growthExperiments.Homepage.SuggestedEdits

https://gerrit.wikimedia.org/r/753116

Change 756098 had a related patch set uploaded (by MewOphaswongse; author: MewOphaswongse):

[mediawiki/extensions/GrowthExperiments@master] Move guided tours into tours directory

https://gerrit.wikimedia.org/r/756098

Change 756098 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Move guided tours and tour utils into tours directory

https://gerrit.wikimedia.org/r/756098

There's one more change to move shared LESS files outside of the homepage directory.

Change 756710 had a related patch set uploaded (by MewOphaswongse; author: MewOphaswongse):

[mediawiki/extensions/GrowthExperiments@master] Rename files in utils directory

https://gerrit.wikimedia.org/r/756710

kostajh added a subscriber: Etonkovidova.

hi @Etonkovidova! Overall, many JavaScript and LESS files were renamed and moved, and some minor updates made to account for that. For QA, going through various workflows while keeping an eye on the browser console is probably the most specific QA instructions we could give for this stack of changes. @mewoph may have other comments or guidance though.

Change 756710 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Rename files in utils directory

https://gerrit.wikimedia.org/r/756710

hi @Etonkovidova! Overall, many JavaScript and LESS files were renamed and moved, and some minor updates made to account for that. For QA, going through various workflows while keeping an eye on the browser console is probably the most specific QA instructions we could give for this stack of changes. @mewoph may have other comments or guidance though.

Checked in wmf.19 and wmf.20 - all seem to be in place.