Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

what is a "public room" #633

Open
richvdh opened this issue Jun 5, 2020 · 14 comments
Open

what is a "public room" #633

richvdh opened this issue Jun 5, 2020 · 14 comments
Labels
A-Client-Server Issues affecting the CS API clarification An area where the expected behaviour is understood, but the spec could do with being more explicit

Comments

@richvdh
Copy link
Member

richvdh commented Jun 5, 2020

tbh this is not a problem that is limited to the spec, and it probably overlaps with other existing issues, but I'm going to file it here for want of anywhere better right now.

Essentially, the term "public room" (or its counterpart, "private room") gets bandied around (most recently in matrix-org/synapse#7639), but there is no good definition of what defines whether a room is public or private.

For example, is it determined by:

@turt2live turt2live added clarification An area where the expected behaviour is understood, but the spec could do with being more explicit A-Client-Server Issues affecting the CS API labels Jun 5, 2020
@turt2live
Copy link
Member

fwiw riot-web considers the join rules as the single identifier of public. The history visibility goes a step further to indicate how searchable/on-the-record it is.

In my mind the presets are just templates and no different from someone specifying the state events manually.

@richvdh

This comment has been minimized.

@richvdh
Copy link
Member Author

richvdh commented Jun 5, 2020

fwiw riot-web considers the join rules as the single identifier of public. The history visibility goes a step further to indicate how searchable/on-the-record it is.

I think this is probably fair. We could work towards having that be what we "normally" mean by public/private, and make it explicit when we are using an alternative meaning.

tbh a lot of the problem here is the unfortunate name of /publicRooms.

@richvdh
Copy link
Member Author

richvdh commented Jun 5, 2020

(synapse's config file appears to use public to refer to publicRooms :-S )

@richvdh
Copy link
Member Author

richvdh commented Jun 5, 2020

In my mind the presets are just templates and no different from someone specifying the state events manually.

the confusing thing here is that, if you don't choose one, the preset is chosen based on the visibility, not the join rules. :/

@turt2live
Copy link
Member

table flip

@anoadragon453
Copy link
Member

After discussions on matrix with @ara4n, @turt2live and @richvdh, we've decided that the presets are a suitable way of describing whether a room is "private" or "public", due to:

  • Riot(-web at least) is using the presets when creating a public vs. private rooms
    • Though it's important to note that it later uses the join rules for the lock/globe icons
  • Synapse also deciding on a preset to use when creating a room (if one is not provided), based on other parameters provided by the user.

As such, we're going to use presets to differentiate between public/private rooms in matrix-org/synapse#7639.

@turt2live
Copy link
Member

@anoadragon453 how do you plan to use presets to determine if a room is public after creation?

@turt2live
Copy link
Member

or when the room becomes "private" under some metric.

@turt2live
Copy link
Member

oh, I guess for the particular synapse issue it doesn't matter. For notifications it matters.

@anoadragon453
Copy link
Member

Indeed, my issue was just at creation, not run time. Presets seem to only solve the former.

@richvdh
Copy link
Member Author

richvdh commented Jun 9, 2020

@anoadragon453

After discussions on matrix with @ara4n, @turt2live and @richvdh, we've decided that the presets are a suitable way of describing whether a room is "private" or "public"

I think this is only true in the context of matrix-org/synapse#7639. I think it's still the case that the terms "public" and "private" are unclear in the general case.

@bkil
Copy link

bkil commented Mar 3, 2022

Somewhat related: #620 #830

@turt2live
Copy link
Member

ftr, it appears the spec has multiple different definitions of "public" depending on context (room directory, user directory, peekable rooms, etc): this isn't helping create a definition.

If we need distinct definitions, we should also probably use distinct words.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Client-Server Issues affecting the CS API clarification An area where the expected behaviour is understood, but the spec could do with being more explicit
Projects
None yet
Development

No branches or pull requests

4 participants