-
Notifications
You must be signed in to change notification settings - Fork 78
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
Resolved errata makes it possible to be fully compliant with "Federated Server" profile by doing nothing #482
Comments
"mere"?
Granted, these were not reduced to "mere" suggestions (which I would consider "MAY" to mean), but understanding and carefully weighing implications of not doing as one SHOULD is no small requirement. I think it is important to be cognizant of what SHOULD is really meant to mean. Changing (the original) from simply "MUST" to "MUST but MAY" is probably better than sticking with the current "SHOULD". |
sorry for my word choice but the reality is that a recommendation is a
recommendation and it is possible to implement all requirements without
ever encountering a recommendation. which is to say, requirements are the
foundation on which recommendations are built. by “mere” i meant the
denotation of “no more than what is required”, not the connotation of
“insignificant”.
|
The biggest reason to keep "MUST but MAY", is that "SHOULD" is too-often interpreted by implementers as meaning "MAY". |
The group has agreed to use this text. I think the difference between a "SHOULD" and a "MUST" with unenumerated exceptions is so incredibly fine that I find it hard to imagine that it's worth taking the time of the group to re-consider it. But I hope that if there is some conversation it happens on this issue. |
There's a positioning / "setting expectations" argument here, which is that anyone scanning the spec for MUSTs is going to find basically nothing in S2S, aside from a handful of things that don't apply if you don't deliver. I know that "compliance" is taken pretty loosely in practice, and as stated in issue triage "you don't get a sticker for it" (although I would argue that this is the role of a functioning test suite!), but the SHOULDs give too much wiggle room, in a way that a qualified MUST does not. The difference for clients is the difference between "I don't know what's going to happen" versus "I can generally expect this to happen". Looking at other specifications in this regard:
In other words, instead of unenumerated exceptions, there could be a single exception: "the server MUST deliver unless the activity is considered undeliverable according to server policy; this server policy SHOULD include security considerations such as those laid out in Appendix B". There's also one other consideration here, which is that 6.11 references 7.1.1 so a double-SHOULD is unnecessary. I think 6.11 should say "MUST deliver according to 7.1.1" to at least close the gap between the two sections. Otherwise, you leave open the possibility that the outbox endpoint will deliver according to some other completely different requirements not described in the ActivityPub spec at all... and then clients will have no idea if/when an |
I like that. I'd like it better if there were some defined way to discover the content of such a policy, even if privacy preservation considerations mean that some elements of a local policy are obscured (e.g., I can't discover that posts from me are blackholed, but I can discover that posts from some list of users are). |
https://github.com/swicg/meetings/tree/main/2023-11-17#ap-issue-297
https://www.w3.org/wiki/ActivityPub_errata#Allow_servers_to_filter_delivery_when_activities_are_received_in_the_outbox
per CG resolution, the requirements ("MUST") to process outbox delivery and deliver to inboxes were both changed to mere recommendations ("SHOULD"). this was done to allow for spam filtering and blocking, but:
Accept: application/ld+json; profile="https://www.w3.org/ns/activitystreams"
, but servers do not generally have to GET anything (as this is usually the client's responsibility in most cases).put simply, it is possible to be fully compliant with the "ActivityPub conformant Federated Server" profile by default, since there are no hard requirements.
proposed solution
revert this errata, change the two SHOULDs back to MUSTs (while maintaining the "exception" for filtering and blocking)
The text was updated successfully, but these errors were encountered: