FamilySearch/gedcomx

Use SHOULD as in RFC 2119 and drop "conditional compliance" with specs

Closed this issue · 2 comments

The gedcomx specs, e.g. https://github.com/FamilySearch/gedcomx/blob/master/specifications/file-format-specification.md

say that an implementation that satisfies all of the MUST level requirements but not all of the SHOULD level requirements is said to be "conditionally compliant".

That strikes me as an unusual way to use "SHOULD". As defined by RFC 2119 (which is referenced by the gedcomx specs):

  1. SHOULD This word, or the adjective "RECOMMENDED", mean that there
    may exist valid reasons in particular circumstances to ignore a
    particular item, but the full implications must be understood and
    carefully weighed before choosing a different course.

I see that an old HTTP spec uses the same sort of reference to conditional compliance, but that seems rare and I don't see it in RFC 2119 or modern RFCs. And I see no hint of what conditional compliance would mean in practice.

Furthermore it makes no sense to me to talk of implementations in the file format spec. That is a spec for what's in a file, not requirements for an implementation. And I don't know what to do with a "conditionally compliant" file (or implementation).

I think you SHOULD :) drop that language and stick with the boilerplate recommended by RFC 2119, which you already have in 1.2 Notational Conventions.

Defining "compliance" for implementations might best be done via a test suite.

Note to the reader: as soon as you start rolling your eyes about how boring this all is, see:
http://www.rfc-editor.org/rfc/rfc6919.txt

Agreed. Fixed at a2a78cb.

By the way, thanks for the link to rfc2919. I got a good laugh from that.