Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FedCM "core": move "extensions" out of the current spec into an independent spec #703

Open
samuelgoto opened this issue Mar 6, 2025 · 9 comments
Assignees

Comments

@samuelgoto
Copy link
Collaborator

As we've been discussing in the CG/WG the last few calls, a few of us started looking into a possible subset of the FedCM specification, which we've been calling "core": a subset of FedCM that 2 independent implementations (in this specific exercise, Chrome and Firefox) agree to implement and ship.

We have been debating exactly what that means, but one good starting point is to "move" features in the current spec that are "clearly" not in "core" (as defined as a feature that any implementation chooses not to ship) into a separate spec, lets call it "extensions".

There are probably more, but here is a concrete list that came up:

There are a lot of other features that are being incubated (e.g. idp registration and lighweight mode) that aren't yet in the spec, so as we review the PR we can decide in the PR itself (rather than here) whether it fits into the "core" or "extensions" specification.

There is also a list of issues that are blocking the candidate recommendation that we'd expect to be part of "core" at some point.

This issue is only covering:

  1. Creating an independent "extensions" spec and
  2. Moving what we classify as "extension" out of the current FedCM spec

This can be closed when/if the "core" FedCM spec only has features that have the support of 2 independent implementations (e.g. a strict subset of the spec that we can use for the Candidate Recommendation).

@selfissued
Copy link

Other W3C specifications have marked features as being "At Risk" if there aren't presently two interoperable implementations. That allows a spec to still go to CR. Doing that would seem cleaner than breaking the spec into multiple specs based on what is and isn't presently implemented.

@samuelgoto
Copy link
Collaborator Author

Other W3C specifications have marked features as being "At Risk" if there aren't presently two interoperable implementations. That allows a spec to still go to CR. Doing that would seem cleaner than breaking the spec into multiple specs based on what is and isn't presently implemented.

This sounds like a great suggestion to me and more incremental than breaking things into two separate specs. @bvandersloot-mozilla WDYT? Would that work for you as an implementation?

@npm1
Copy link
Collaborator

npm1 commented Mar 11, 2025

One thing that was not clear to me was what happens to 'at risk' features when we want to release CR. Does anyone mind explaining that again to me?

@TallTed
Copy link
Contributor

TallTed commented Mar 11, 2025

"At Risk" features typically exist in CRs (Candidate Recommendations), and each warning or feature, as appropriate, is removed when transitioning from CR to PR (Proposed Recommendation).

If two or more independent implementations have demonstrated (or, in some cases, claimed) support for the feature by the end of CR, the "at risk" warning gets removed.

If only one or zero implementations have demonstrated (or claimed) support for the feature by the end of CR, the "at risk" warning and the feature get removed.

There are editorial tactics that can make each of the above easier, such as specifying each feature in its own atomic section within the document — so that the relevant section or warning can be easily deleted, without impacting the remainder of the document. Even so, some editing of the remainder of the document may still be needed, to remove any cross-references to the now-deleted feature.

If an At Risk feature is removed for PR, it may sometimes be transformed to a Note, or sometimes treated as one of the inputs to a subsequent version of a given spec, or sometimes be left to the mists of time.

@TallTed
Copy link
Contributor

TallTed commented Mar 11, 2025

Folks may find reading over the W3C Process helpful, especially the section on Recommendation Track and its Maturity Stages.

@yi-gu yi-gu removed the agenda+ Regular CG meeting agenda items label Mar 12, 2025
@bvandersloot-mozilla
Copy link
Collaborator

On the one hand, this does make it easier to manage, on the other, I fear that "At Risk" may overstate the status of some of the features we are carving out. It isn't strictly "what is presently implemented" defining what is carved out, but rather things that have no plan for implementation in a second engine. In that sense, I think that an extensions document is probably more appropriate.

@wseltzer
Copy link
Collaborator

Discussed in 11 March meeting.

@samuelgoto
Copy link
Collaborator Author

In that sense, I think that an extensions document is probably more appropriate.

What if we started by marking sections of the spec "At Risk" so that we figure out which parts we want to break out, and then we can decide whether those sections should stay (maybe can use another label? say, "extensions") or move them to a separate spec?

Would that work?

@bvandersloot-mozilla
Copy link
Collaborator

I would really prefer if we kept along with our previous plan. I thought we had a sense of what we wanted to break out? This has the benefit of removing the need for a fine-tooth comb to determine what the cross browser bits are when looking at the spec. Is there unexpected difficulty in creating the extensions spec?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants