~bitfehler/m2dir

This thread contains a patchset. You're looking at the original emails, but you may wish to use the patch review UI. Review patch
3 3

[PATCH m2dir] Clarify content requirements of .m2store and .m2dir

Details
Message ID
<20240412085114.81839-1-km@aasrud.com>
DKIM signature
pass
Download raw message
Patch: +8 -8
From: Knut Magnus Aasrud <km@aasrud.com>

Signed-off-by: Knut Magnus Aasrud <km@aasrud.com>
---
Since applications MUST merely check for `.m2dir` and `.m2store`, we
can only STRONGLY RECOMMEND they keep them empty. Also, I think it is
worth rephrasing a bit to clarify that this is in the name of forward
compatibility.

 index.md | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/index.md b/index.md
index d589623..1ceb996 100644
--- a/index.md
+++ b/index.md
@@ -74,10 +74,10 @@ m2dir-compliant applications.
An m2store root **must** contain an empty marker file `.m2store` to enable
discovery by other m2dir-compatible applications.

The `.m2store` marker file **must** be empty. However, applications should
merely check for the file's presence. Future versions of the spec may use the
marker file's content, e.g. to indicate support for a revised version of the
spec.
The `.m2store` marker file is **strongly recommended** to be empty. However,
applications **must** merely check for the file's presence, as future versions
of the spec may use the marker file's content, e.g. to indicate support for new
functionality.

## Default delivery target
[default]: #default-delivery-target
@@ -151,10 +151,10 @@ example require that the user explicitly specify the remote mailbox.
A directory that stores emails in m2dir format according to this specification
**must** contain a marker file `.m2dir`.

The `.m2dir` marker file **must** be empty. However, applications **must**
merely check for the file's presence. Future versions of the spec may use the
marker file's content, e.g. to indicate support for a revised version of the
spec.
The `.m2dir` marker file is **strongly recommended** to be empty. However,
applications **must** merely check for the file's presence, as future versions
of the spec may use the marker file's content, e.g. to indicate support for new
functionality.

Every file in the m2dir represents an email. Files starting with a period (`.`)
**must** be ignored, unless they are specified in this document.
--
2.44.0
Details
Message ID
<3ae8113e-42b1-4d3b-8fe6-7b7cfc004e89@bitfehler.net>
In-Reply-To
<20240412085114.81839-1-km@aasrud.com> (view parent)
DKIM signature
pass
Download raw message
On 4/12/24 10:47 AM, km@aasrud.com wrote:
> From: Knut Magnus Aasrud <km@aasrud.com>
> 
> Signed-off-by: Knut Magnus Aasrud <km@aasrud.com>
> ---
> Since applications MUST merely check for `.m2dir` and `.m2store`, we
> can only STRONGLY RECOMMEND they keep them empty. Also, I think it is
> worth rephrasing a bit to clarify that this is in the name of forward
> compatibility.
> 
>   index.md | 16 ++++++++--------
>   1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/index.md b/index.md
> index d589623..1ceb996 100644
> --- a/index.md
> +++ b/index.md
> @@ -74,10 +74,10 @@ m2dir-compliant applications.
>   An m2store root **must** contain an empty marker file `.m2store` to enable
>   discovery by other m2dir-compatible applications.
> 
> -The `.m2store` marker file **must** be empty. However, applications should
> -merely check for the file's presence. Future versions of the spec may use the
> -marker file's content, e.g. to indicate support for a revised version of the
> -spec.
> +The `.m2store` marker file is **strongly recommended** to be empty. However,
> +applications **must** merely check for the file's presence, as future versions
> +of the spec may use the marker file's content, e.g. to indicate support for new
> +functionality.

Not entirely sure about the must -> strongly recommended part. I mean, 
this is getting a bit philosophical, but even if nothing _reads_ the 
file, it's still fair to say that an application creating that file 
_must_ keep it empty, to not mess with potential future extensions?
Details
Message ID
<6e5576c7-fa81-4d88-b2c7-0efcf631f223@aasrud.com>
In-Reply-To
<3ae8113e-42b1-4d3b-8fe6-7b7cfc004e89@bitfehler.net> (view parent)
DKIM signature
pass
Download raw message
> Not entirely sure about the must -> strongly recommended part. I mean, 
> this is getting a bit philosophical, but even if nothing _reads_ the 
> file, it's still fair to say that an application creating that file 
> _must_ keep it empty, to not mess with potential future extensions?

That is true, but then a future version of m2dir that has something in 
the dotfiles would not be backwards compatible. By using STRONGLY 
RECOMMENDED, we don't need to break compatibility if something like this 
is added in the future.

Say, m2dir 1.0 STRONGLY RECOMMENDS to keep the files empty, but an 
application that supports it chooses to put some random data there. m2dir 
bumps to 1.1 and adds a version tag in the dotfiles. That application 
broke the recommendation and is therefore limited to only supporting 1.0. 
However, any application written for 1.1 would also support 1.0. That is 
not the case if MUST is used.
Details
Message ID
<d81bdb94-f3c8-4c0c-ad09-cf4342a773ea@app.fastmail.com>
In-Reply-To
<6e5576c7-fa81-4d88-b2c7-0efcf631f223@aasrud.com> (view parent)
DKIM signature
pass
Download raw message
On Tue, 16 Apr 2024, at 11:18, Knut Magnus Aasrud wrote:
>> Not entirely sure about the must -> strongly recommended part. I mean, 
>> this is getting a bit philosophical, but even if nothing _reads_ the 
>> file, it's still fair to say that an application creating that file 
>> _must_ keep it empty, to not mess with potential future extensions?
>
> That is true, but then a future version of m2dir that has something in 
> the dotfiles would not be backwards compatible. By using STRONGLY 
> RECOMMENDED, we don't need to break compatibility if something like this 
> is added in the future.
>
> Say, m2dir 1.0 STRONGLY RECOMMENDS to keep the files empty, but an 
> application that supports it chooses to put some random data there. m2dir 
> bumps to 1.1 and adds a version tag in the dotfiles. That application 
> broke the recommendation and is therefore limited to only supporting 1.0. 
> However, any application written for 1.1 would also support 1.0. That is 
> not the case if MUST is used.

Perhaps the right wording here is "For v1.0, this file MUST be empty. Its
contents are reserved for use in a future version".

-- 
Hugo
Reply to thread Export thread (mbox)