Skip to content

Commit

Permalink
Update specs (#540)
Browse files Browse the repository at this point in the history
Includes message formats for `CAP` and the new metadata spec.
  • Loading branch information
progval authored Nov 12, 2024
1 parent ef3f4f2 commit ac7eeef
Show file tree
Hide file tree
Showing 9 changed files with 100 additions and 24 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ You should make sure your manually installed local versions match that of [GitHu
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.
2. List the spec on `_irc/index.md`
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.
4. Add relevant numerics/capabilities/isupport tokens/... to `_data/registry.yml`
4. Add relevant numerics/capabilities/isupport tokens/... to `_data/registry.yml` and `_data/standard_replies_registry.yml`
5. Add the relevant support to the data files!

## Licenses
Expand Down
10 changes: 5 additions & 5 deletions _data/irc_versions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,11 @@ stable:
link: /specs/extensions/message-tags.html
caps:
- message-tags
metadata3.2:
name: Metadata v3.2
description: Metadata v3.2 [DEPRECATED]
link: /specs/core/metadata-3.2.html
deprecated: true
metadata:
name: Metadata
description: Metadata
link: /specs/extensions/metadata.html
draft: true
monitor:
name: Monitor
description: Monitor
Expand Down
43 changes: 39 additions & 4 deletions _data/registry.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,41 @@
description: Indicates to a client that their monitor list is full
specs:
- monitor
- numeric: "760"
name: RPL_WHOISKEYVALUE
description: Provides user metadata within a `WHOIS` response
specs:
- metadata
- numeric: "761"
name: RPL_KEYVALUE
description: Provides user metadata as a response to a `METADATA` command, or to notify a user's metadata changed
specs:
- metadata
- numeric: "766"
name: RPL_KEYNOTSET
description: Indicates lack of te requested kind of user metadata as a response to a `METADATA` command, or a notification it was deleted
specs:
- metadata
- numeric: "770"
name: RPL_METADATASUBOK
description: Indicates success of the `METADATA SUB` command
specs:
- metadata
- numeric: "771"
name: RPL_METADATAUNSUBOK
description: Indicates success of the `METADATA UNSUB` command
specs:
- metadata
- numeric: "772"
name: RPL_METADATASUBS
description: Lists metadata keys a client is currently subscribed to, as a response to `METADATA SUBS`
specs:
- metadata
- numeric: "774"
name: RPL_METADATASYNCLATER
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
specs:
- metadata
- numeric: "900"
name: RPL_LOGGEDIN
description: Indicates that the client is logged in
Expand Down Expand Up @@ -182,10 +217,10 @@
specs:
- message-tags
description: Allows clients and servers to use tags more broadly
- name: metadata
- name: metadata-2
specs:
- metadata-3.2
description: Lets clients store metadata about themselves with the server, for other clients to request and retrieve later.
- metadata
description: Lets clients store metadata about themselves with the server, for other clients to request, retrieve, and be notified later later.
- name: monitor
specs:
- monitor
Expand Down Expand Up @@ -349,7 +384,7 @@
description: Not defined by IRCv3 but extended to include usernames and hostnames.
- name: METADATA
specs:
- metadata-3.2
- metadata
description: Lets clients store metadata about themselves with the server, for other clients to request and retrieve later.
- name: MONITOR
specs:
Expand Down
45 changes: 45 additions & 0 deletions _data/standard_replies_registry.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,51 @@
description: The client tried to remove messages from a channel they do not have access to, or does not exist
specs:
- message-redaction
- command: METADATA
code: INVALID_TARGET
description: The client requested metadata about a non-existent user
specs:
- metadata
- command: METADATA
code: KEY_INVALID
description: The client tried to get or set an invalid kind of metadata
specs:
- metadata
- command: METADATA
code: KEY_NO_PERMISSION
description: The client tried to get or set a kind of metadata it is not allowed to
specs:
- metadata
- command: METADATA
code: KEY_NOT_SET
description: The client tried to remove a metadata key that already does not exist
specs:
- metadata
- command: METADATA
code: LIMIT_REACHED
description: The client tried to set too many metadata items in a time period
specs:
- metadata
- command: METADATA
code: RATE_LIMITED
description: The client tried to set too many metadata items in a time period, and should retry in the given number of seconds
specs:
- metadata
- command: METADATA
code: SUBCOMMAND_INVALID
description: The client sent a `METADATA` command that was not understood
specs:
- metadata
- command: METADATA
code: TOO_MANY_SUBS
description: The client tried to subscribe to updates to too many kinds of metadata
specs:
- metadata
- command: METADATA
code: VALUE_INVALID
description: The client tried to set a metadata item to an invalid value
specs:
- metadata
- command: REDACT
code: REDACT_FORBIDDEN
description: The client tried to remove messages from a channel they are not authorised to remove messages from
Expand Down
1 change: 0 additions & 1 deletion _data/sw_clients.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1259,7 +1259,6 @@
extended-join:
invite-notify:
labeled-response:
metadata:
message-redaction:
message-tags:
monitor:
Expand Down
2 changes: 0 additions & 2 deletions _data/sw_libraries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,6 @@
extended-join:
invite-notify:
message-tags:
metadata:
monitor:
multi-prefix:
sasl-3.1:
Expand All @@ -211,7 +210,6 @@
echo-message:
extended-join:
invite-notify:
metadata:
monitor:
multi-prefix:
sasl-3.1:
Expand Down
1 change: 0 additions & 1 deletion _data/sw_servers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,6 @@
echo-message:
extended-join:
invite-notify:
metadata:
monitor:
multi-prefix:
server-time:
Expand Down
18 changes: 9 additions & 9 deletions _irc/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,15 @@ and do not themselves offer any user-facing features. Specific IRCv3
extensions will note their use of (and dependency on) message IDs.


## [Metadata]({{site.baseurl}}/specs/extensions/metadata.html)

The **work-in-progress** [`metadata-2`]({{site.baseurl}}/specs/extensions/metadata.html)
specification is a framework to associate information to users. It succeeds
the v3.2 `METADATA` command, which was found to have issues related to rate-limiting
and excessive notifications, which made it impossible for servers in widespread
use to implement.


## [Monitor]({{site.baseurl}}/specs/extensions/monitor.html)

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


## [v3.2 Metadata]({{site.baseurl}}/specs/core/metadata-3.2.html)

The v3.2 `METADATA` command was found to have issues related to rate-limiting
and excessive notifications, which made it impossible for servers in widespread
use to implement. A new Metadata specification is being written to address
these issues and overhaul the notification system, so we do not recommend
implementing this spec.


## [STARTTLS]({{site.baseurl}}/specs/deprecated/tls.html)

STARTTLS allows clients to upgrade their plaintext connections to use TLS
Expand Down
2 changes: 1 addition & 1 deletion specs

0 comments on commit ac7eeef

Please sign in to comment.