Add UUID namespace details #140
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Following discussions on Matrix, I put together this summary of how GUIDs should be calculated using namespaces. This document currently sits outside of the specification hierarchy, but can be divided up into the relevant specs at a later date.
The goal of this document is to set out a normalized approach for calculating GUIDs using predefined namespaces. To put it shortly:
guid
tag if present, or calculated by combining the feed URL and the global podcast namespace (ead4c236-bf58-58c6-a2c6-a6b28d128cb6
).1. The normalized (trimmed)
guid
tag for the episode if available OR2. The normalized (lowercased and trimmed) combination of
title
,enclosure_url
, andpublish_date
, in that order.The result is a consistent calculation of UUID values that will match across all client implementations. This has the added benefit of reducing the amount of database storage used on the server side as duplicate feeds/episodes can be avoided, and instead users can simply be linked to existing entries. Similarly, it makes the data more portable between different OPA hosts.
I'd like some input specifically regarding my assumption about the metadata used in the podcast episodes.