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

MSC2781: Remove the reply fallbacks from the specification #2781

Merged
merged 27 commits into from
Nov 5, 2024

Conversation

deepbluev7
Copy link
Contributor

@deepbluev7 deepbluev7 commented Sep 18, 2020

Since I hit another fallback bug today, I thought I should finally propose this. Let's see, how this goes.

Rendered

Implementations:

See also:

fixes matrix-org/matrix-spec#368

fixes matrix-org/matrix-spec#350 ?

Signed-off-by: Nicolas Werner [email protected]


FCP tickyboxes

Signed-off-by: Nicolas Werner <[email protected]>
@turt2live turt2live added kind:maintenance MSC which clarifies/updates existing spec proposal A matrix spec change proposal proposal-in-review labels Sep 18, 2020
Copy link
Member

@KitsuneRal KitsuneRal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand the controversy but I really think that fallbacks bring more problems (especially in terms of the content getting stuck in messages not belonging to authors) than solutions to those who try to stay as simple as possible. The requirement to strip the fallbacks in replies raises the bar of implementing them to the point where half of the ecosystem chooses not to deal with that. Besides, the fallbacks are a huge HTML foot in the door where plaintext messengers have literally no chance of compliance. So yes, please, let's go with it.

proposals/2781-down-with-the-fallbacks.md Outdated Show resolved Hide resolved
proposals/2781-down-with-the-fallbacks.md Outdated Show resolved Hide resolved
proposals/2781-down-with-the-fallbacks.md Outdated Show resolved Hide resolved
Copy link
Contributor

@ShadowJonathan ShadowJonathan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the glory of the Emperor: Down with mx-reply!

@aaronraimist
Copy link
Contributor

Implementation: matrix-org/matrix-react-sdk#6964

@turt2live turt2live changed the title MSC2781: Deprecate the (reply) fallbacks in the Matrix specification MSC2781: Deprecate edit & reply fallbacks in the Matrix specification Jan 14, 2022
@clokep
Copy link
Member

clokep commented Jun 5, 2024

@deepbluev7 Thanks for your effort on clarifying and improving this MSC. I think it is much easier to read now and clearer what the proposed changes are! 🎉

@mscbot resolve General clarity

Copy link
Member

@richvdh richvdh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

some very minor editorial points, and a question.

proposals/2781-down-with-the-fallbacks.md Outdated Show resolved Hide resolved
proposals/2781-down-with-the-fallbacks.md Outdated Show resolved Hide resolved
proposals/2781-down-with-the-fallbacks.md Outdated Show resolved Hide resolved
16 are listed as not supporting replies (updated January 2022):

- Element Android: Relies on the reply fallback.
- Element iOS: [Does not support rich replies](https://github.com/vector-im/element-ios/issues/3517)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... and therefore relies on the reply fallback? So is the same as Element Android? or different?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When that was written, yes. Although I didn't investigate more since I don't own any iOS device. But it seems Element iOS might have some support now based on element-hq/element-ios#6155 ?

deepbluev7 and others added 3 commits June 25, 2024 17:44
Thanks dbkr, richvdh and clokep!

Co-authored-by: David Baker <[email protected]>
Co-authored-by: Richard van der Hoff <[email protected]>
Co-authored-by: Patrick Cloke <[email protected]>
Co-authored-by: Richard van der Hoff <[email protected]>
proposals/2781-down-with-the-fallbacks.md Outdated Show resolved Hide resolved
proposals/2781-down-with-the-fallbacks.md Outdated Show resolved Hide resolved
proposals/2781-down-with-the-fallbacks.md Outdated Show resolved Hide resolved
proposals/2781-down-with-the-fallbacks.md Outdated Show resolved Hide resolved

## Proposal

Remove the [rich reply fallback from the
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All of those examples are from a time before the deprecation policy was enacted in Matrix 1.1, fwiw. This MSC introduces a technically breaking change to clients, which necessitates deprecation first at a minimum. The spec instructs clients which do support rich replies on how to handle the fallback (strip it), and implies that the module is optional. By removing the fallback, we're saying that clients must support rich replies in order to maintain conversation context - something which is currently optional (and not even a SHOULD optional).

The MSC addresses the context piece a bit, but doesn't address the breaking change. As such, this needs to go through deprecation first to manage the breaking change, then removal at least 1 version later as per the policy. This does add additional overhead - feedback regarding that is best placed in a dedicated MSC which aims to change the deprecation policy.

Copy link
Member

@turt2live turt2live left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seemingly my github tabs got confused and submitted my review without asking the status associated with it.

Apologies for the slow review here - authenticated media has been taking up all my time.

@turt2live
Copy link
Member

@mscbot resolve Mention intentional mentions

deepbluev7 and others added 2 commits October 1, 2024 16:48
Co-authored-by: Travis Ralston <[email protected]>
Co-authored-by: Andrew Morgan <[email protected]>
@turt2live
Copy link
Member

I'm still concerned about the jump to removal here, but not enough to prevent this MSC from moving forwards:

@mscbot resolve We must deprecate before removal

I have unticked my box though to get broader alignment from the remaining SCT members on this.

@mscbot mscbot removed the unresolved-concerns This proposal has at least one outstanding concern label Oct 16, 2024
@mscbot
Copy link
Collaborator

mscbot commented Oct 31, 2024

🔔 This is now entering its final comment period, as per the review above. 🔔

@mscbot mscbot added final-comment-period This MSC has entered a final comment period in interest to approval, postpone, or delete in 5 days. and removed proposed-final-comment-period Currently awaiting signoff of a majority of team members in order to enter the final comment period. labels Oct 31, 2024
@officialdakari
Copy link

officialdakari commented Nov 1, 2024

Implementation: officialdakari/Extera

@mscbot
Copy link
Collaborator

mscbot commented Nov 5, 2024

The final comment period, with a disposition to merge, as per the review above, is now complete.

@mscbot mscbot added finished-final-comment-period and removed disposition-merge final-comment-period This MSC has entered a final comment period in interest to approval, postpone, or delete in 5 days. labels Nov 5, 2024
@turt2live turt2live dismissed their stale review November 5, 2024 16:23

review is not considered blocking for FCP

@turt2live turt2live merged commit 843eb6d into matrix-org:old_master Nov 5, 2024
@turt2live turt2live added spec-pr-missing Proposal has been implemented and is being used in the wild but hasn't yet been added to the spec and removed finished-final-comment-period labels Nov 5, 2024
turt2live added a commit that referenced this pull request Nov 5, 2024
* MSC2781: Down with the fallbacks

Signed-off-by: Nicolas Werner <[email protected]>

* Add a note about dropping the html requirement

Signed-off-by: Nicolas Werner <[email protected]>

* Add an unstable prefix for removed fallbacks.

Signed-off-by: Nicolas Werner <[email protected]>

* Add a section about fallbacks not being properly specified.

Signed-off-by: Nicolas Werner <[email protected]>

* Add appendix about which clients do not support replies (and why, if possible)

Signed-off-by: Nicolas Werner <[email protected]>

* Correct weechat status

Signed-off-by: Nicolas Werner <[email protected]>

* Add another alternative

Signed-off-by: Nicolas Werner <[email protected]>

* Document a few more issues with fallbacks

Signed-off-by: Nicolas Werner <[email protected]>

* Update client status, remove proposal for edits and try to turn down the language a bit

Signed-off-by: Nicolas Werner <[email protected]>

* Remove mistaken reference to the Qt renderer

Signed-off-by: Nicolas Werner <[email protected]>

* Try to make motivation a bit clearer in the proposal

Signed-off-by: Nicolas Werner <[email protected]>

* How do anchors work?

Signed-off-by: Nicolas Werner <[email protected]>

* Drop reference to issues with edit fallbacks

Signed-off-by: Nicolas Werner <[email protected]>

* Typos

Signed-off-by: Nicolas Werner <[email protected]>

* Address review comments

Signed-off-by: Nicolas Werner <[email protected]>

* More edits

Move edit section to a single sentence in "interaction with other
features".

Spell out why the IRC example is there.

Reword body stripping.

Signed-off-by: Nicolas Werner <[email protected]>

* Implementation traps

Signed-off-by: Nicolas Werner <[email protected]>

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <[email protected]>

* Add dates to client status list

Signed-off-by: Nicolas Werner <[email protected]>

* Mention pushrules proposal in the alternatives section

Signed-off-by: Nicolas Werner <[email protected]>

* Update proposal to 2024

This also addresses several review comments from clokep and Travis.

* Be explicit about removal

* Apply suggestions from code review

Thanks dbkr, richvdh and clokep!

Co-authored-by: David Baker <[email protected]>
Co-authored-by: Richard van der Hoff <[email protected]>
Co-authored-by: Patrick Cloke <[email protected]>

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <[email protected]>

* Update proposals/2781-down-with-the-fallbacks.md

Co-authored-by: Patrick Cloke <[email protected]>

* Apply suggestions from code review

Co-authored-by: Travis Ralston <[email protected]>
Co-authored-by: Andrew Morgan <[email protected]>

* Simplify wording around invalid html and potential issues

Signed-off-by: Nicolas Werner <[email protected]>

---------

Signed-off-by: Nicolas Werner <[email protected]>
Co-authored-by: Richard van der Hoff <[email protected]>
Co-authored-by: David Baker <[email protected]>
Co-authored-by: Patrick Cloke <[email protected]>
Co-authored-by: Travis Ralston <[email protected]>
Co-authored-by: Andrew Morgan <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind:maintenance MSC which clarifies/updates existing spec proposal A matrix spec change proposal spec-pr-missing Proposal has been implemented and is being used in the wild but hasn't yet been added to the spec
Projects
Status: Requires spec writing
Development

Successfully merging this pull request may close these issues.