Page MenuHomePhabricator

Implement Wikimedia browserslist config
Closed, ResolvedPublic

Description

Several packages are taking browserslist configurations into account, f.e. '.browserslistrc' file.

As of current, a few extensions are defining their supported browsers in such files:

  • MobileFrontend
  • PagePreviews/Popups
  • ContentTranslation
  • Wikibase

Moreover some projects have adopted a MediaWiki aligned support list, f.e.:

  • Wikimedia Design Style Guide

Proposal to implement a Wikimedia shared Browserslist config

Similar to eslint-config-wikimedia and stylelint-config-wikimedia we should implement browserslist-config-wikimedia package.

Event Timeline

Repo is initiated at https://github.com/wikimedia/browserslist-config-wikimedia/!

Have also provided an initial import with three different configuration lists for

  • /modern
  • /basic and
  • /mobileFrontendOnly

at https://github.com/wikimedia/browserslist-config-wikimedia/pull/1

An open question is how we'd be dealing with a list where IE 11 is excluded – /modernPlus does not sound right.

I don't think we need to abstract that in advance. Is there a way to extend or inherit a browserlist? Individual repos could perhaps better exclude IE11 explicitly from their config, if and when they're sure none of the frontend code in that repository can get loaded on IE11.

Not fully sure about the overrides when defining a shared config via extend.

Note, that first addition of and using package didn't succeed. /modern was not accepted as sub-config. Not in MF, not in WVUI.

With files based configurations as proposed in https://github.com/wikimedia/browserslist-config-wikimedia/pull/3/files one can easily override specific browsers

extends browserslist-config-wikimedia/basic
not IE <= 10

would be sufficient for current MobileFrontend config.

Volker_E closed this task as Resolved.EditedMay 17 2021, 3:24 PM
Volker_E claimed this task.
Volker_E removed a project: Patch-For-Review.

https://www.npmjs.com/package/browserslist-config-wikimedia v0.2.0 was released and is useable in projects. See T282937 for per-project implementation.