Changelog:
Encourage clients to immediately leave the room if they receive a
bookmark notification with autojoin set to false (mye)
I disagree strongly with this change.
"The XEP describes an automated way to sync which MUCs you are joined." It could
additionally do that, but it doesn't, and that was not the original purpose of
bookmarks. The stated purpose is "a syntax and storage profile for keeping a list of
chatroom bookmarks on the server." XEP-0048 also allows for bookmarking URLs, but
obviously that's better left to web browsers; this does, however, point towards the
actual intention of "I want to save these useful links to MUCs/websites for potential
future use" - which is not "I want all of these links to be opened automatically
when I log in." The autojoin attribute adds additional utility, but it's not the
purpose of the XEP; and autojoin is not even for syncing which MUCs you're joined.
Table 1 clearly defines the purpose of the 'autojoin' attribute as "Whether
the client should automatically join the conference room on login", i.e. whether the
client should join the given MUC immediately after login, without the user having to do so
explicitly. Unfortunately, some clients have (wrongly) decided to repurpose the attribute
to keep track of which MUCs the client is currently joined - while this may be related, it
is not the same thing. If such behaviour is desirable (of course it is) then it should be
an additional 'joined' attribute.
"But the only time I (as a representative of all sane persons) ever leave a MUC is
because I don't want to return." That works for you, but in that case this change
doesn't really affect you - the only time you might set autojoin to false is to leave
permanently, and so you're more likely just to delete the bookmark entirely.
For those of us (arguably, not so sane persons) who do not want to be permanently joined,
and prefer to join and leave by choice, autojoin should have a constant value of 0;
instead, this behaviour means that if I forget to leave each individual MUC before logging
out, I will be forced to join them the next time I login, even though I had explicitly set
autojoin to 0 because I specifically did not want that behaviour, i.e. the client is not
doing what I asked.
"But section 4 says clients should join the MUC when autojoin is set to true, so this
is just matching the opposite behaviour." Yes, but actually no. If I set autojoin to
true then it's a sensible presumption (but still a presumption, not an explicit
request) that I would also like to join the MUC now rather than waiting until the next
time I login. If I set autojoin to false, that is only an indication that I want to choose
when I join - it does not mean I suddenly want to leave. You can argue that join if added
and leave if deleted are weird, but there is some sense behind them; there is little sense
in making "don't autojoin" equal to "leave now."
"Many clients are already doing these things, so it's just making the XEP match
actual behaviour." Some clients did the wrong thing, others copied that behaviour
assuming it must be the right thing, so now they all do the wrong thing; so, let's now
mandate the wrong thing so at least everyone can be consistently wrong. No.
"They're all SHOULDs, so clients could allow not doing this." They could
(they won't), but why are we making the wrong thing the default? If anything it should
be the other way.
TL;DR: autojoin only means whether to join automatically on login, it's not for
tracking/controlling which MUCs you're currently in; "I don't want to join
automatically" is not equivalent to "I want to leave now."