Skip to content

Commit ac7eeef

Browse files
authored
Update specs (#540)
Includes message formats for `CAP` and the new metadata spec.
1 parent ef3f4f2 commit ac7eeef

File tree

9 files changed

+100
-24
lines changed

9 files changed

+100
-24
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ You should make sure your manually installed local versions match that of [GitHu
4545
1. Update the `spec` submodule. If the spec's a draft, confirm that it has the `work-in-progress: true` tag in the yaml header of the file.
4646
2. List the spec on `_irc/index.md`
4747
3. Add the spec to `_data/irc_versions.yml` - the name here is what's used in the support lists. Look at the `hide-if-no-support` and `hide-on-servers` options, they affect how the support tables are generated. Make sure you put it in the right place sorting-wise.
48-
4. Add relevant numerics/capabilities/isupport tokens/... to `_data/registry.yml`
48+
4. Add relevant numerics/capabilities/isupport tokens/... to `_data/registry.yml` and `_data/standard_replies_registry.yml`
4949
5. Add the relevant support to the data files!
5050

5151
## Licenses

_data/irc_versions.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,11 @@ stable:
104104
link: /specs/extensions/message-tags.html
105105
caps:
106106
- message-tags
107-
metadata3.2:
108-
name: Metadata v3.2
109-
description: Metadata v3.2 [DEPRECATED]
110-
link: /specs/core/metadata-3.2.html
111-
deprecated: true
107+
metadata:
108+
name: Metadata
109+
description: Metadata
110+
link: /specs/extensions/metadata.html
111+
draft: true
112112
monitor:
113113
name: Monitor
114114
description: Monitor

_data/registry.yml

Lines changed: 39 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,41 @@
5454
description: Indicates to a client that their monitor list is full
5555
specs:
5656
- monitor
57+
- numeric: "760"
58+
name: RPL_WHOISKEYVALUE
59+
description: Provides user metadata within a `WHOIS` response
60+
specs:
61+
- metadata
62+
- numeric: "761"
63+
name: RPL_KEYVALUE
64+
description: Provides user metadata as a response to a `METADATA` command, or to notify a user's metadata changed
65+
specs:
66+
- metadata
67+
- numeric: "766"
68+
name: RPL_KEYNOTSET
69+
description: Indicates lack of te requested kind of user metadata as a response to a `METADATA` command, or a notification it was deleted
70+
specs:
71+
- metadata
72+
- numeric: "770"
73+
name: RPL_METADATASUBOK
74+
description: Indicates success of the `METADATA SUB` command
75+
specs:
76+
- metadata
77+
- numeric: "771"
78+
name: RPL_METADATAUNSUBOK
79+
description: Indicates success of the `METADATA UNSUB` command
80+
specs:
81+
- metadata
82+
- numeric: "772"
83+
name: RPL_METADATASUBS
84+
description: Lists metadata keys a client is currently subscribed to, as a response to `METADATA SUBS`
85+
specs:
86+
- metadata
87+
- numeric: "774"
88+
name: RPL_METADATASYNCLATER
89+
description: Indicates that metadata cannot currently be sent, as a reply to a `JOIN` or `METADATA SYNC` command. The client should request `METADATA SYNC` later
90+
specs:
91+
- metadata
5792
- numeric: "900"
5893
name: RPL_LOGGEDIN
5994
description: Indicates that the client is logged in
@@ -182,10 +217,10 @@
182217
specs:
183218
- message-tags
184219
description: Allows clients and servers to use tags more broadly
185-
- name: metadata
220+
- name: metadata-2
186221
specs:
187-
- metadata-3.2
188-
description: Lets clients store metadata about themselves with the server, for other clients to request and retrieve later.
222+
- metadata
223+
description: Lets clients store metadata about themselves with the server, for other clients to request, retrieve, and be notified later later.
189224
- name: monitor
190225
specs:
191226
- monitor
@@ -349,7 +384,7 @@
349384
description: Not defined by IRCv3 but extended to include usernames and hostnames.
350385
- name: METADATA
351386
specs:
352-
- metadata-3.2
387+
- metadata
353388
description: Lets clients store metadata about themselves with the server, for other clients to request and retrieve later.
354389
- name: MONITOR
355390
specs:

_data/standard_replies_registry.yml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,51 @@
7979
description: The client tried to remove messages from a channel they do not have access to, or does not exist
8080
specs:
8181
- message-redaction
82+
- command: METADATA
83+
code: INVALID_TARGET
84+
description: The client requested metadata about a non-existent user
85+
specs:
86+
- metadata
87+
- command: METADATA
88+
code: KEY_INVALID
89+
description: The client tried to get or set an invalid kind of metadata
90+
specs:
91+
- metadata
92+
- command: METADATA
93+
code: KEY_NO_PERMISSION
94+
description: The client tried to get or set a kind of metadata it is not allowed to
95+
specs:
96+
- metadata
97+
- command: METADATA
98+
code: KEY_NOT_SET
99+
description: The client tried to remove a metadata key that already does not exist
100+
specs:
101+
- metadata
102+
- command: METADATA
103+
code: LIMIT_REACHED
104+
description: The client tried to set too many metadata items in a time period
105+
specs:
106+
- metadata
107+
- command: METADATA
108+
code: RATE_LIMITED
109+
description: The client tried to set too many metadata items in a time period, and should retry in the given number of seconds
110+
specs:
111+
- metadata
112+
- command: METADATA
113+
code: SUBCOMMAND_INVALID
114+
description: The client sent a `METADATA` command that was not understood
115+
specs:
116+
- metadata
117+
- command: METADATA
118+
code: TOO_MANY_SUBS
119+
description: The client tried to subscribe to updates to too many kinds of metadata
120+
specs:
121+
- metadata
122+
- command: METADATA
123+
code: VALUE_INVALID
124+
description: The client tried to set a metadata item to an invalid value
125+
specs:
126+
- metadata
82127
- command: REDACT
83128
code: REDACT_FORBIDDEN
84129
description: The client tried to remove messages from a channel they are not authorised to remove messages from

_data/sw_clients.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1259,7 +1259,6 @@
12591259
extended-join:
12601260
invite-notify:
12611261
labeled-response:
1262-
metadata:
12631262
message-redaction:
12641263
message-tags:
12651264
monitor:

_data/sw_libraries.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,6 @@
184184
extended-join:
185185
invite-notify:
186186
message-tags:
187-
metadata:
188187
monitor:
189188
multi-prefix:
190189
sasl-3.1:
@@ -211,7 +210,6 @@
211210
echo-message:
212211
extended-join:
213212
invite-notify:
214-
metadata:
215213
monitor:
216214
multi-prefix:
217215
sasl-3.1:

_data/sw_servers.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,6 @@
193193
echo-message:
194194
extended-join:
195195
invite-notify:
196-
metadata:
197196
monitor:
198197
multi-prefix:
199198
server-time:

_irc/index.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,15 @@ and do not themselves offer any user-facing features. Specific IRCv3
308308
extensions will note their use of (and dependency on) message IDs.
309309

310310

311+
## [Metadata]({{site.baseurl}}/specs/extensions/metadata.html)
312+
313+
The **work-in-progress** [`metadata-2`]({{site.baseurl}}/specs/extensions/metadata.html)
314+
specification is a framework to associate information to users. It succeeds
315+
the v3.2 `METADATA` command, which was found to have issues related to rate-limiting
316+
and excessive notifications, which made it impossible for servers in widespread
317+
use to implement.
318+
319+
311320
## [Monitor]({{site.baseurl}}/specs/extensions/monitor.html)
312321

313322
The `MONITOR` command acts as a standardized way for clients to be alerted when
@@ -410,15 +419,6 @@ implementing them. Generally, these extensions have either been superseded,
410419
or other major implementation issues have been discovered with them.
411420

412421

413-
## [v3.2 Metadata]({{site.baseurl}}/specs/core/metadata-3.2.html)
414-
415-
The v3.2 `METADATA` command was found to have issues related to rate-limiting
416-
and excessive notifications, which made it impossible for servers in widespread
417-
use to implement. A new Metadata specification is being written to address
418-
these issues and overhaul the notification system, so we do not recommend
419-
implementing this spec.
420-
421-
422422
## [STARTTLS]({{site.baseurl}}/specs/deprecated/tls.html)
423423

424424
STARTTLS allows clients to upgrade their plaintext connections to use TLS

0 commit comments

Comments
 (0)