Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Stabilize support for MSC2946: spaces summary #10946

Closed
10 tasks done
clokep opened this issue Sep 29, 2021 · 17 comments · Fixed by #12851, #13365 or #13506
Closed
10 tasks done

Stabilize support for MSC2946: spaces summary #10946

clokep opened this issue Sep 29, 2021 · 17 comments · Fixed by #12851, #13365 or #13506
Assignees
Labels
A-Spaces Hierarchical organization of rooms T-Task Refactoring, removal, replacement, enabling or disabling functionality, other engineering tasks.

Comments

@clokep
Copy link
Member

clokep commented Sep 29, 2021

Once MSC2946 lands we should (at some point) switch to a stable endpoint and make some updates. There's few bits to this that we need to do:

Phase 1

  • Support to the stable endpoint.
  • Require limit to be > 0. (This has always been correct.)
  • Ensure the endpoint is ratelimited.

Phase 2

  • Remove the fallback logic of get_room_hierarchy to request the /spaces endpoint over federation.
  • Remove the /spaces client and federation endpoints (and corresponding code in the handlers).
  • Update the API responses to remove allowed_spaces (this was replaced with allowed_room_ids).
  • Clean-up code around max-children, which is not used by the /hierarchy endpoint.
  • Remove room_id from the serialized children_state, it is redundant and removed from the API response.

Phase 3

  • Remove unstable /hierarchy client and federation endpoints.
  • Remove the typo join_rules field from the response.
@clokep clokep added T-Task Refactoring, removal, replacement, enabling or disabling functionality, other engineering tasks. A-Spaces Hierarchical organization of rooms labels Sep 29, 2021
@clokep clokep self-assigned this Sep 29, 2021
@clokep clokep changed the title Stabilize support for the hierarchy endpoint Stabilize support for MSC2946 Oct 18, 2021
@clokep clokep changed the title Stabilize support for MSC2946 Stabilize support for MSC2946: spaces summary Oct 18, 2021
@clokep
Copy link
Member Author

clokep commented Nov 4, 2021

I think this work needs to be split into a few pieces.

Phase 1:

  • Support the stable endpoint.
  • Remove some of the legacy code (the /spaces endpoint? and surrounding bits?)
  • Enforce the limit / ratelimiting.

Phase 2:

  • Remove the unstable /hierarchy endpoint.

@clokep
Copy link
Member Author

clokep commented Nov 4, 2021

Remove some of the legacy code (the /spaces endpoint? and surrounding bits?)

It looks like these endpoints still get some usage on matrix.org, so might be best to just leave them for now and remove all the unstable code at once.

@clokep
Copy link
Member Author

clokep commented Nov 12, 2021

@clokep
Copy link
Member Author

clokep commented Jan 6, 2022

For phase 2 it is useful to know which version of clients first started using (unstable or stable) /hierarchy instead of /spaces.

@clokep
Copy link
Member Author

clokep commented Feb 23, 2022

Note that I don't think Element iOS ever shipped a version using /spaces? I think before v1.6.9 it didn't even have spaces support.

@turt2live
Copy link
Member

Using our opt-in analytics to determine "market share" of each Element platform (where values at or near zero aren't considered) for the Feb 17th - 22nd period, the following conclusions can be drawn. Note that scraping user agents is likely to be more reliable, however I think given the numbers below it's safe enough to move forward.

TLDR: All platforms are reporting versions which exceed the minimum outlined by previous comments.

  • iOS (requires 1.6.9+ to be safe):
    • 1.7.0 is at 21.61%
    • 1.8.1 is at 77.04%
  • Android (requires 1.2.1+ to be safe):
    • 1.3.15 is at 7.00%
    • 1.3.18 is at 12.65%
    • 1.4.0 is at 79.89%
  • Web (requires 1.8.2+ to be safe):
    • No data (reporting error)
  • Desktop (requires 1.8.2+ to be safe):
    • No data (reporting error)

While I don't have data on Element Web/Desktop, 1.8.2 was August 2021 and it's now February - if people haven't updated, I don't hold hope that they will by now.

@clokep
Copy link
Member Author

clokep commented Feb 24, 2022

Thanks for pulling those numbers @turt2live! I'll dust off my branch that removes /spaces support and go from there. 👍

I think we need to leave the unstable /hierarchy endpoint for now since the stable one isn't yet used in clients to my knowledge.

@richvdh
Copy link
Member

richvdh commented Feb 24, 2022

I think we need to leave the unstable /hierarchy endpoint for now since the stable one isn't yet used in clients to my knowledge.

can we try to at least agree a timescale when it might be possible to change this? one month? two months? six months?

@clokep
Copy link
Member Author

clokep commented Mar 22, 2022

@clokep
Copy link
Member Author

clokep commented Apr 6, 2022

All known clients using the unstable /hierarchy endpoint have now been updated and had a release.

@clokep
Copy link
Member Author

clokep commented May 23, 2022

From taking a look at the latest client numbers it seems that ~93% of Android and ~97% of iOS users are on versions of Element which support the stable endpoint.

@clokep
Copy link
Member Author

clokep commented May 23, 2022

I put up #12851 to close this issue out! 🎉

@clokep
Copy link
Member Author

clokep commented Jun 8, 2022

Remove room_id from the serialized children_state, it is redundant and removed from the API response.

This was never done for some reason...even though I checked it off.

@clokep clokep reopened this Jun 8, 2022
@clokep
Copy link
Member Author

clokep commented Jun 8, 2022

This is rather annoying since Synapse validates it over federation...and complement wants it. So I think we need to:

@clokep
Copy link
Member Author

clokep commented Aug 15, 2022

Reopening due to #13365 (comment), and the subsequent reversion in #13501.

@clokep
Copy link
Member Author

clokep commented Aug 25, 2022

Reopening due to #13365 (comment), and the subsequent reversion in #13501.

The subsequent fix was in:

As of now ~90% of the iOS population is on v1.8.26 or higher, I think we'll want to wait a little bit longer since this causes a crash for those who have not updated.

@clokep
Copy link
Member Author

clokep commented Sep 6, 2022

As of today, ~94% of iOS users are on v1.8.26 or higher.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A-Spaces Hierarchical organization of rooms T-Task Refactoring, removal, replacement, enabling or disabling functionality, other engineering tasks.
Projects
None yet
3 participants