Skip to content

Complete editorial overhaul of usubscription.proto#323

Closed
AnotherDaniel wants to merge 5 commits into
eclipse-uprotocol:mainfrom
etas-contrib:subscriber_resource_0
Closed

Complete editorial overhaul of usubscription.proto#323
AnotherDaniel wants to merge 5 commits into
eclipse-uprotocol:mainfrom
etas-contrib:subscriber_resource_0

Conversation

@AnotherDaniel

Copy link
Copy Markdown
Contributor

Update, improve and cleanup comments and documentation of usubscription.proto

This is a complete once-over of almost every doc-string in the usubscription protobuf definition, and the first part of the work to address #321

@AnotherDaniel AnotherDaniel self-assigned this Feb 17, 2026

@sophokles73 sophokles73 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general, I do not think that it is a good idea to put all the effort for documenting the service interface into the proto3 file. FMPOV we should define the service in the specification document using appropriate means, e.g. UML and textual description.
The proto3 file is simply a representation of it that can be fed into a protoc compiler...

Comment thread up-core-api/uprotocol/core/usubscription/v3/usubscription.proto Outdated
Comment thread up-core-api/uprotocol/core/usubscription/v3/usubscription.proto Outdated
Comment thread up-core-api/uprotocol/core/usubscription/v3/usubscription.proto
Comment thread up-core-api/uprotocol/core/usubscription/v3/usubscription.proto
Comment thread up-core-api/uprotocol/core/usubscription/v3/usubscription.proto
Comment thread up-core-api/uprotocol/core/usubscription/v3/usubscription.proto
Comment thread up-core-api/uprotocol/core/usubscription/v3/usubscription.proto
@AnotherDaniel

Copy link
Copy Markdown
Contributor Author

In general, I do not think that it is a good idea to put all the effort for documenting the service interface into the proto3 file. FMPOV we should define the service in the specification document using appropriate means, e.g. UML and textual description. The proto3 file is simply a representation of it that can be fed into a protoc compiler...

I was thinking that too - but this means we'd simply remove all the docs from the proto file (and backsync with the textual spec where necessary).
I'm all for that - but essentially didn't dare to do something that fundamental just like that.

Should we? (remove the docs from proto)

@sophokles73

Copy link
Copy Markdown
Contributor

I was thinking that too - but this means we'd simply remove all the docs from the proto file (and backsync with the textual spec where necessary). I'm all for that - but essentially didn't dare to do something that fundamental just like that.

Should we? (remove the docs from proto)

IMHO we shouldn't remove all comments altogether but instead strip them down to the bare minimum, adding pointers to the specification document for reference.

@PLeVasseur @stevenhartley WDYT?

@AnotherDaniel

Copy link
Copy Markdown
Contributor Author

I was wondering whether to simply use requirement links back to the textual spec...

@sophokles73

Copy link
Copy Markdown
Contributor

I was wondering whether to simply use requirement links back to the textual spec...

You mean OpenFastTrace spec items?

@AnotherDaniel

AnotherDaniel commented Feb 18, 2026

Copy link
Copy Markdown
Contributor Author

Yes, I was thinking OFT dsn items, linking back to the corresponding req items in the text.

That way, the text spec formally becomes the source of truth, and can be implemented/dsn-detailed by any specific technology in the future (should we ever move away from proto, for instance).

@sophokles73 sophokles73 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FMPOV the complete service USubscription should be removed from the proto file because we only need the message definitions when we use AsyncAPI for defining the service interface ...

Comment thread up-l3/usubscription/v3/README.adoc Outdated
Comment on lines +81 to +82
// [.specitem,oft-sid="dsn~usubscription-subscribe-protobuf~1",oft-needs="impl,utest"]
// The uSubscription service `Subscribe()` function *MUST* implement the corresponding protobuf definition in {usubscription_proto_link}.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// [.specitem,oft-sid="dsn~usubscription-subscribe-protobuf~1",oft-needs="impl,utest"]
// The uSubscription service `Subscribe()` function *MUST* implement the corresponding protobuf definition in {usubscription_proto_link}.

@AnotherDaniel AnotherDaniel Jun 3, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one I left in as a marker for this question: do we want to reference the asnycapi defitinition here?
Because there is nothing fundamentally new/additional contained in the asyncapi spec, it's just a more formalized version of the definitions in the README.

Comment thread up-core-api/uprotocol/core/usubscription/v3/usubscription-asyncapi.yaml Outdated
Comment thread up-l3/usubscription/v3/README.adoc Outdated
Comment thread up-l3/usubscription/v3/README.adoc Outdated
@AnotherDaniel

Copy link
Copy Markdown
Contributor Author

FMPOV the complete service USubscription should be removed from the proto file because we only need the message definitions when we use AsyncAPI for defining the service interface ...

Yes this will go - I left in in for now, as I step-by-step remove the service definitions. Once these are all gone, the entire section will go.

Comment thread up-l3/usubscription/v3/README.adoc Outdated
Comment thread up-l3/usubscription/v3/README.adoc
Comment thread up-l3/usubscription/v3/README.adoc Outdated
Comment thread up-l3/usubscription/v3/README.adoc Outdated
Comment thread up-l3/usubscription/v3/README.adoc
Comment thread up-l3/usubscription/v3/README.adoc Outdated
Comment thread up-l3/usubscription/v3/README.adoc Outdated
Comment thread up-l3/usubscription/v3/README.adoc Outdated
Comment thread up-l3/usubscription/v3/README.adoc Outdated
Comment thread up-l3/usubscription/v3/README.adoc Outdated
* is not a valid {uuri_ref} or
* contains a _wildcard_ authority or
* contains a _wildcard_ uEntity ID (`ue_id`) or
// * contains a _wildcard_ resource ID,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this commented out by mistake?

Comment thread up-l3/usubscription/v3/README.adoc Outdated

* is not a valid {uuri_ref} or
* contains a _wildcard_ authority or
* contains a _wildcard_ uEntity ID (`ue_id`) or

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can I subscribe to up://vehicle/FFFFA1B0/8001?

@AnotherDaniel

Copy link
Copy Markdown
Contributor Author

Due to massive changes on all levels of the usubscription API resulting from this rework, this will become a new v4 API instead of a evolution of the current v3.
Closing this PR, will open a new one for adding v4.

@AnotherDaniel AnotherDaniel deleted the subscriber_resource_0 branch June 12, 2026 13:52
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

Successfully merging this pull request may close these issues.

2 participants