It documents the 2.0.0 fallback format (branch fallback-format-2-v4), and the current authority format in config.c.
Next step is to unify the formats, and modify both files to match.
(I'm targeting 0.3.3 with this change, so there's no need to hold up the new fallback list. We put a version number in the list, so we can do format changes like this.)
s/attempted parse this file/attempted to parse this file/
When giving the URLs where the authority list and fallback list can be received, we should probably make it clear that automatically fetching them is not recommended.
Otherwise this branch looks good to me. Do we currently have anything that consumes these files, other than our C compiler when we build Tor? If not, we should document that fact, since whoever is the first to actually parse it based on the documentation will be a surprised person.
s/attempted parse this file/attempted to parse this file/
Fixup in 689af75
When giving the URLs where the authority list and fallback list can be received, we should probably make it clear that automatically fetching them is not recommended.
Do you want to rephrase any of this existing text?
Libraries SHOULD parse and cache the most recent version of these lists
during their build or release processes. Libraries MUST NOT retrieve the
lists by default every time they are deployed or executed.
Libraries MUST NOT rely on the availability of the server that hosts
these lists.
Otherwise this branch looks good to me. Do we currently have anything that consumes these files, other than our C compiler when we build Tor? If not, we should document that fact, since whoever is the first to actually parse it based on the documentation will be a surprised person.
I expect to send the draft spec and formatted file to the tool authors, and merge them both after they approve. We have 6-12 months before the next fallback list. I'll re-target these tickets to 0.3.4.
Do you want to rephrase any of this existing text?
Libraries SHOULD parse and cache the most recent version of these lists
during their build or release processes. Libraries MUST NOT retrieve the
lists by default every time they are deployed or executed.
I'd suggest maybe:
Library developers SHOULD be sure that they ship the most recent version of these lists, and SHOULD check for the freshness of these lists as part of their build or release process. Library developers SHOULD NOT automatically replace these files without human intervention.
I think auto-fetching these, even with https, is a dangerous idea.
This isn't part of any milestone in 0.3.4, and now that #24854 (moved) is done, metrics, ooni, stem, and fusion can easily get the list of authorities and fallbacks. (The formats aren't consistent with each other, but they are standardised and parseable.)
Trac: Milestone: Tor: 0.3.4.x-final to Tor: unspecified Parent: #24786 (moved)toN/A
Do you want to rephrase any of this existing text?
Libraries SHOULD parse and cache the most recent version of these lists
during their build or release processes. Libraries MUST NOT retrieve the
lists by default every time they are deployed or executed.
I'd suggest maybe:
Library developers SHOULD be sure that they ship the most recent version of these lists, and SHOULD check for the freshness of these lists as part of their build or release process. Library developers SHOULD NOT automatically replace these files without human intervention.
I think auto-fetching these, even with https, is a dangerous idea.
In a different spec review, nickm also noted that "key_value SP key_value" is technically ambiguous. We don't have that construct in this spec, because we only have one key_value per line. But we do have the similarly ambiguous "key_value SP+".
Let's exclude space from value to resolve this ambiguity.