diff options
author | Marcel Müller <neikos@neikos.email> | 2016-01-23 18:03:57 +0100 |
---|---|---|
committer | Marcel Müller <neikos@neikos.email> | 2016-01-23 19:01:29 +0100 |
commit | dbbda9bf5de2eae11a4d04dcbcce51f075423ea0 (patch) | |
tree | 6146d0f9002e3647703b94d9093db1ae6a174bf7 /doc | |
parent | 97816e7d2dc2e4e9b28796505d917e72e4b37c8b (diff) |
Explain futureproofing store files
Diffstat (limited to 'doc')
-rw-r--r-- | doc/src/02000-store.md | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/doc/src/02000-store.md b/doc/src/02000-store.md index 6d09db0c..2b53dca8 100644 --- a/doc/src/02000-store.md +++ b/doc/src/02000-store.md @@ -126,6 +126,26 @@ sub-folders like this: /module/some/sub/folder/example~0.1 ``` +A given file MUST only exist once with the same path. +For example, it is invalid if these files exist at the same time: + +* /foo/bar~0.2 +* /foo/bar~1.3 + +To future-proof the System it is thus necessary to create a disambiguation at +the store level. Thus if a library wants to retrieve a file from the Store +it MUST at least accept files from it's current advertised version. It MAY +accept older files and it MAY transform them and resubmit them in the newer +version. + +For this there will be an enum returned for each given Entry. It will have these +members: + +- `Compatible`, for version matches +- `PossiblyIncompatible`, if the current version is at least a major number + further +- `Incompatible`, if the file is a at least a major number further + ## Store path links {#sec:thestore:links} Linking entries MUST BE version independent. |