4 ms·
A graphic that shows the hierarchy/differences of all the possible spaces/groups/rooms would be nice. Because as I understand it these are 3 different things an
by iruoy 5y ago
A graphic that shows the hierarchy/differences of all the possible spaces/groups/rooms would be nice. Because as I understand it these are 3 different things and there are different variants of each.
- callahad 5y agoGroups ("Communities") are a legacy, underspecified extension to the Matrix protocol; it's best to ignore them as they will go away soon. Spaces are the properly specced replacement for Groups. From a user perspective, Spaces are containers which can hold an arbitrary number of Rooms or other Spaces. Like Rooms, Spaces can be public, private (invite only), or "restricted" (only joinable by members of another specified Room or Space). At a technical level, Spaces are actually implemented as Rooms. In Matrix, Rooms maintain state. Spaces are just rooms whose state indicates that they should be treated as a space ("type": "m.space" on the m.room.create event), and which have pointers to other rooms/spaces which it considers as children (m.space.child events). This means that a single Room can exist in many Spaces, as membership points from the space to its children, rather than in the opposite direction.
- liotier 5y agoCan an existing room be moved to a space ?
- ninchuka 5y agoyes, you can add any room your in to a space you've made
- callahad 5y agoYep! Fastest way is to right click the Space in the sidebar and choose "Add Existing Room"
- Macha 5y agoNote that rooms don't "belong to" a space, like discord channels belong to a server. You can create a space to group related rooms together for yourself or your friend group, for example.
- progval 5y agoWhere can I find the Space specifications? I don't see it in the main documentation (https://matrix.org/docs/spec/ https://matrix.org/docs/spec/), and "matrix spaces specification" in a search engine does not return anything relevant.
- callahad 5y agoIn this case, the parent spec change for Spaces was MSC1772: Matrix spaces (https://github.com/matrix-org/matrix-doc/pull/1772 https://github.com/matrix-org/matrix-doc/pull/1772). You may also want to look into MSC2946: Spaces Summary (https://github.com/matrix-org/matrix-doc/pull/2946 https://github.com/matrix-org/matrix-doc/pull/2946) and MSC3083: Restricting room membership based on membership in other rooms (https://github.com/matrix-org/matrix-doc/pull/3083 https://github.com/matrix-org/matrix-doc/pull/3083). These will manifest in a published version of the spec when we next cut one of those (soon!). We're also working on a new design / platform for the spec docs at https://spec.matrix.org/ https://spec.matrix.org/ which is where it should appear.
- Kliment 5y agoI'm really frustrated that: a) Stuff like this gets released in the wild without being part of the spec making it effectively impossible for any non-element client to support at release time b) Any room that gets added to a server that supports spaces is no longer accessible to anyone whose homeserver isn't running the non-spec-compliant protocol from an unreleased version of synapse, because the default room version is 9 and synapse's latest release doesn't know wtf that means It's really annoying that something that is supposed to be the pinnacle of interoperability and federation breaks compatibility like this.
- mr_johnson22 5y agoa) Agreed; the fact that spaces aren't in the spec is annoying when trying to stay spec-compliant and not realizing you also have to search through various GitHub issues to be fully informed. Granted, spaces have been one of the most hotly-discussed topic in Matrix development for months, so anyone interested in making anything Matrix related likely would have come across it. b) Not true; spaces don't require room version 9. IIRC the only space-related feature that needs a room upgrade is "restricted rooms", ie. the ability to make a room accessible only to members of another room/space.