-
Notifications
You must be signed in to change notification settings - Fork 0
Required Plugins #3
Copy link
Copy link
Open
Labels
A-SpecArea: Specification ContentArea: Specification ContentS-PluginsSubject: PluginsSubject: PluginsS-QueriesSubject: QueriesSubject: QueriesS-UnresolvedStatus: UnresolvedStatus: UnresolvedV-pv1Version: PV 1Version: PV 1
Milestone
Metadata
Metadata
Assignees
Labels
A-SpecArea: Specification ContentArea: Specification ContentS-PluginsSubject: PluginsSubject: PluginsS-QueriesSubject: QueriesSubject: QueriesS-UnresolvedStatus: UnresolvedStatus: UnresolvedV-pv1Version: PV 1Version: PV 1
Servers want to be able to require clients to install specific versions of specific plugins.
The server's list of plugins is provided in the query payload, and each entry has a
required: bool.Clients must then install every plugin that is required, with a version matching a semver tilde spec (major and minor must be equal, patch is ignored). This way, plugins can have breaking codec changes in minor versions.
However, as a silly preventative measure for the plugin set changing in the time between the query and the client connecting (that maybe could be postponed), the server sends a hash of the required plugin set in the query payload, and the client then sends it back while connecting to a session. If they don't match, the client disconnects with an error, to avoid weird bugs due to mismatched plugin versions (this also happens with PVNs).
Unresolved: