XMPP Council - 2019-10-09

  1. pep.

    dwd: https://github.com/xsf/xeps/pull/840 I think you forgot this

  2. pep.

    (Mentioned above)

  3. Ge0rG

    Is it Council Meeting Day again?

  4. Ge0rG

    Time flies fast.

  5. Kev

    I shall be trying to make it, but AFK a bit.

  6. Link Mauve

    Hi, I am here.

  7. Ge0rG

    Hi Link Mauve

  8. jonas’

    I am here too

  9. jonas’

    I also just sent feedback on CS-2020 to the list

  10. Link Mauve

    Breakfast is almost ready here.

  11. Ge0rG

    Damn, I'm hungry.

  12. jonas’

    I could eat, too.

  13. jonas’

    that’s not fair.

  14. Link Mauve

    I’m still so sad for the onions I just cut, and I don’t know why.

  15. jonas’

    because you murdered those onions

  16. Link Mauve

    jonas’, uh, I haven’t received your email yet.

  17. Link Mauve

    Ah, now I have.

  18. dwd

    Oh, good lord. It's time for a meeting.

  19. jonas’

    Link Mauve, yeah, the list server is a bit slow

  20. dwd


  21. dwd

    1) Roll Call

  22. Link Mauve


  23. jonas’

  24. Ge0rG ,o/

  25. dwd

    Great, that's quorum.

  26. dwd

    2) Agenda Bashing

  27. jonas’

    as pep mentioned: https://github.com/xsf/xeps/pull/840

  28. dwd

    Note pep.'s comment above about #840.

  29. jonas’

    I don’t know of anything else

  30. dwd

    3) Items for a vote

  31. dwd

    a) ProtoXEP: Message Retraction https://github.com/xsf/xeps/blob/master/inbox/message-retraction.xml

  32. jonas’

    why not: https://xmpp.org/extensions/inbox/message-retraction.html ?

  33. dwd

    Because I'm half asleep?

  34. dwd

    But yes, much better URL.

  35. Ge0rG


  36. jonas’


  37. jonas’

    shall handle it together with that message moderation protoxep

  38. Link Mauve

    On-list too.

  39. dwd

    I'm +1. But willing to be told I'm wrong later. :-)

  40. Ge0rG

    reaction, retraction, attach-to-fastening

  41. dwd

    Ge0rG, Retracting reactions is perfectly fine.

  42. Ge0rG

    dwd: what about correcting retracted reactions?

  43. Ge0rG

    We could probaby go on with this forever.

  44. jonas’

    let’s move on.

  45. Ge0rG

    Did I mention I still have some more AOBs pending?

  46. dwd

    OK, we'll move to:

  47. dwd

    b) https://github.com/xsf/xeps/pull/840

  48. jonas’

    I’m not sure if that needs a feature

  49. pep.

    context: https://mail.jabber.org/pipermail/standards/2019-October/036502.html as it's not mentioned in the PR

  50. dwd

    Is this suggesting that we has an infinity symbol as a legal value?

  51. jonas’

    dwd, I think so

  52. Zash

    An "max_items=current + 1 plz" option would be handy

  53. pep.

    dwd, I assume it's just a placeholder, council can of course bikeshed on what to put as a value :P

  54. Ge0rG

    I'm not sure whether "∞" is supposed to be a verbatim value for that field, or just some elaborate joke.

  55. Ge0rG

    Oh, what dwd said.

  56. Ge0rG

    Is the value to be transmitted by the server or by the client?

  57. dwd

    Well, I'll -1 this then. Having "-1" or empty seems sane for unlimited, but not novel unicode glyphs.

  58. Ge0rG

    I'm with dwd here.

  59. Ge0rG

    Also I don't understand the implied semantics of that value.

  60. daniel

    > Is the value to be transmitted by the server or by the client? both; depending on context

  61. Link Mauve

    -1 would be bad imo.

  62. jonas’

    In any case, the text needs to be clearer on what the actual value on the wire for "the server limit" is.

  63. dwd

    pep., It's really not for Council to do stuff like that.

  64. Kev

    Here, sorry.

  65. Link Mauve

    Having it mean arbitrarily-high value wouldn’t be nice.

  66. pep.

    dwd, you mean it's not for council to provide feedback?

  67. jonas’

    Link Mauve, but it does that when you cast it to uint ;-)

  68. jonas’

    (* on some platforms)

  69. Link Mauve

    jonas’, so with an example?

  70. Ge0rG

    jonas’: don't get me started about the semantics of 0198 stanza counter overflow.

  71. jonas’

    Ge0rG, :-)

  72. Ge0rG

    jonas’: it's NOT funny

  73. dwd

    pep., Sure, we can provide feedback that a symbol I can't remember how to type isn't going to work.

  74. dwd

    Anyone else voting?

  75. Kev

    I'd have thought "" would be better than ∞.

  76. Kev

    But then so would anything I can type.

  77. jonas’

    I meant to say -1

  78. Ge0rG

    we need a value that is a distinct "explicitly set to unlimited", which "" maybe is not.

  79. Kev

    -1 for untypable glyphs in particular.

  80. Kev

    Ge0rG: It's not actually unlimited, is it? It's 'largest server-allowed value'.

  81. Ge0rG

    it could be just "-"

  82. Kev

    "", "-", "unlimited", "max", all are better than "∞", I think.

  83. dwd

    I could go along with "". That probably works on servers now. I doubt they all mandate an integer value here.

  84. Ge0rG

    Kev: "∞" is better than ""

  85. jonas’

    this discussion reminds me of: > APL apparently used +.× [as infix matrix multiplication operator], which by combining a multi-character token, confusing attribute-access-like . syntax, and a unicode character, ranks somewhere below U+2603 SNOWMAN on our candidate list.

  86. jonas’

    dwd, servers may easily default to 1 for ""

  87. jonas’

    I wouldn’t trust that

  88. Ge0rG

    also there is ambiguity between "" and unset

  89. jonas’

    especially PEP implementaitons.

  90. dwd

    Perhaps. Either way, the proposal is an infinity symbol, so the point it moot.

  91. Kev

    "max" sounds good to me, but anything typable beats untypable, I think.

  92. Zash

    dwd: Wrong. Prosody has some limited support for the dataforms datatypes XEP.

  93. dwd

    4) Outstanding Votes

  94. Ge0rG

    We have two votes expire today

  95. dwd

    I'll get to those votes after this meeting.

  96. dwd

    I know I have outstanding.

  97. Link Mauve

    The value must be something current servers won’t understand imo, otherwise we’re exposing ourselves to implementation details.

  98. dwd

    I'm sure others do as well.

  99. dwd

    5) Next Meeting

  100. pep.

    Kev, "max" sounds good indeed

  101. daniel

    could council provide me with some clear direction on how to fix the PR instead of just saying no?

  102. dwd

    Same time next week?

  103. jonas’

    dwd, +1wwfm

  104. Ge0rG

    +1W WFM

  105. jonas’

    daniel, I think we did. Don’t use "∞", use some text value instead. In addition, make it clear what is the magic value.

  106. Ge0rG

    daniel: replace ∞ with "max"?

  107. Ge0rG

    daniel: also it would be nice to have an explanation of the semantics of that value when sent by the client vs. by the server

  108. dwd

    daniel, You'll almost certainly need a feature if you're doing something existing servers don't understand.

  109. dwd

    6) AOB a) Georg wishes to thrash out CS-2020, please review https://github.com/xsf/xeps/pull/841

  110. Ge0rG

    I've modified the XEP with a new intro text, added some more XEPs

  111. Ge0rG

    more XEPs to be added are asked for

  112. jonas’

    oh, I forgot about that PR; luckily, judging from the summary, my feedback is still valid

  113. Ge0rG

    Also the "future work" section

  114. daniel

    > daniel: also it would be nice to have an explanation of the semantics of that value when sent by the client vs. by the server where. in the label?

  115. dwd

    daniel, Not now, please.

  116. Link Mauve

    Ge0rG, I’ll be on-list for that.

  117. dwd

    Ge0rG, I think everything you've got in #841 looks good.

  118. Link Mauve

    I wasn’t aware of this PR until now.

  119. Ge0rG

    jonas’ was so kind to propose some more XEPs for CS-2020

  120. Ge0rG

    ...on list

  121. Link Mauve

    But it looks nice.

  122. Ge0rG

    please also comment on jonas’ suggested XEPs

  123. dwd

    jonas’, Ge0rG - do you have an archive link to the email?

  124. Ge0rG

    oh, yeah: important detail: I want this XEP to get through Council before the Council re-election, so feedback closes on November 5th

  125. Ge0rG

    dwd: https://mail.jabber.org/pipermail/standards/2019-October/036515.html

  126. jonas’

    dwd, one sec

  127. jonas’

    dwd, ^

  128. dwd

    Thanks. That was of course for the record and not because I'd completely forgotten it.

  129. jonas’

    dwd, the email I sent 4 minutes before this meeting started? ;)

  130. jonas’

    good thing you didn’t forget about it, that would indicate very bad memory ;)

  131. dwd

    Oh, OK. So I'd just not seen it yet. :-)

  132. Ge0rG

    Apparently everybody is on-list to this AOB?

  133. dwd

    Ge0rG, Do you want a formal vote?

  134. Ge0rG

    dwd: on the PR? No.

  135. jonas’

    Ge0rG, I think #841 looks good, but I didn’t review the yes/no changes if any because they’re hard to read in the diff.

  136. Ge0rG

    I'm the owner of the XEP, so I can do whatever I want.

  137. dwd

    Ge0rG, Indeed you can.

  138. Ge0rG

    jonas’: it was just a `s/#10005/no/g` kind of change

  139. jonas’


  140. jonas’

    Ge0rG, then only the feedback I already sent to the list standrs

  141. jonas’

    Ge0rG, then only the feedback I already sent to the list stands

  142. Ge0rG

    jonas’: it was very good, thank you

  143. jonas’

    you’re welcome :)

  144. Ge0rG

    I feel slightly inclined to abuse my power to add XEP-0379 to Advanced Mobile.

  145. dwd

    Ge0rG, I think it all looks good. I'm inclined to agree with Evgeny, too - ditching BOSH sounds like a plan.

  146. Ge0rG

    dwd: see my response on-list

  147. Kev

    I would be more inclined to keep BOSH with a note that where possible WSS is better.

  148. Kev

    (But am not vetoing anything that happens based on either outcome)

  149. jonas’

    Ge0rG, something about tokens ;)

  150. jonas’

    (would be an excellent response to evgeny)

  151. Ge0rG

    jonas’: something about rejected and/or abandoned protoXEPs

  152. jonas’

    Ge0rG, something about SASL-HT something

  153. dwd

    Ge0rG, Something about client-key.

  154. jonas’

    Ge0rG, something about Instant Stream Resumption (which is Experimental)

  155. jonas’

    dwd, that’s what I meant

  156. Ge0rG

    jonas’: are you sure it's not Deferred?

  157. jonas’

    Deferred \subset Experimental in my book

  158. Link Mauve

    Deprecating BOSH might be a plan, but it sounds like it’s still worth it to have it supported by servers.

  159. dwd

    Could we deprecate BOSH in clients but not in servers?

  160. Ge0rG

    Link Mauve: this is exactly what jonas’ suggested in the first mail

  161. jonas’

    Ge0rG, not exactly

  162. Ge0rG

    dwd: we could in CS-2020

  163. jonas’

    Ge0rG, I said clients can pick one

  164. jonas’

    which isn’t deprecating BOSH

  165. dwd

    Ge0rG, RIght, what I meant.

  166. jonas’

    oh wait, I said something about phasing out

  167. Ge0rG

    jonas’: but you also suggested to phase out BOSH ;)

  168. jonas’

    but that was an "maybe even" because what do I know about web

  169. dwd

    As we're coming toward close, can I ask people to keep an eye on Georg's work on CS-2020, and suggest we revisit this every meeting until it ships?

  170. jonas’


  171. pep.

    jonas’, is it 114 you want to remove? I'm curious why. Do you want to push for 225? :p

  172. dwd

    Anyone want to raise anything else before we close the meeting?

  173. Link Mauve

    Do we have any data about how usable/blocked WebSocket is in the wild, compared to BOSH?

  174. Ge0rG

    dwd: yes.

  175. Ge0rG

    I forgot a tiny little thing.

  176. jonas’

    pep., no, and only removing for Core Server. You can host a Component on a standalone piece of software, no need to have support for this in every server.

  177. Ge0rG

    We need to LC CS-2020 two weeks in advance to the final vote.

  178. Ge0rG

    That would mean we have to LC it next week

  179. Ge0rG


  180. jonas’

    Ge0rG, SGTM

  181. jonas’

    I’d like to call everyone on council ( Kev, dwd, Link Mauve, Ge0rG and me) to try to make this work for once.

  182. jonas’

    I.e. vote on list quickly to let it enter LC

  183. Ge0rG

    Which is why I'd like to vote for LC now, and use the LC phase to sort out "Future Development"

  184. Link Mauve

    Same, I will propose changes before next week if I have any.

  185. jonas’

    I don’t think we can technically still vote.

  186. Ge0rG

    can't we vote in AOB?

  187. dwd

    Ge0rG, Ah, rather renders my suggestion a waste of time.

  188. jonas’

    I’m +1 on LC after #841 has been included. My feedback shall be counted as LC feedback then.

  189. Ge0rG

    dwd: your suggestion of revisiting it each meeting? It's sound.

  190. dwd

    Ge0rG, No, I suggest we Last Call it next week, and this week we ensure we've helped get it to the right shape.

  191. Ge0rG

    It's still in urgent and dire need of content for "Future Development", though

  192. Ge0rG

    dwd: well, let's go on with that, then.

  193. dwd

    But please, let's make sure we're in a position to vote on this within the meeting - otherwise we will run out of time.

  194. Ge0rG


  195. dwd

    Sound good to everyone?

  196. Link Mauve


  197. jonas’


  198. Ge0rG

    I have a gut feeling that we will run out of time, so I'll pester everybody delaying the vote with messages.

  199. dwd

    OK. With that, I think we're done.

  200. Ge0rG

    If we vote LC now, we still have roughly enough time in the worst case.

  201. Ge0rG

    Because surely somebody will on-list the LC vote until October 23rd.

  202. dwd

    7) Ite, Meeting Est

  203. jonas’

    Thanks everyone.

  204. Ge0rG

    Thanks Dave, thanks everybody else.

  205. Link Mauve

    Thanks. :)

  206. dwd

    Ge0rG, I hope not.

  207. Kev


  208. Ge0rG

    dwd: ^

  209. Kev

    Did I do that right?

  210. jonas’ squints at Kev

  211. Ge0rG

    Don't make me sad, Council comrades.

  212. jonas’

  213. Ge0rG

    jonas’: do you want me to pile up more changes into #841?

  214. jonas’

    Ge0rG, asking me as editor?

  215. Ge0rG

    jonas’: yes

  216. jonas’

    Ge0rG, I have no strong opinion one way or the other.

  217. Ge0rG

    jonas’: I'd like to have a single revision block for everything between CS-2019 and Final CS-2020.

  218. jonas’

    Ge0rG, if you do, remind me at least 24h before the next meeting about merging it

  219. jonas’

    Ge0rG, that’s not going to be possible

  220. jonas’

    we need to make a release prior to LC

  221. jonas’

    and there will be feedback during LC which needs a separate revision block

  222. dwd

    Ge0rG, I'd rather we merged and published on a release early/often kind of style.

  223. Ge0rG

    Does that ask for a "Changes since 2019" sub-section?

  224. dwd

    Ge0rG, Might nudge people to make more comments that way.

  225. Ge0rG

    dwd: I'm not talking about not releasing, I'm talking about having a history block that's useful in 2020, and not just in November 2019.

  226. dwd

    Ge0rG, I don't hugely care about changes. People can figure those out by comparing the docs, they're not radically different in layout etc.

  227. jonas’

    dwd, I don’t agree

  228. jonas’

    strongly disagree even

  229. Ge0rG

    dwd: using out awesome xep-diff infrastructure?

  230. Ge0rG

    dwd: using our awesome xep-diff infrastructure?

  231. Ge0rG

    dwd: as a developer, I want to have all the changes at a glance, so that I can evaluate what needs to be dump to bump my CS level..

  232. pep.

    figuring out xep changes is a pita indeed

  233. daniel

    i still would like some clear consultation on how to resolve #840; since this is something that council will have to decide i'm not sure that brute force trying different version only to be told -1 every week is a productive method

  234. jonas’

    daniel, I gave you clear advice which I think will be accepted by all members if I read this meeting correctly.

  235. daniel

    unless council doesn’t feel that this is important in that case i'll just stop

  236. jonas’

    daniel, do you even read what I’m writing?

  237. pep.

    jonas’, there was another question

  238. pep.

    daniel> > daniel: also it would be nice to have an explanation of the semantics of that value when sent by the client vs. by the server where. in the label?

  239. jonas’

    to that my answer is: find a suitable location in the prose of the document and insert it there.

  240. jonas’

    maybe around publish-options or the disco#info example

  241. Ge0rG

    daniel: I don't much care about the where. It should be readable, so "in the label" is probably not the smartest place to put it

  242. jonas’

    probably publish-options

  243. jonas’

    or that

  244. jonas’

    I don’t care too much either way

  245. Ge0rG

    what jonas’ said

  246. daniel

    the thing is that none of the other node configs are explained anywhere

  247. jonas’


  248. daniel

    feels weird to randomly start explaining max

  249. jonas’

    which isn’t great

  250. Ge0rG

    daniel: PRs welcome.

  251. Kev

    Personally, I will un--1 it as soon as it's "max" instead of <glyph>, and would accept probably a large number of other typeable strings too

  252. Kev

    Descriptions desirable but not required in this case, for me.

  253. Ge0rG

    I would +0 or +1 it without a description, but not without a feature flag

  254. jonas’

    Ge0rG, that’s new.

  255. dwd

    daniel, ASCII character set value, and probably a feature.

  256. daniel

    max and feature flag have been added fwiw

  257. Ge0rG

    jonas’: what's new?

  258. jonas’

    Ge0rG, your requirement

  259. Kev

    Ge0rG did mention it earlier.

  260. jonas’

    I missed it

  261. Kev

    Anyway, +1 on the current version (having just seen Daniel's changes).

  262. jonas’

    +1, too

  263. daniel

    also dwd Bookmarks2 should probably explain what to do when node-config-max is not available as a feature

  264. daniel

    maybe introduce a magic number :-/

  265. pep.

    Or just require node-config-max?

  266. Ge0rG

    daniel: the backticks might be less understandable than "" </bikeshed>

  267. daniel

    we currently decideded on 128 which ~4 implementations use

  268. Kev

    I thought that and thought it wasn't worth mentioning :)

  269. Kev


  270. Ge0rG

    but +0 now

  271. Ge0rG

    but 128 is too small for power users!

  272. jonas’

    I’m going to detach myself from this bikeshedding now.

  273. daniel

    what is the current number of channels listed on search.jabber.network

  274. daniel

    let that be our magic number

  275. dwd

    +1 on #840 now. And FWIW, I'm totally fine with backticks - Markdown, innit?

  276. jonas’

    daniel, 7453

  277. Ge0rG

    dwd: consistency over markdown.

  278. pep.

    Ge0rG, I agree. I'd go with a full u8 at least :p

  279. Ge0rG

    pep.: 256 would force implementations to use at least an int16

  280. pep.

    I'm missing why

  281. Ge0rG

    because 256 doesn't fit into an uint8

  282. pep.

    I didn't say 256 :-°

  283. dwd

    As for Bookmarks2, I'm not sure this isn't orthogonal. You need the maximum to be set to at least as many bookmarks as you want to store.

  284. Ge0rG

    pep.: I did

  285. pep.

    (*trying to escape*)

  286. dwd

    Ge0rG, What about with compression?

  287. Ge0rG summons waqas

  288. Ge0rG

    dwd: my gut feeling is that compression will be harder to abuse on mobile, while providing significant benefits

  289. Ge0rG

    I have only disabled compression in my client because the compressor wasn't thread-safe

  290. Kev

    I think Dave was suggesting that 256 will fit in a uint8 with compression.

  291. Ge0rG

    Kev: maybe.

  292. dwd

    RLE the bits, I reckon. What could go wrong?

  293. Ge0rG

    it's only one bit.

  294. Ge0rG

    jonas’: I'd like to group 0245 and 0392 into one category. Is "Message display" too broad / too narrow?

  295. daniel

    dwd, the 'problem' is that to use Bookmarks2 correctly you really want to put max_items in publish_options; and then you need to put some number in there.

  296. jonas’

    Ge0rG, I disagree on that grouping

  297. jonas’

    Ge0rG, because '392 also makes sense in the roster

  298. daniel

    and when mulitple implementations disagree on that number you end up having to reconfigure on every publish

  299. dwd

    daniel, Not if the number is high enough, surely?

  300. daniel

    yes. but then you need to agree on one

  301. Zash

    Prosody defaults to 256 fwiw

  302. Ge0rG

    jonas’: right. That was also a request for a better name.

  303. dwd

    daniel, Not really. I mean, I see it's simpler if you can just say "max", but I don't see it matters much if the number is smaller.

  304. jonas’

    dwd, publishing with publish-options would reject your publish if your max_items request is different from the one already set on the node.

  305. dwd

    jonas’, Yes.

  306. jonas’

    Ge0rG, "User handle coloring" maybe?

  307. dwd

    jonas’, But we know if the node exists at the start, so we're not publishing blindly.

  308. Link Mauve

    “17:48:52 daniel> we currently decideded on 128 which ~4 implementations use”, I’m awfully close to this limit already myself. :/

  309. jonas’

    dwd, but then you need extra round trips

  310. dwd

    jonas’, You do, yes. My point is that if the server supports max, that's great. If it doesn't, the client has to do more work, but it'll still function.

  311. dwd

    jonas’, So I'd see this as a SHOULD at best.

  312. Ge0rG

    This discussion clearly shows that we are piling workarounds on top of workarounds. Can we step back a step or two and fix the design?

  313. Ge0rG

    and by "we" I mean somebody else than me ;)

  314. dwd

    Ge0rG, If you want to ship a free forklift with every client.

  315. daniel

    so to summarize if a server doesn’t support max i need to download the node config; see if the value currently set is "high enough" and if so omit my own value from publish_options?

  316. daniel

    that should probably be documented in the XEP so people who are not in the chat right now know that

  317. dwd

    daniel, Sure. And yes, we should encourage/recommend/etc that `max` is supported and used.

  318. Kev

    Or just don't do BM2 unless max.

  319. Kev

    Actually, in the absence of max, what really is the harm in reconfiguring on every push?

  320. Kev

    At the point you push you already know what 'big enough' is, and can just set it to enough plus a few, or something.

  321. dwd

    Could even pipline the configure, right?

  322. Kev

    That's what I was thinking, yes.

  323. jonas’

    also very relevant: https://mail.jabber.org/pipermail/standards/2019-October/036506.html

  324. daniel

    but pubsub is just a cache

  325. pep.

    > jonas’> Ge0rG, because '392 also makes sense in the roster And in other places.. OMEMO fingerprint has been mentioned in the past, I'm sure there's lots of other places it could be useful

  326. jonas’

    true treu

  327. jonas’

    true true