-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add extended-isupport #543
base: master
Are you sure you want to change the base?
Conversation
Rather than adding more numerics can we just require that it gets batched? |
Yeah, that would be a cleaner solution. I wonder if this would be hard for older servers to implement? |
b098736
to
5b75839
Compare
Switched to a batch. Does this look good? |
57e7f21
to
a8eb127
Compare
a8eb127
to
0375eea
Compare
Could you mention that:
|
Not sure how to phrase this. Maybe:
But maybe you want something more precise?
It's in modern: https://modern.ircdocs.horse/#rplisupport-005 |
Also worth noting that Modern gets it from from the original IETF draft isupport specs. |
extensions/extended-isupport.md
Outdated
Sending a change: | ||
|
||
S: :irc.example.org BATCH +asdf draft/isupport | ||
S: @batch=asdf :irc.example.org 005 * CHANNELLEN=64 -NETWORK |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-NETWORK isn't a very realistic example. Also, maybe show a key being changed via removal and readdition. Also these examples could do with the full CAP negotiation being shown, including CAP END and maybe the 001 being sent.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the intended meaning here is that users will get updates before connection registration?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah the last part refers to the previous example sorry.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right. I wasn't sure how far the examples should go, I wouldn't want to list the full registration burst. Will add.
-NETWORK
could happen if the network configuration file is reloaded with the network name removed. Do you have another example in mind which might be more realistic?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, maybe show a key being changed via removal and readdition.
The ISUPPORT spec says that changing a key is done by advertising it again, rather than removing it and then re-adding it.
0375eea
to
e1aea37
Compare
I've tried to address the comments. Let me know what you think! |
Changes look good. No need to force push updates, makes it a bit harder to review. I squash commits on merge anyway. |
Alternatively, instead of spec'ing that servers must send the ISUPPORT list when the cap is enabled, we could guarantee that VERSION works pre-reg and recommend that clients send it after enabling the cap. |
I would be slightly more comfortable with allowing
|
Just specifying an ISUPPORT command that can work pre-reg works for me. Regarding batch, I feel like this was already discussed, but what use case does batch enable? My implementation just incrementally updates the ISUPPORT list whenever an 005 is received, I don't have a need for an end of isupport marker. |
@jwheare there is a note on this here: ircv3/ircv3-ideas#124 (comment) tl;dr it allows the UI to be updated atomically, reducing "flicker". |
Ok so maybe define the ISUPPORT command to require use of a batch if the cap is enabled? But leave the existing automatic isupport sent post reg unbatched. Would that work? |
That wouldn't work if the server wants to send an atomic update of more than 13 tokens. |
6f43376
to
fe412a0
Compare
A new |
Looks good, I merged support for this in ergo and deployed it on my staging server ircs://files.stronghold.network |
I've finally got some time to implement this in Goguma! Here's the patch: https://codeberg.org/emersion/goguma/pulls/2 Ergo's implementation seems to have a small bug: there is an extraneous
With a small workaround for the broken batch type, it seems to work fine: |
Sorry about that. I fixed it in ergochat/ergo#2197 and redeployed. |
The batch is named "draft/isupport", not "draft/extended-isupport". |
Gentle ping :) |
Proposal for ircv3/ircv3-ideas#124