schema: add notification schemas and generated bindings#8938
Open
nepet wants to merge 7 commits intoElementsProject:masterfrom
Open
schema: add notification schemas and generated bindings#8938nepet wants to merge 7 commits intoElementsProject:masterfrom
nepet wants to merge 7 commits intoElementsProject:masterfrom
Conversation
Add schema definitions for the documented native notifications which were still only described in prose. This makes the notification payloads available in doc/schemas so msggen can consume them in later commits, while keeping this commit schema-only. The balance_snapshot schema follows the current implementation shape: the notification wrapper contains a single balance_snapshot object whose accounts field is an array of account snapshots.
Add schema files for the documented xpay notifications using the temporary flat naming convention. These topics are plugin-emitted rather than native lightningd notifications, so keep them separate from msggen generation for now while still recording their subscriber-visible payload shape in doc/schemas.
Expand the native notification list consumed by msggen and regenerate the Rust and gRPC outputs for the documented notification schemas. This wires the new schema-backed native notifications through cln-rpc, cln-grpc, and the bundled msggen schema metadata. Keep the temporary xpay-prefixed plugin notifications out of generation for now. coin_movement.extra_tags remains a repeated string in the generated gRPC surface for now because msggen does not currently emit enums nested under repeated array items correctly. Changelog-Changed: cln-rpc and cln-grpc now expose notification bindings for balance_snapshot, coin_movement, deprecated_oneshot, disconnect, forward_event, invoice_creation, invoice_payment, log, onionmessage_forward_fail, openchannel_peer_sigs, plugin_started, plugin_stopped, sendpay_failure, sendpay_success, shutdown, and warning.
Treat xpay as a built-in plugin for notification generation and include its documented notification schemas in the msggen output. This extends the generated cln-rpc and cln-grpc notification surfaces with the flat xpay schema files, while exposing the actual notification names `pay_part_start` and `pay_part_end` in generated APIs. Changelog-Changed: cln-rpc and cln-grpc now expose xpay notification bindings for `pay_part_start` and `pay_part_end`.
Bump the Rust binding crates after adding new notification bindings, and roll pyln-grpc-proto because the published grpc surface changed with the regenerated node.proto. cln-plugin is unchanged because this branch does not alter its public API. Changelog-Changed: cln-rpc 0.5.1, cln-grpc 0.5.1, and pyln-grpc-proto 25.12 include the new notification bindings added in this series.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Important
26.04 FREEZE March 11th: Non-bugfix PRs not ready by this date will wait for 26.06.
RC1 is scheduled on March 23rd
The final release is scheduled for April 15th.
Checklist
Before submitting the PR, ensure the following tasks are completed. If an item is not applicable to your PR, please mark it as checked:
tools/lightning-downgradeAdd JSON schemas for 18 notification topics (native and xpay), generate Rust and gRPC bindings from them via msggen, and include round-trip deserialization tests for the most complex types.