Skip to content

Allow non-spec links to be provided for non-standard features #2433

Open
@captainbrosset

Description

@captainbrosset

As we head into a new phase of the project where we focus more on bleeding-edge features, we'll very frequently run into a case where features only have early explainers, and no specs.

Currently, the way to deal with this is to create an exception and document when we ought to remove the exception, in this file:

const defaultAllowlist: allowlistItem[] = [
// [
// "https://example.com/spec/",
// "Allowed because…. Remove this exception when https://example.com/org/repo/pull/1234 merges."
// ]

This doesn't seem very scalable as we start thinking more about an ideal workflow for early features that are not yet standardized, and don't have specs.

Activity

jamesnw

jamesnw commented on Dec 12, 2024

@jamesnw
Collaborator

The spec link is just part of a larger question around bleeding-edge features.

My thought is that we should handle this similar to discouraged, and add something like this-

future:
  documentation: [link to explainer, whatever is relevant]

Features with a future could have looser restrictions, including not validating the spec key.

The ideal flow would be a feature would get assigned an ID so that it could be referred to from the <baseline-status> widget and elsewhere, and then once there are BCD keys available, we would add those. When any of those BCD keys are released in a browser without a flag, we could remove the future key.

We would still need to account for cases where features are renamed before implementation, and would want to communicate that the future web-feature ids are less stable.

Some other features/requests for things that aren't ready to be a feature yet (or weren't a feature when opened)-

#1778 is also related towards solving this and #1896 has a different angle.

captainbrosset

captainbrosset commented on Dec 12, 2024

@captainbrosset
ContributorAuthor

The WebDX CG discussed about this issue today, see minutes here.

Some key points from that disucssion:

  • We'll need housekeeping tooling to alert us of when an early feature either doesn't go anywhere (and needs to be removed), or graduates to a standard feature with a spec (which would require us to update the feature with the new spec URL).
  • Early features are likely to be renamed, we'd need to be able to do this without necessarily breaking IDs or publishing a new major version.
  • browser-specs has the same problem. Relying on browser-specs to alert us of changes seems good, although it moves the problem, doesn't solve it.
  • Feature names and designs tend to change more than we think. So this is definitely a problem we need a solution for.
captainbrosset

captainbrosset commented on Jan 30, 2025

@captainbrosset
ContributorAuthor

As time passes, I'm constantly reminded of new features that our repo simply doesn't have because they don't yet have a spec or set of BCD keys.

My opinion here is that, yes there are problems to be solved, but I don't think we should have to be blocked from adding these early features to the repo. The problems to be solved are about renaming, graduating, merging, and deleting early features.

I believe we can solve those problems without having to hold back authors from adding features in the meantime. Practically speaking, this means that I would actually prefer if we could merge PRs like #2301 or #2592 now. In fact, merging (a few of) these early PRs would act as a forcing function for us.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @jamesnw@captainbrosset

        Issue actions

          Allow non-spec links to be provided for non-standard features · Issue #2433 · web-platform-dx/web-features