Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Add event entities #44
@annando and me discussed federation of events at the 33C3 and this is the result of it.
We need two new entities for this:
Some additional thoughts that came to my mind while writing the docs:
This is needed for diaspora/diaspora#1359
This entity represents an event.
This entity represents a participation in a Event.
I would just use iCalendar (RFC 5545), or a subset there-of. At least for the field definitions, if not for the storage format. That way the semantics are most likely to be compatible with other calendaring software. RFC 6321 provides for a way to store this as XML. But regardless of the serialisation format chosen conversion will stay necessary.
The semantics and naming conventions of iCalendar are most important. Specifically
We oriented us on iCalendar for the names, but I think it is more important to be consistent with the other federated entities. It would be weird if it is
This format is used for communication between servers talking the diaspora protocol. It isn't compatible with anything else using iCalendar directly anyway, because of the surrounding salmon with signature.
Also this isn't about storage (that's up to everyone), and diaspora has another DB structure than friendica. And if you want to use it in another calendar software, you'll need an export from this storage format to iCal, but that is out of scope here, because the federation protocol is multiple layers away from being used in other calendar softwares.
About the XML format: We don't need simply XML, it needs to be a special XML structure:
<entity_name> <property1>value1</property1> <property2>value2</property2> </entity_name>
And the format described in RFC 6321 doesn't match this format.
Right, so this is just the wire protocol for federation of events? I thought it might also be used (in an altered form) for communication with clients. Thanks for clearing that up.
Mostly what I'm concerned with is that whatever choices are made here don't make it impossible to convert back and forth to iCalendar without ambiguities.
Yes, and communication with clients is a completely different thing.
As long as we have all important informations, it should be easy to create a mapping for an iCal export :)
There are multiple questions coming to my mind about events inside diaspora*. I don't know if here is the best place to discuss it or if it should be on loomio. I'm especially wondering how and where discussions about the event will take place, from a user point of view.
I guess the private event (like, my birthday) are quite simple to deal with. I wrote a StatusMessage, add an event to it like I do for a poll, people are answering if they are coming or not and are using the comments to discuss.
But for a public event, there is way more than that. Let's take the 33c3 for example. First question, who is going to create the event? How do we deal with duplicate? It would be better to have only one event for it. Then, people would probably want to "mention" it, == link to the event inside the diaspora* interface. "Hey, I'm attending 33c3(mention)! Will you be there too?". And during (and after) the event, post messages related to it, with pictures, etc. (This remark works for the private event too, it would be nice to be able for attenders to link pictures taken during the event to the event on diaspora*).
We're already doing that inside diaspora* with tags. Maybe we can do that here too? So, what about adding to this spec an "official tag" for the event? It would have been #33c3 for example. We will see in the interface how we will use this information, but it looks important to me to be able to link the event to other diaspora* entities. Or maybe the GUID is technically enough at the moment? I don't know. It looks like there are many things to discuss :p
This is only about the protocol changes, everything else should be discussed in diaspora/diaspora#1359
Who: The first person who does it, for the 33C3 that would have been this post. And I don't think we should handle duplicates, there will be duplicates and there are valid cases for duplicates (local hackerspace creating its own 33C3 event for streaming, or a group of persons creating a private 33C3 event to organize travel).
That is a problem that also needs to be solved to "mention" posts (currently people try to use relative urls with /posts/guid, but that doesn't work if the pod doesn't know this post yet). If we do that for posts, we can also use it for events, but I think that is out of scope here.
For now you can just write "Please post pictures with #33c3" to the
Maybe we can add an optional