Sorry for the delay, I will try to answer the various points raised:

> Thanks for raising that there may be some spec changes that don't match 
the current implementation. Can you list which issues you think need to be 
resolved? There are already 3 listed upthread, and I agree that anything 
that has a non-trivial risk of causing interop/compat problems down the 
line is worth spending extra time on.

My concern is not just about a specific list of important issues, it's also 
that new issues keep appearing.
For example, 3 weeks ago, tab proposed a change that would have required 
heavy changes in the implementation: 
https://github.com/w3c/csswg-drafts/issues/8310
That one was retracted, but e.g. just last week Domenic proposed changing 
the CSSOM API: https://github.com/w3c/csswg-drafts/issues/8350
I expect more of these proposals to keep appearing as the spec stabilizes 
and people get a better idea of the feature.
Probably not that many will be accepted, but if you ship first, then compat 
may prevent adopting some of these changes.
There are also gotchas like 
https://github.com/w3c/csswg-drafts/issues/8349, even if they don't result 
in any change, it's beneficial for authors if these potential problems are 
detected and documented before they start using the feature.

> I'm personally reacting to what feels to me like an overly long debate 
around the core syntax of this feature. We surveyed developers about this 
question a full 6 months ago, and we're apparently still spending huge 
amounts of energy debating this syntax choice.

I can understand this position about the core syntax, which has been more 
controversial with long discussions.
But there are things like https://github.com/w3c/csswg-drafts/issues/7850, 
which need to be resolved but probably won't be that controversial and 
won't take long.

> If you and other folks active in the CSSWG discussions feel that another 
month of hard work would lead to a much more stable and agreed upon design, 
then I'm willing to support slipping another milestone.

I think one month could help figuring out some of these less controversial 
details.
And also, about the core syntax syntax controversy, Emilio volunteered to 
investigate the feasibility of unbounded lookaheads in a CSS parser "in the 
next month" (this was said 2 weeks ago).
If such lookaheads are possible, they may reduce the constraints that 
nesting imposes on the language, and avoid closing the door to some 
potential future extensions in the syntax of selectors or declarations. 
Then Peter won't do the formal objection.

> what is the concrete and pragmatic list of work necessary to get this 
feature to a reasonable and pragmatic state for shipping a v1.0 soon, on 
top of which we can continue iterating together?

As said earlier, some backwards incompatible proposals have appeared 
recently, and more may appear soon. So this is not concrete, but I think 
that giving some time for this is good.
Then https://github.com/w3c/csswg-drafts/labels/css-nesting-1 has some 
issues that the CSSWG hasn't discussed at all yet, or some which have been 
resolved but not implemented.
For example, https://github.com/w3c/csswg-drafts/issues/5745 resolved to 
accept the selector & everywhere, defaulting it to :scope. But from a quick 
test it seems that querySelector and querySelectorAll just return null or 
empty array. I guess that implementing this properly may wait, but then 
meanwhile it would probably be better to make these methods throw as they 
do for invalid selectors. Otherwise it will be annoying for authors if they 
want to know if there is no match indeed, or the implementation doesn't 
support that yet.
I'm also concerned that the TAG still hasn't had time to review the 
feature. Waiting one month can give them some time I guess, but I don't 
know their timing constraints.

> Transpilers are a tax, not a solution

I agree, but given that people have been using transpilers for this for a 
long time, and the feature is basically a syntax sugar convenience so it's 
not giving more power to authors, it seems better to wait a bit more. It 
can actually be less convenient for authors if the feature ships earlier 
but then it has to change soon afterwards.

El dia dilluns, 30 de gener de 2023 a les 19:53:15 UTC+1, 
sligh...@chromium.org va escriure:

> +1 to Rick's notes about "*why the hurry*"; there is a high cost to not 
> doing the good we can do in a timely way, and shipping important features 
> is how we make the world better -- and also worse, which is why we hold the 
> train in many cases, but only for a limited time. Transpilers are a tax, 
> not a solution, and if our mental model of platform development admits a 
> view that we should tax developers with transpilers constantly, we've 
> failed.
>
> For context, we first proposed a compatible nesting syntax in 2011:
>
>     https://www.youtube.com/watch?v=qzA60hHca9s
>
> Like variables and many other long-delayed CSS features, this is so far 
> overdue that doing *something* is strongly preferable to being wrong.
>
> So, on balance, this is an easy one. It doesn't need another vote, but in 
> the interest of overwhelming support, LGTM5.
>
> Best,
>
> Alex
>
>
>
> On Fri, Jan 27, 2023 at 4:56 PM Rick Byers <rby...@chromium.org> wrote:
>
>> Yes thanks for weighing in Oriol, I appreciate it - especially in cases 
>> like this when reasonable and well-meaning people may disagree strongly on 
>> the best course of action. I agree that we should do our reasonable best to 
>> identify and resolve such outstanding issues to minimize the risk of having 
>> a future compat problem.
>>
>> I do want to candidly address your "why the hurry" question though. I 
>> personally see having some urgency to ship as being an important balance 
>> against the tendency to get stuck debating some design detail well past the 
>> point of being a reasonable ROI. All engineering is a cost/benefit tradeoff 
>> and I always advise web teams that we should be happy to invest 10x the 
>> cost of "going it alone" in order to get consensus, but not 100x the cost. 
>> There's a fixed level of investment available for making the web better, 
>> and when we fall into the trap of spending 100x in trying to get broader 
>> consensus, it means we're depriving 9 other features in the 10x bucket from 
>> existing.
>>
>> So for nesting, I'm personally reacting to what feels to me like an 
>> overly long debate around the core syntax of this feature. We surveyed 
>> developers about this question a full 6 months 
>> <https://developer.chrome.com/blog/help-css-nesting/>ago 
>> <https://developer.chrome.com/blog/help-css-nesting/>, and we're 
>> apparently still spending huge amounts of energy debating this syntax 
>> choice. As an API OWNER, I have a responsibility to the chromium community 
>> to empower them to proceed with improving chromium without being blocked 
>> indefinitely. In this case I was unable to come up with anything reasonable 
>> I could ask an engineer to do to realistically unblock the core debate, so 
>> rather than tell them they need to keep waiting and hoping for total 
>> consensus I feel I must say "please ship the best design you've got given 
>> the large investment made in consensus so far". Alternately, if there's 
>> really no harm for the web to have developers just continuing to use 
>> preprocessors, then we could instead cancel the feature as being too high a 
>> cost given the apparently low benefit and save us all the hassle.
>>
>> But this is a tricky tradeoff, I'm seeing only a tiny bit on the surface 
>> myself and not deep into it like yourself (both an advantage and 
>> disadvantage). I'm open to being wrong and appreciate being able to have a 
>> candid and respectful public conversation about the tradeoffs. If you and 
>> other folks active in the CSSWG discussions feel that another month of hard 
>> work would lead to a much more stable and agreed upon design, then I'm 
>> willing to support slipping another milestone. So I think that leaves me 
>> with the same basic question as Philp - what is the concrete and pragmatic 
>> list of work necessary to get this feature to a reasonable and pragmatic 
>> state for shipping a v1.0 soon, on top of which we can continue iterating 
>> together?
>>
>> Thanks,
>>    Rick
>>
>>
>> On Fri, Jan 27, 2023 at 3:46 AM Philip Jägenstedt <foo...@chromium.org> 
>> wrote:
>>
>>> Hi Oriol,
>>>
>>> Thanks for raising that there may be some spec changes that don't match 
>>> the current implementation. Can you list which issues 
>>> <https://github.com/w3c/csswg-drafts/labels/css-nesting-1> you think 
>>> need to be resolved? There are already 3 listed upthread, and I agree that 
>>> anything that has a non-trivial risk of causing interop/compat problems 
>>> down the line is worth spending extra time on.
>>>
>>> Best regards,
>>> Philip
>>>
>>> On Fri, Jan 27, 2023 at 2:17 AM obr...@igalia.com <obr...@igalia.com> 
>>> wrote:
>>>
>>>> I don't see the danger of a priority of constituencies inversion. 
>>>> Authors can use preprocessors, just like they have been using for several 
>>>> years, so I don't get where the hurry comes from.
>>>> In fact, I would argue that hurrying to ship a future without having 
>>>> discussed the details just tends to result in a messier language that ends 
>>>> up causing more author frustration in the long-term.
>>>> And it's not just about the bigger controversy of choosing "option 3" 
>>>> vs something else, with the risk of a formal objection. There are various 
>>>> other relevant details.
>>>> For example, just yesterday the CSSWG resolved that `:is(.baz, !&)` 
>>>> should count as containing `&`, and thus match any `.baz` in the page, not 
>>>> just `& .baz` like the current implementation.
>>>> It was also resolved that raw properties in a nested media rule are 
>>>> wrapped in a `& {}` rule, which matches Blink, but there are still some 
>>>> details to discuss, which may or may not match the implementation.
>>>> And there are more issues in the agenda.
>>>> Some of these topics may be minor, or might be fixed before 112 goes 
>>>> into beta. But I don't see why risk shipping something in a hurry without 
>>>> proper discussion, potentially leading to compat problems when trying to 
>>>> change the behavior later.
>>>>
>>>> -- Oriol Brufau
>>>>
>>>> El dia dimecres, 25 de gener de 2023 a les 18:31:03 UTC+1, 
>>>> rby...@chromium.org va escriure:
>>>>
>>>>> We discussed this in the API owner meeting today (Philip, Rego, 
>>>>> Daniel, Chris, Yoav, Mike Taylor and myself). We appreciate that there's 
>>>>> not yet full consensus on the API syntax, but also that we've been in 
>>>>> this 
>>>>> state for several months and we've heard pretty clearly from web 
>>>>> developers 
>>>>> that as a whole they want us to ship something and overwhelmingly 
>>>>> support option 3 
>>>>> <https://webkit.org/blog/13607/help-choose-from-options-for-css-nesting-syntax/>.
>>>>>  
>>>>> It seems to me we're in real danger of a priority of constituencies 
>>>>> <https://www.w3.org/TR/design-principles/#priority-of-constituencies> 
>>>>> inversion here with authors continuing to lose out as a result of 
>>>>> indecision from the implementer and standards community. 
>>>>>
>>>>> Therefore, since option 3 seems to have the bulk of support from web 
>>>>> developers and browser implementers, I agree with Philip that, absent any 
>>>>> stronger consensus emerging, we should proceed with shipping it for M112 
>>>>> (not M111 which is branching this week). *LGTM2* (with the same 
>>>>> criteria as Philip). 
>>>>>
>>>>> However, if the CSSWG resolves to materially change the design or the 
>>>>> TAG completes their review 
>>>>> <https://github.com/w3ctag/design-reviews/issues/791> and requests 
>>>>> specific breaking changes prior to Chrome 112 going to Beta around *March 
>>>>> 1st*, then I'd retract my LGTM and ask us to flag it back off and 
>>>>> circle back here to allow for a new attempt at building more consensus. 
>>>>> As 
>>>>> always, some breaking changes may be possible after that point too, but 
>>>>> it'll depend on the realities of web compat.
>>>>>
>>>>> API owners also agreed that we'd look for 4 LGTMs in this case instead 
>>>>> of the usual 3. 
>>>>>
>>>>> Thanks,
>>>>>   Rick
>>>>>
>>>>> On Wed, Jan 25, 2023 at 11:24 AM Philip Jägenstedt <
>>>>> foo...@chromium.org> wrote:
>>>>>
>>>>>> LGTM1
>>>>>>
>>>>>> I had a chat with Steinar today to answer my questions. Out of the 
>>>>>> open issues, the important ones to resolve before shipping are:
>>>>>> https://github.com/w3c/csswg-drafts/issues/7850
>>>>>> https://github.com/w3c/csswg-drafts/issues/7971
>>>>>> https://github.com/w3c/csswg-drafts/issues/7972
>>>>>>
>>>>>> Those don't seem controversial. My LGTM is assuming spec and tests 
>>>>>> are updated and that we pass those tests before the feature reaches 
>>>>>> stable.
>>>>>>
>>>>>> The final test failure is related to #7850 and is an easy fix.
>>>>>>
>>>>>> Regarding the syntax, there's still disagreement in the CSSWG. 
>>>>>> Unanimous consensus among all WG members doesn't seem possible here, for 
>>>>>> any proposal. Crucially, other browser vendors appear to be OK with 
>>>>>> "option 
>>>>>> 3". I would definitely reconsider my LGTM if there were signs that other 
>>>>>> browser vendors are not keen on shipping option 3, since that would 
>>>>>> create 
>>>>>> an interop problem, and eventually site compat problems as well.
>>>>>>
>>>>>> As always, we should be receptive to new information even after an 
>>>>>> intent has been approved and the flag has been flipped.
>>>>>>
>>>>>> On Wed, Jan 25, 2023 at 11:20 AM Manuel Rego Casasnovas <
>>>>>> re...@igalia.com> wrote:
>>>>>>
>>>>>>> Adding to Philip questions, there seems to be quite a lot of ongoing
>>>>>>> discussions around this topic on the CSSWG, for example today 
>>>>>>> there's a
>>>>>>> special meeting only for CSS Nesting topics:
>>>>>>> https://lists.w3.org/Archives/Public/www-style/2023Jan/0011.html
>>>>>>>
>>>>>>> What's their impact on the current implementation?
>>>>>>>
>>>>>>> Thanks,
>>>>>>>   Rego
>>>>>>>
>>>>>>> On 23/01/2023 18:00, Philip Jägenstedt wrote:
>>>>>>> > I think that we should ship this. It's a high profile and 
>>>>>>> in-demand new
>>>>>>> > feature
>>>>>>> > <
>>>>>>> https://2022.stateofcss.com/en-US/usage/#missing_features_freeform>, 
>>>>>>> so
>>>>>>> > I have a few questions and comments first.
>>>>>>> > 
>>>>>>> > Taking a look at the open spec issues
>>>>>>> > (https://github.com/w3c/csswg-drafts/labels/css-nesting-1
>>>>>>> > <https://github.com/w3c/csswg-drafts/labels/css-nesting-1>) some 
>>>>>>> are
>>>>>>> > explicitly ideas for future changes, but are there any where 
>>>>>>> shipping
>>>>>>> > amounts to a decision that isn't easily changed? I'm thinking 
>>>>>>> especially
>>>>>>> > of the CSSOM issues.
>>>>>>> > 
>>>>>>> > In https://wpt.fyi/results/css/css-nesting
>>>>>>> > <https://wpt.fyi/results/css/css-nesting> there's a single subtest
>>>>>>> > failure, related to how a rule serializes. Is that implemented per 
>>>>>>> spec,
>>>>>>> > or is it tied up with the open CSSOM issues?
>>>>>>> > 
>>>>>>> > Regarding the threat of a formal objection, there doesn't appear 
>>>>>>> to be
>>>>>>> > any solution that would fully satisfy everyone, but I trust your
>>>>>>> > judgment that this is the best option. Additionally, we should not
>>>>>>> > pre-commit Blink to shipping parser changes, and accept the 
>>>>>>> possibility
>>>>>>> > that what we ship now is the final shape of the feature.
>>>>>>> > 
>>>>>>> > On Fri, Jan 20, 2023 at 10:42 AM 'Steinar H. Gunderson' via 
>>>>>>> blink-dev
>>>>>>> > <blin...@chromium.org <mailto:blin...@chromium.org>> wrote:
>>>>>>> > 
>>>>>>> >     Contact emails: se...@chromium.org <mailto:se...@chromium.org
>>>>>>> >,
>>>>>>> >     fut...@chromium.org <mailto:fut...@chromium.org>
>>>>>>> >     Explainer: None
>>>>>>> > 
>>>>>>> >     Specification: https://drafts.csswg.org/css-nesting
>>>>>>> >     <https://drafts.csswg.org/css-nesting>
>>>>>>> > 
>>>>>>> >     Summary: Add the ability to nest CSS style rules inside other 
>>>>>>> style
>>>>>>> >     rules,
>>>>>>> >     combining selectors from the outer with the inner rule for 
>>>>>>> increasing
>>>>>>> >     modularity and maintainability of style sheets.
>>>>>>> > 
>>>>>>> >     Blink component: Blink>CSS
>>>>>>> > 
>>>>>>> >     TAG review: 
>>>>>>> https://github.com/w3ctag/design-reviews/issues/791
>>>>>>> >     <https://github.com/w3ctag/design-reviews/issues/791>
>>>>>>> > 
>>>>>>> >     TAG review status: Pending
>>>>>>> > 
>>>>>>> >     Risks: There is a threat of a formal objection in CSSWG.
>>>>>>> > 
>>>>>>> >     Interoperability and Compatibility:
>>>>>>> > 
>>>>>>> >     Gecko: Positive
>>>>>>> >     (https://github.com/mozilla/standards-positions/issues/695
>>>>>>> >     <https://github.com/mozilla/standards-positions/issues/695>)
>>>>>>> >     WebKit: Positive
>>>>>>> >     (https://github.com/WebKit/standards-positions/issues/69
>>>>>>> >     <https://github.com/WebKit/standards-positions/issues/69>)
>>>>>>> > 
>>>>>>> >     Debuggability
>>>>>>> >     Nesting style rules will be a big change for editing and 
>>>>>>> displaying
>>>>>>> >     style rules in the inspector:
>>>>>>> > 
>>>>>>> >     - Showing displaying nested rules for matching declarations
>>>>>>> >     - Editing selectors
>>>>>>> >     - Inserting nested rules
>>>>>>> >     - etc...
>>>>>>> > 
>>>>>>> >     Tracking issue for devtools support: https://crbug.com/1172985
>>>>>>> >     <https://crbug.com/1172985>
>>>>>>> >     Devtools says they're on track for shipping in M111.
>>>>>>> > 
>>>>>>> >     Will this feature be supported on all six Blink platforms 
>>>>>>> (Windows,
>>>>>>> >     Mac, Linux,
>>>>>>> >     Chrome OS, Android, and Android WebView)? Yes
>>>>>>> > 
>>>>>>> >     Is this feature fully tested by web-platform-tests? Yes
>>>>>>> > 
>>>>>>> >     Flag name: CSSNesting
>>>>>>> > 
>>>>>>> >     Requires code in //chrome? False
>>>>>>> > 
>>>>>>> >     Tracking bug: https://crbug.com/1095675 <
>>>>>>> https://crbug.com/1095675>
>>>>>>> > 
>>>>>>> >     Estimated milestones
>>>>>>> >     DevTrial on desktop     109
>>>>>>> >     DevTrial on Android     109
>>>>>>> >     Shipping                112
>>>>>>> > 
>>>>>>> > 
>>>>>>> >     Anticipated spec changes: See above.
>>>>>>> > 
>>>>>>> >     Link to entry on the Chrome Platform Status:
>>>>>>> >     https://chromestatus.com/feature/5800613594529792
>>>>>>> >     <https://chromestatus.com/feature/5800613594529792>
>>>>>>> > 
>>>>>>> >     Links to previous Intent discussions:
>>>>>>> >     Intent to prototype:
>>>>>>> >     
>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/YzrEmc%2BqlqPv72Au%40google.com
>>>>>>>  
>>>>>>> <
>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/YzrEmc%2BqlqPv72Au%40google.com
>>>>>>> >
>>>>>>> > 
>>>>>>> >     -- 
>>>>>>> >     Software Engineer, Google Norway
>>>>>>> > 
>>>>>>> >     -- 
>>>>>>> >     You received this message because you are subscribed to the 
>>>>>>> Google
>>>>>>> >     Groups "blink-dev" group.
>>>>>>> >     To unsubscribe from this group and stop receiving emails from 
>>>>>>> it,
>>>>>>> >     send an email to blink-dev+...@chromium.org
>>>>>>> >     <mailto:blink-dev%2bunsu...@chromium.org>.
>>>>>>> >     To view this discussion on the web visit
>>>>>>> >     
>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/Y8ph9gk50U2D92f3%40google.com
>>>>>>>  
>>>>>>> <
>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/Y8ph9gk50U2D92f3%40google.com
>>>>>>> >.
>>>>>>> > 
>>>>>>> > 
>>>>>>> > 
>>>>>>> > -- 
>>>>>>> > You received this message because you are subscribed to the Google
>>>>>>> > Groups "blink-dev" group.
>>>>>>> > To unsubscribe from this group and stop receiving emails from it, 
>>>>>>> send
>>>>>>> > an email to blink-dev+...@chromium.org
>>>>>>> > <mailto:blink-dev+...@chromium.org>.
>>>>>>> > To view this discussion on the web visit
>>>>>>> > 
>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYdMTE%3DjWA4AVXeJfGGTZ5WNzQCR4MiHONuZD3gq43PAOg%40mail.gmail.com
>>>>>>>  
>>>>>>> <
>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYdMTE%3DjWA4AVXeJfGGTZ5WNzQCR4MiHONuZD3gq43PAOg%40mail.gmail.com?utm_medium=email&utm_source=footer
>>>>>>> >.
>>>>>>>
>>>>>> -- 
>>>>>> You received this message because you are subscribed to the Google 
>>>>>> Groups "blink-dev" group.
>>>>>>
>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>>> an email to blink-dev+...@chromium.org.
>>>>>> To view this discussion on the web visit 
>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYckGUc%3DxjifpXRrOi_UQ2SCXO%2B68GuDAT4r0B%2B8qC4WSw%40mail.gmail.com
>>>>>>  
>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYckGUc%3DxjifpXRrOi_UQ2SCXO%2B68GuDAT4r0B%2B8qC4WSw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "blink-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to blink-dev+...@chromium.org.
>>
> To view this discussion on the web visit 
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFUtAY_GfAW6OMy%3DV1ziiqSR2Qrs405KN8nd%2BBzF%3DHb8pqisFg%40mail.gmail.com
>>  
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFUtAY_GfAW6OMy%3DV1ziiqSR2Qrs405KN8nd%2BBzF%3DHb8pqisFg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/07904d75-d8d9-4c85-aa0b-3fde7dbbbebdn%40chromium.org.

Reply via email to