Git Product home page Git Product logo

Comments (7)

kaniini avatar kaniini commented on June 1, 2024

Interpretation response

Consensus has been established that a STATUSMSG capability which behaves as above is acceptable, except with the following modification:

At paragraph 6, sentence 1, the wording will be changed to:

If a client which performs capability negotiation explicitly negates the STATUSMSG capability, then the server SHALL NOT send any channel name prefixed with any STATUSMSG characters.

Rationale

It is desirable for the IRCv3 STATUSMSG capability to behave in a way that allows graceful compatibility with clients not yet compatible with version 3.2 of the specification. Specification versions 3.0 and 3.1 do not define the STATUSMSG capability, thusly, the change would subtly break compatibility with those clients. Additionally, it would make implementation of the IRCv2 compatibility requirement mentioned in paragraph 8, sentence 1:

For clients that do not negotiate capabilities, IRCv2 fallback basically has us treating the client as if it had sent the token.

Interpretation of other concerns

Paragraph 5, sentence 1:

A server MUST NOT support a character as both a STATUSMSG prefix and as a CHANTYPE.

This interpretation is upheld as valid.

STATUSMSG may only:

  • Contain characters that are valid prefixes as documented by the RPL_ISUPPORT PREFIX token, and;
  • Contain characters that are NOT channel-type prefixes.

Suggested action

Write a formal specification for STATUSMSG and add it to the extension registry as statusmsg-3.2.

from ircv3-specifications.

jillest avatar jillest commented on June 1, 2024

It looks like this will break STATUSMSG if an existing client that already supports STATUSMSG is upgraded with CAP support. I don't like that.

from ircv3-specifications.

Elizafox avatar Elizafox commented on June 1, 2024

@jillest STATUSMSG is so little used I don't think that's much of a concern. Clients will have to be fixed at the same time, I guess.

from ircv3-specifications.

jillest avatar jillest commented on June 1, 2024

I don't like breaking compatibility anyway. Channels that use STATUSMSG often use it quite a bit.

from ircv3-specifications.

Elizafox avatar Elizafox commented on June 1, 2024

This is really quite a mess. Here are my ideas:

  1. disabling STATUSMSG by default without CAP. This disables statusmsg for clients, even if it already works with it (I personally am more for this solution because it's a non-standard extension, little-used except for some nichés, and a lot of clients are already broken due to being unaware of its existence since it's non-standard). The workaround is if the client doesn't have tge CAP, just send it as a normal PRIVMSG.

1a) Potentially use a message tag to mark STATUSMSG messages.

  1. Making it part of the standard, always unconditionally enabled. I don't know if I like this (I don't use it, I don't know anyone who does).

Unless anyone has a better idea...

from ircv3-specifications.

kaniini avatar kaniini commented on June 1, 2024

We could just leave it alone, which was my proposal. As in, the only option if you didn't want to sanely implement STATUSMSG, but implement other parts of IRCv3 would be explicit optout, i.e. CAP REQ ~statusmsg.

from ircv3-specifications.

Elizafox avatar Elizafox commented on June 1, 2024

Sure, but it still needs to be documented and standardised then. I'm for opting-out as sort of an anti-CAP.

from ircv3-specifications.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.