Skip to content

Allow ranged dates and versions for non-threshold support information #1018

@ddbeck

Description

@ddbeck

This issue is blocked on adopting an earliest-possible-date indicator, as in #623.

@foolip, @Rumyra, and I had a chat earlier that veered into this topic. I am trying to capture that conversation, but I invite them to correct me on any misstatements here.

Proposal

Allow an "at least this early" range indicator (e.g., ) on status block version numbers and dates, if those dates and versions are Baseline high.

For dates, (i.e., baseline_low_date and baseline_high_date) a range indicator would be taken to mean "this date but potentially earlier." That is, new or wider availability may have been more historical, but not newer.

For version numbers, a range indicator would be taken to mean "supported this version and later." That is, support in preceding versions would be unknown, not unsupported.

Example

Ranges for version numbers would allow web-features to communicate the distinction between caniuse's red, green, and gray boxes. Take this, for example:

Screenshot 2024-04-30 at 18 37 30

The corresponding data would look like this:

support:
  chrome: "45"
  edge: "≤15"
  safari: "7.1"
  firefox: "25"

Presently, our schema would only be able to show unsupported for Edge versions less than 15.

Motivation

This has a few key benefits:

  • Shortens the time and effort to set statuses for older features, even when we're certain they're Baseline high
  • Provides a transparent way to handle version ranges from BCD (right now we don't show when we source version ranges from BCD)
  • Makes it easy to find and prioritize features for later refinement

Though it comes at increased integration burden to consumers (though it's likely most could strip out the indicator).

@foolip and I are spending quite a lot of time picking apart features and cleaning up data in BCD, so that each version numbers reported by web-features is accurate. So far, we've been pretty meticulous, so that a consumer could take version numbers for a feature's support block and report that the feature was supported from those versions continuously to the present and that preceding versions were unsupporting. That's ideal, especially for recent features where it's important for developers to have accuracy through the whole life of the feature.

For older features, however, there's less value in knowing precisely which version marked the beginning of support for a feature while the cost of finding that precise version increases substantially. Whether a feature originally shipped in one of the core browsers in 2017 or 2016 is probably not a make-or-break event for using that feature, as long as we're reasonably certain it's no later than a given date or version number.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestschemaSchema changes, proposals, and bugs

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions