web-platform-dx / web-features

Exploring how to present Web platform features adoptability
https://web-platform-dx.github.io/web-features/
Apache License 2.0
398 stars 77 forks source link

Publish and maintain a `browserslist` query. #264

Open romainmenke opened 1 year ago

romainmenke commented 1 year ago

There are multiple requests to re-create X but for Baseline or to add support for Baseline in Y.

I personally don't want to spend my time doing that.
Any tool that already exists and supports browserslist can be configured to align with Baseline.

The missing piece however is an authoritative and maintained browserslist query.

Today this might be :

last 2 Chrome versions, last 2 ChromeAndroid versions, last 2 Edge versions, last 2 Firefox versions, last 2 FirefoxAndroid versions, Safari >= 15, iOS >= 15

or

last 2 Chrome versions, last 2 ChromeAndroid versions, last 2 Edge versions, last 2 Firefox versions, last 2 FirefoxAndroid versions, last 2 Safari versions, last 2 iOS versions

It would make sense if this working group maintained and published a browserslist query that can be used by others.


I don't know what "published" means.
It might just be text on a web page.

nickserv commented 1 year ago

Personally I'd use this list from web.dev and the creator of Browserslist, excluding mobile versions that already mirror desktop versions:

last 2 chrome versions
last 2 edge versions
last 2 firefox versions
last 2 safari major versions

Theses lists are all evergreen so far, which means they'd dynamically target recent browsers, and not support yearly updates like Baseline 24. Is this intentional, or would we need to support those yearly versions for parity with the rest of the Baseline ecosystem? As far as I'm aware, these haven't been released yet, but they have been announced by Google.

romainmenke commented 1 year ago

That definition isn't correct :

But I also think this is off topic :)

This issue isn't about the definition of Baseline or the exact browserslist query. It's about who makes, maintains and publishes this browserslist query.

I think it should be done by this community group.

nickserv commented 1 year ago

mobile isn't the same as desktop (e.g. iOS webviews)

I believe they are practically the same. iOS apps are currently only allowed to use WebKit/Safari in webviews and apps (including "different" browsers). Android AOSP uses Chromium, though consumers are likely using a fork with Chrome installed through the a store (OEM ROMs) or a gapps apk (custom ROMs).

last 2 safari versions is 16.5, 16.4 whereas Baseline has 16 and 15 at this time

I didn't realize that. Is there native syntax in Browserslist that would support that?

But I also think this is off topic. :) ... I think [publishing the browserslistquery] should be done by this community group.

I think that's reasonable, especially since this group would probably understand how to maintain updates better.

romainmenke commented 1 year ago

I believe they are practically the same.

They are not :)

iOS webviews have a different set of feature flags and also unfortunately unique bugs.

IntersectionObserver for example still doesn't work on the current iOS webviews. iOS webviews are not iOS Safari. These are what is used by for example Facebook in app.


I didn't realize that. Is there native syntax in Browserslist that would support that?

Not at this time, but it's also not yet important given that the definition already changed here and is likely to change further.

If the final definition is something that isn't easy to express in browserslist it would make sense to make some changes there.

nickserv commented 1 year ago

last 2 safari versions is 16.5, 16.4 whereas Baseline has 16 and 15 at this time

I didn't realize that. Is there native syntax in Browserslist that would support that?

Not at this time, but it's also not yet important given that the definition already changed here and is likely to change further.

If the final definition is something that isn't easy to express in browserslist it would make sense to make some changes there.

I figured out that replacing safari versions with safari major versions fixes this! I have fixed (my list).

ios major versions also works. major versions seems to not do anything for other browsers, though.

romainmenke commented 1 year ago

Please keep this in mind :

Not at this time, but it's also not yet important given that the definition already changed here and is likely to change further.

see : https://github.com/web-platform-dx/feature-set/issues/173#issuecomment-1564427433

romainmenke commented 1 year ago

And again, it isn't relevant what the Baseline definition is or which browserslist query it translates to for the purpose of this issue :)

In fact it is about the opposite.

If this working group publishes and maintains a browserslist query it will allow people willing to adopt it, to stop thinking about both.

romainmenke commented 11 months ago

The current definition is very feature centric so it isn't possible to publish a browserslist for "Widely available" or Newly available as it would differ per feature.

I think this issue can be closed as it isn't actionable.

dfabulich commented 11 months ago

Since the distinction between "Widely available" and "Newly available" is just whether the feature has been available in the target browsers for 30 months, you can get a very close approximation with this Browserslist query:

last 3 years, not dead

https://browsersl.ist/#q=last+3+years%2C+not+dead