Epic P2
Status Update
Comments
pa...@google.com <pa...@google.com> #2
[Mandatory Source Compatibility for Service
Declarations](https://docs.google.com/document/d/1i_f3PXO4pkhsyDUdyrvOnaCH-
pkwXURp1naP1xbnC_k/edit) approved. It needs to be amended to `ftp-041.md` and
added to `bindings.md`, I’ll do a CL for that.
Declarations](
pkwXURp1naP1xbnC_k/edit) approved. It needs to be amended to `ftp-041.md` and
added to `bindings.md`, I’ll do a CL for that.
fu...@fuchsia-monorail.google.com.iam.gserviceaccount.com <fu...@fuchsia-monorail.google.com.iam.gserviceaccount.com> #3
[Empty comment from Monorail migration]
fu...@fuchsia-monorail.google.com.iam.gserviceaccount.com <fu...@fuchsia-monorail.google.com.iam.gserviceaccount.com> #4
[Empty comment from Monorail migration]
fu...@fuchsia-monorail.google.com.iam.gserviceaccount.com <fu...@fuchsia-monorail.google.com.iam.gserviceaccount.com> #5
[Empty comment from Monorail migration]
fu...@fuchsia-monorail.google.com.iam.gserviceaccount.com <fu...@fuchsia-monorail.google.com.iam.gserviceaccount.com> #6
[Empty comment from Monorail migration]
fu...@fuchsia-monorail.google.com.iam.gserviceaccount.com <fu...@fuchsia-monorail.google.com.iam.gserviceaccount.com> #7
[Empty comment from Monorail migration]
fu...@fuchsia-monorail.google.com.iam.gserviceaccount.com <fu...@fuchsia-monorail.google.com.iam.gserviceaccount.com> #8
[Empty comment from Monorail migration]
fu...@fuchsia-monorail.google.com.iam.gserviceaccount.com <fu...@fuchsia-monorail.google.com.iam.gserviceaccount.com> #9
[Empty comment from Monorail migration]
fu...@fuchsia-monorail.google.com.iam.gserviceaccount.com <fu...@fuchsia-monorail.google.com.iam.gserviceaccount.com> #10
[Empty comment from Monorail migration]
fu...@fuchsia-monorail.google.com.iam.gserviceaccount.com <fu...@fuchsia-monorail.google.com.iam.gserviceaccount.com> #11
[Empty comment from Monorail migration]
ap...@google.com <ap...@google.com> #12
[Empty comment from Monorail migration]
pa...@google.com <pa...@google.com> #14
Is it done? I think we are missing quite a lot:
* Dart support
* Rust support
* Bindings spec
* Documentation for each of the bindings
* Adding this to the compatibility test
* Likely various other things :)
* Dart support
* Rust support
* Bindings spec
* Documentation for each of the bindings
* Adding this to the compatibility test
* Likely various other things :)
pa...@google.com <pa...@google.com> #15
s/Rust support/Go support/ in #comment13
ab...@google.com <ab...@google.com> #16
Ack, fair point. :)
Adam, you had some documentation that you were holding off from landing. Would you be happy to land it now?
Adam, you had some documentation that you were holding off from landing. Would you be happy to land it now?
ad...@google.com <ad...@google.com> #17
I think we can land documentation once https://fuchsia-review.googlesource.com/c/fuchsia/+/521887 lands, since that change will alter what the API looks like from the client's perspective.
ab...@google.com <ab...@google.com> #18
[Empty comment from Monorail migration]
ab...@google.com <ab...@google.com> #19
[Empty comment from Monorail migration]
ab...@google.com <ab...@google.com> #20
[Empty comment from Monorail migration]
ab...@google.com <ab...@google.com> #21
[Empty comment from Monorail migration]
ab...@google.com <ab...@google.com> #22
[Empty comment from Monorail migration]
ab...@google.com <ab...@google.com> #23
[Empty comment from Monorail migration]
ab...@google.com <ab...@google.com> #24
[Empty comment from Monorail migration]
ab...@google.com <ab...@google.com> #25
[Empty comment from Monorail migration]
ab...@google.com <ab...@google.com> #26
[Empty comment from Monorail migration]
ab...@google.com <ab...@google.com> #27
[Empty comment from Monorail migration]
ab...@google.com <ab...@google.com> #28
[Empty comment from Monorail migration]
ab...@google.com <ab...@google.com> #29
[Empty comment from Monorail migration]
ab...@google.com <ab...@google.com> #30
[Empty comment from Monorail migration]
ab...@google.com <ab...@google.com> #31
[Empty comment from Monorail migration]
ab...@google.com <ab...@google.com> #32
[Empty comment from Monorail migration]
ab...@google.com <ab...@google.com> #33
[Empty comment from Monorail migration]
ab...@google.com <ab...@google.com> #34
[Empty comment from Monorail migration]
yp...@google.com <yp...@google.com> #36
[Empty comment from Monorail migration]
mk...@google.com <mk...@google.com> #37
This feature has been in limbo for a long time. I'm writing down the timeline here so that I can link here in the future.
* In April 2019, [RFC-0041: Support for unifying services and devices](https://fuchsia.dev/fuchsia-src/contribute/governance/rfcs/0041_unifying_services_devices?hl=en ) was accepted.
* It was implemented in FIDL bindings for C++ and Rust, but not Go nor Dart.
* In June 2021, there was an email thread "Completing FTP-041: Support for Unifying Services and Devices":
* Pascal judged the feature to be ~40% done, and identified the following remaining tasks: spec updates, support in all bindings (fidlgen backends and runtime support), testing (gidl/conformance suite, dynamic compatibility tests, dangerous identifiers, source_compatibility), docs (example code, guides, bindings reference, FIDL API rubric).
* The CF team filed [bugs for each task](https://bugs.fuchsia.dev/p/fuchsia/issues/list?q=label%3Aunified-services&can=1 ) with the "unified-services" label.
* The CF team wanted support for hierarchical instance names, e.g. `/svc/fuchsia.example.MyService/instance_name1/instance_name2/protocol_name`.
* Pascal suggested this change to the design (and others) deserved its own RFC.
* Adam Lesinski wrote [RFC: Amendment to RFC-0041 to support collection-backed services](https://fuchsia-review.googlesource.com/c/fuchsia/+/544164/ ).
* After some discussion, this was withdrawn.
* In November 2021, Adam commented that they are not pursuing this design at this time.
As of today (February 2022):
* It is still not implemented in Go/Dart.
* `@discoverable` is used 500+ times in non-test .fidl files in fuchsia.git.
* In April 2019, [RFC-0041: Support for unifying services and devices](
* It was implemented in FIDL bindings for C++ and Rust, but not Go nor Dart.
* In June 2021, there was an email thread "Completing FTP-041: Support for Unifying Services and Devices":
* Pascal judged the feature to be ~40% done, and identified the following remaining tasks: spec updates, support in all bindings (fidlgen backends and runtime support), testing (gidl/conformance suite, dynamic compatibility tests, dangerous identifiers, source_compatibility), docs (example code, guides, bindings reference, FIDL API rubric).
* The CF team filed [bugs for each task](
* The CF team wanted support for hierarchical instance names, e.g. `/svc/fuchsia.example.MyService/instance_name1/instance_name2/protocol_name`.
* Pascal suggested this change to the design (and others) deserved its own RFC.
* Adam Lesinski wrote [RFC: Amendment to RFC-0041 to support collection-backed services](
* After some discussion, this was withdrawn.
* In November 2021, Adam commented that they are not pursuing this design at this time.
As of today (February 2022):
* It is still not implemented in Go/Dart.
* `@discoverable` is used 500+ times in non-test .fidl files in fuchsia.git.
sh...@google.com <sh...@google.com> #38
[Empty comment from Monorail migration]
is...@google.com <is...@google.com> #39
This issue was migrated from crbug.com/fuchsia/8035?no_tracker_redirect=1
[Monorail blocked-on:crbug.com/fuchsia/4776 , crbug.com/fuchsia/77933 , crbug.com/fuchsia/77934 , crbug.com/fuchsia/77935 , crbug.com/fuchsia/77936 , crbug.com/fuchsia/77937 , crbug.com/fuchsia/77938 , crbug.com/fuchsia/77939 , crbug.com/fuchsia/77940 , crbug.com/fuchsia/77941 , crbug.com/fuchsia/77942 , crbug.com/fuchsia/77943 , crbug.com/fuchsia/77944 , crbug.com/fuchsia/77945 , crbug.com/fuchsia/77946 , crbug.com/fuchsia/77947 , crbug.com/fuchsia/77948 , crbug.com/fuchsia/8072 , crbug.com/fuchsia/8073 , crbug.com/fuchsia/8074 , crbug.com/fuchsia/8094 , crbug.com/fuchsia/8095 , crbug.com/fuchsia/8096 , crbug.com/fuchsia/8097 ]
[Monorail blocking:crbug.com/fuchsia/33183 ]
[Monorail components added to Monorail Components custom field.]
[Monorail blocked-on:
[Monorail blocking:
[Monorail components added to Monorail Components custom field.]
mk...@google.com <mk...@google.com> #40
Discussion in team sync: we should chat with CF team about what we want to do with this.
Description
## Overview of Implementation Plan
* Source compatibility rules: FIDL team
* Language changes + JSON IR: FIDL team
* Example service in C++: CF team
* Determine what is going to be
* 1\. Codegened
* 2\. FIDL owned runtime
* 3\. CF owned runtime
* Translation of example into other languages (Dart, Rust, Go, etc.)
* Codegen for HLCPP based on example: CF team (in collaboration with respective bindings authors)
* Codegen for other bindings
* Each bindings owner following example in C++, and translation of example
* Documentation
* Grammar, Language spec: FIDL team
* FTP -> md: FIDL team
* FIDL rubric & best practices: CF team
* Echo example : CF team
* 4 flavors of services
* Editor support: FIDL team to inform various editor owners of changes
[Discoverable] to `service`
* Transition to be owned by CF post implementation
* (FIDL team can assist as needed)
## See also
* [FTP-041](
* [FIDL services and build systems](
* [Exposing Unified Services](