-
grim
is there a list anywhere of xeps that should be avoided or nice to have? while cleaning up pidgin, docs.modernxmpp.org doesn't make things exactly easy. For example, we're re-architecting our status and "mood" api, but there's nothing about XEP 0107 User Moods that I can find on the website
-
pep.
It's not exactly used anymore around here so yeah there isn't much to say about it
-
pep.
I guess you're welcome to propose something
-
grim
well this isn't the only case... which is why i'd like a list.. like xhtml formating gets a mention at least, but custom smiley/emojis someone built using BoB i'm sure isn't in use anywhere, so that ones easy. I just hate having to come and ask everyone who's knowledge on this stuff is way more up to date than I am ;)
-
grim
i'm not in the position to propose anything, i'm trying to determine if i should nuke this code or comment it out until we finish this api rewrite
-
pep.
There's the compliance suites
-
pep.
https://xmpp.org/extensions/xep-0459.html
-
grim
we have other protocols to support that do something similar, but if no other xmpp clients implement it, maybe it's not worth our time especially right now with a complete rewrite of our xmpp support looming
-
pep.
XHTML-IM unfortunately has been deprecated. I'm personally in favor of keeping it but I think modernxmpp is going with the less structed 393
-
pep.
Good to know that pidgin is looking into have decent XMPP support again :)
-
grim
ok, this list is kind of it.. but i was hoping for a list of like every xep and whether or not it's status/recommendation
-
pep.
structured*
-
pep.
The goal isn't to catch 'em all really
-
grim
i understand, but from an old implementation point of view trying to figure out what should and shouldn't stay is difficult at the moment
-
pep.
I agree things could be a lot better though
-
pep.
Do you have a list of what you support? Maybe we (here) could help cross things off it and/or add to it.
-
grim
if we do i'm sure it's not reflective of reality :)
-
Link Mauve
And possibly contribute that to modernxmpp if that can be of use to someone else.
-
pep.
Also have a look at https://xmpp.org/software/ the recent overhaul may help you to have a clue about what's implemented where
-
pep.
Also https://data.xmpp.net/explore/ if you like querying :P
-
Link Mauve
But the compliance suites are a start, once you have everything in there implemented and working and following modernxmpp guidelines and tested against other implementations, you can start looking at other things you want to add to it.
-
grim
i mean i pretty much just look at dino, gajim, conversations, and xabber to test stuff and see what other clients are doing already
-
grim
Link Mauve: i can't get to that point until i get the cruft out of here..
-
pep.
Xabber is nice in its own way. For some (most?) of the things it's doing its own thing
-
grim
like i said, right now it's a matter of delete or comment stuff out because we have a rewrite looming, but we haven't started it yet because theres other things that need to happen first
-
MattJ
Nobody is going to punish you for supporting User Mood when no other moden client does, but it's not something people are going to miss if you want to remove it
-
pep.
Well that depends on your user base
-
grim
i believe this is the closest thing we have a list of XEPs that we support https://keep.imfreedom.org/pidgin/pidgin/file/tip/libpurple/protocols/jabber/namespaces.h
-
pep.
If you stick around here I'm personally happy to point you to things when needed
-
pep.
Or I can join another channel✎ -
pep.
And/or I can join another channel ✏
-
grim
user mood is just one of i'm sure many examples.. the specifics don't matter.. but right now i'm trying to rip out or current "mood" api as it sucks and it's being integrated into our new presence api. so i either need to comment out the xep 0107 support or delete it so we can compile and continue moving forward
-
grim
timeline on implementing any of this is anyone's guess.. i literally just built a new sasl library for pidgin3 because the existing options all had stupid problems we didn't and shouldn't have to deal with in 2023..
-
grim
that's the level of rewrite and care we're putting into this effort
-
pep.
From this list I think you can: - Remove 0012 (Last activity), - Remove 0096 (SI File Transfer) to replace with Jingle-ft / OMEMO / JET (0391) - You do BOSH, maybe you want to also? instead? Add support for websockets - BoB 0231 for stickers is only used by Movim. I think people are going towards 0449 nowadays
-
pep.
And yeah, compliance suites
-
grim
ok, but looking at 0107, i think we're better off just allowing any emoji as a mood and prefixing the status message with it because the other protocols we have to support support the full emoji set. i suppose we could have xmpp send the events in 0107 if the user picks an emoji that matches those moods but whatever
-
pep.
Also stuff is happening in the sasl/bind area now that you're talking about it. https://blog.prosody.im/fast-auth/
-
grim
new mech is fine, we built that library to easily add custom mechs if necessary
-
grim
just skimming but it looks like scram?
-
pep.
Re 0012, 0319 seems to be a replacement if you want to keep a similar feature around. I don't know who does it.
-
pep.
Yeah it's SCRAM. I'm not the best person to talk about it though
-
MattJ
SCRAM is the best mechanism for password auth. The FAST stuff uses tokens and is similar to, but not the same as, SCRAM.
-
MattJ
It lets you avoid the multiple round-trips that SCRAM requires on subsequent authentications
-
grim
MattJ: understood, i was just skimming, saw tokens that don't get passed and was like, oh this sounds like a scram challenge ;)
-
grim
or cool, so it just does first run and then tokens, similar to oauth? i assume there's a ttl as well.. although feel free to not answer i can read the xep later ;)
-
MattJ
It's a single round-trip, unlike SCRAM, so actually no challenges. That means it's susceptible to some things that SCRAM isn't, but also tokens aren't passwords and it's always over TLS so it's basically okay.
-
MattJ
and yes to all your questions
-
grim
cool, does it used bound channels or whatever? i need to work that into hasl yet... yes we named our sasl library HASL because both cyrus and gsasl are real hassles..
-
grim
cool
-
MattJ
Yes, it uses channel binding
-
grim
ok so that's on my list, yay :)
-
grim
in the rare change anyone is interested, here's hasl https://keep.imfreedom.org/hasl/hasl
-
grim
it needs more docs and examples and stuff, but right now it just supports PLAIN and EXTERNAL, scram is up next, but if i can work FAST into our prosody instance with our custom auth provider i'll probably lean towards that sooner rather than later
-
MattJ
That would be very nice :)
-
grim
MattJ: yeah i'll probably be bugging you about that at some point :-D
-
MattJ
Please do!
-
grim
well more of how do i make my custom auth provider prosody plugin work with FAST, but yeah
-
pep.
xmpp:prosody@conference.prosody.im?join < :)
-
grim
i'm already there ;)
-
MattJ
Regarding your earlier question about XEPs, in addition to what people already said, this might be useful as an extra indicator: https://data.xmpp.net/explore/xmpp/implementation_counts
-
grim
that's amazing! thank you for that!
-
pep.
Don't let a "0" stop you from implementing it though :P
-
pep.
If that's interesting for you/your userbase
-
grim
of course, but it'll let me focus on feature parity first
-
grim
our user base is a lot more than xmpp, but if we're already implementing something for one protocol and we just have to write the xmpp glue code, then so be it right
-
grim
which is where this user-mood stuff sits. and maybe that ends up being a new xep at some point, but right now, it doesn't seem worth the effort but it looks like 1/3rd of clients support it..
-
MattJ
Sure. In fact just as interesting would be "Hey, we're implementing this feature for N other protocols, how do we map that to XMPP?"
-
grim
same thing with user tune too
-
stefan
Profanity supports user mood, BTW. 😁
-
pep.
Seems like 13 implementations do.
-
grim
MattJ: exactly. we're basically taking a signal from discord (feel free to groan), but updating the status message for the song being played, or the users mood via an emoji is a very simple and easy way to implement that stuff for slack, discord, and i forget who else supports it.
-
MattJ
WHERE implementation.is_modern == 1
-
pep.
What's is_modern
-
MattJ
A flag I invented to annoy you :P
-
pep.
I got that part :P
-
MattJ
grim, oh, but don't drag XMPP back into the dark ages just because other platforms haven't understood their terrible design mistakes yet :P
-
MattJ
User Tune is obviously superior than spamming full presence changes, since it can be selectively filtered
-
grim
MattJ: no promises :P
-
grim
also, channel binding is SHOULD, not MUST? > Finally, if channel binding is used, both sides receive proof that no MITM or relay attack being performed.
-
MattJ
We relaxed it to SHOULD because in some environments (such as web clients running in browsers) there is no way to implement channel binding
-
grim
ah ok, so we'll have to make it an option that defaults to on (in libpurple)
-
MattJ
libpurple compiled to JS? :)
-
grim
that's our new thing too.. secure defaults.. not sure why it took us that long to do it, but basically connecting to irc with secure sasl just requires clicking a box to say "require password" :-D
-
grim
MattJ: i mean there is a docker protocol plugin that someone wrote libpurple golang bindings for... and people have pulled it into nodejs as well..
-
grim
so building for wasm isn't out of the question either
-
pep.
docker protocol plugin.. for libpurple?!
-
grim
pep.: yep, you're containers show up as contact on your buddy list, and then your im's are stdout/stdin
-
grim
it's really quite something lol
-
pep.
:x
-
MattJ
Okay, new XMPP gateway required... :P
-
pep.
adventurous_linus became online
-
grim
pep.: precisely
-
wurstsalat
MattJ: https://data.xmpp.net/explore/xmpp/implementations implementation_status is missing there, which can be "removed" as well. am I seeing this correctly? or did you remove those beforehand?
-
MattJ
No, I didn't do anything
-
MattJ
It's just the raw data
-
MattJ
But I don't know if I imported that column, I'll check
-
MattJ
No, I'll fix that, thanks
-
MattJ
Ah, I was pulling '.status' from the JSON but it's '.implementation_status', thanks
-
MattJ
There is a status column now
-
MattJ
I assume no value just means... "implemented"? :)
-
wurstsalat
yes, some devs didn't fill that column at all
-
MattJ
I notice a number of them get the version fields wrong too
-
MattJ
Indicating the version of the implementation rather than the XEP
-
wurstsalat
I forgot to tell, but you can check for implementations for specific XEPs on xmpp.org now as well: https://xmpp.org/extensions/ (right-most column)
-
wurstsalat
MattJ: if you tell me which ones, I can ping the author
-
MattJ
I noticed it with Metronome, but I think it's not the only one
-
MattJ
It's clear on https://data.xmpp.net/explore/xmpp/outdated_implementations
-
MattJ
A number of rows claim to have implemented XEP versions that don't exist
-
wurstsalat
perfect, thanks! really useful, this tool!
-
grim
okay, i know pidgin isn't listed on a lot of xmpp client lists, but this is one i really expected to see pidgin or purple on... https://data.xmpp.net/explore/xmpp/outdated_implementations
-
Link Mauve
grim, do you have a DOAP file at xmpp.org?
-
grim
Link Mauve: i'm going to guess and say no
-
Link Mauve
grim, add it there then: https://github.com/xsf/xmpp.org/blob/master/data/software.json#L1295
-
Link Mauve
On the next website rebuild it’ll be part of that data.
-
grim
cool, now i just need to learn doap :-D
-
Link Mauve
XEP-0453 should explain most of it.
-
grim
XEP-0453 ?
-
grim
yeah cool
-
grim
this probably isn't the right muc for this, but is there a tool i can use to verify my data before hand?
-
grim
and i see the right muc for it, joining now
-
Link Mauve
Probably building xmpp.org manually.
-
grim
oh derp, that'd make sense :-D
-
Link Mauve
I once wrote some tooling around it, but never managed to do the last parts of making use of it…
-
grim
i'm not volunteering but and xsd or dtd could be enough..
-
Link Mauve
RDF usually uses different tooling than XML schemas.
-
grim
hm, okay
-
Link Mauve
Because effectively you can add any additional RDF thing in it.
-
wurstsalat
https://www.xmlvalidation.com/ works for starters
-
wurstsalat
also, no need to build manually. GitHub CI will do that for you
-
grim
i'd just run xmllint on the command line honestly and I have no issue building locally
-
emus
> wurstsalat: > 2023-03-20 12:56 (GMT+01:00) > https://www.xmlvalidation.com/ works for starters have we listed this somewhere?
-
pep.
It's a pretty generic xml validation tool.. we don't need to catch all these either really✎ -
pep.
It's a pretty generic xml validation tool.. we don't need to catch all of these either really ✏
-
emus
ok
-
emus
but still one asked about it right?
-
pep.
They asked about a way to validate DOAP specifically
-
emus
ok
-
Zash
MattJ, if one were to have a data export, can you import it with https://migrate.modernxmpp.org/ without exporting from somewhere?