• Bug#976402: Proposed official virtual packages - todo and todo.txt

    From David Steele@21:1/5 to ansgar@debian.org on Wed Dec 9 20:50:01 2020
    XPost: linux.debian.bugs.dist

    On Wed, Dec 9, 2020 at 3:21 AM Ansgar <ansgar@debian.org> wrote:


    Given topydo just provides/conflicts with devtodo to provide the "todo" binary, this seems to violate Policy 10.1 "Binaries" unless they provide
    the same functionality.


    Note that there is a Conflicts because the current devtodo
    does not support alternatives.

    As I've said elsewhere, I claim they do provide the same functionality, and
    are
    not in violation of 10.1. I say "topydo and devtodo provide the same functionality - the ability to add, delete, modify, and display discrete tasking information". That is not a false statement. The question is, does
    it reflect the intent of the Policy?

    From where I stand, I would expect the Policy to use a different word to indicate something along the lines of greater API compatibility. I have no additional background information, though. Are you aware of any expansions
    on this text, or of any precedents that could help with a consensus process?


    Different "todo" managers should be coinstallable as different users
    might want to use different ones.


    The scheme I propose allows that.


    From the messages I thought todo.txt is a standard *text* format, but
    now you say it is a standard command-line interface? What can they do
    if they depend on todo.txt?


    Todo.txt is an ecosystem of tools built around a file format. There is a canonical
    CLI implementation. Topydo was built as an alternative to that. I'm sorry,
    but I'm
    not sure I understand your question beyond that.

    For the most part, todo.txt is an end user tool. As for a theoretical
    package
    that depends on todo.txt, I believe that the core capabilities it requires
    of
    todo.txt are:
    - a mechanism for discovering the location of the active tasking file
    - an optional mechanism for adding pre and post processing hooks to
    task modification activities

    These capabilities are present in topydo, with the help of todo.txt-base.


    This seems to imply I can manage tasks from the command-line like "todo new-task eat breakfast"? What interface to do so is provided? Can I
    call "todo <file>", "todo", "todo new-task <task>", ...?


    It depends. Topydo can run one-off commands (arg[1] is the command, with a default of "ls" - the same as devtodo). It also has an interpreter mode and
    a
    GUI mode, which I do not believe are pertinent to the discussion.. Devtodo
    has one-off commands as well, along with other end point to support specific commands.


    Should emacs provide a "todo" script to open ~/TODO (with say org-mode)?


    Again, not sure I understand. To be sure, emacs could be used to edit the
    file,
    if it knows where it is. Note that part of the virtual packages work-up involves
    automatic discovery of the file location across providers (see
    todo.txt-base -
    https://manpages.debian.org/unstable/todo.txt-base/index.html).

    I'm adding a common "--info" argument to all todo.txt providers. An emacs
    todo script could use that to identify a todo file to open. But, the core
    "todo{.txt}" command does not open the file for editing. See the vitodo
    and edittodo commands in todo.txt-base for something similar to what
    you are talking about.

    All of this is in preparation for another layer of capabilities for todo.txt providers which is not submitted yet.

    If your theoretical emacs script met the criterion I listed above ("--info"
    and hooks), I'd say it is worth discussing if that could be a
    todo.txt provider.

    It appears that a virtual package, or at least these virtual packages in particular,
    need a distinct spec separate from their implementations. Where would
    you expect to find that documentation? Should that spec be part of this
    list application process?


    If it is just to have "todo" open a user-chosen program they like to
    manage their todo lists with, why not just have the user add a "todo"
    alias to their shell or $HOME/bin?


    This standardizes that process. Part of the challenge with these tool sets
    is the variety of things you have to do to get them to a common working
    level. My goal in packaging them is to simplify that as much as
    possible


    - name: todo.txt
    description: task management based on a standard free-form text
    format

    This description seem to vague to me: it doesn't even mention what file format. Does a package providing todo.txt provide any specific user interface? Emacs can edit todo.txt files: would it qualify (even
    without a "todo" executable in $PATH)?

    Ansgar


    Ok ... does anyone have guidance on the line length limit in that yaml file? Could you take a stab at a replacement?

    BTW - https://salsa.debian.org/debian/todotxt-cli/-/merge_requests/2

    I'll just say here that your stance feels unnecessarily aggressive from the viewpoint of my inbox. I'm just trying to add value here.

    --
    AE0D BF5A 92A5 ADE4 9481 BA6F 8A31 71EF 3661 50CE

    <div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Dec 9, 2020 at 3:21 AM Ansgar &lt;<a href="mailto:ansgar@debian.org">ansgar@debian.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote"
    style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
    Given topydo just provides/conflicts with devtodo to provide the &quot;todo&quot;<br>
    binary, this seems to violate Policy 10.1 &quot;Binaries&quot; unless they provide<br>
    the same functionality.<br></blockquote><div><br></div><div>Note that there is a Conflicts because the current devtodo</div><div>does not support alternatives.</div><div><br></div><div></div><div>As I&#39;ve said elsewhere, I claim they do provide the
    same functionality, and are</div><div>not in violation of 10.1. I say &quot;topydo and devtodo provide the same</div><div>functionality - the ability to add, delete, modify, and display discrete</div><div>tasking information&quot;. That is not a false
    statement. The question is, does</div><div>it reflect the intent of the Policy?</div><div><br></div><div>From where I stand, I would expect the Policy to use a different word to</div><div>indicate something along the lines of greater API compatibility. I
    have no</div><div>additional background information, though. Are you aware of any expansions</div><div>on this text, or of any precedents that could help with a consensus process?</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px
    0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Different &quot;todo&quot; managers should be coinstallable as different users<br>
    might want to use different ones.<br></blockquote><div><br></div><div>The scheme I propose allows that.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">From the
    messages I thought todo.txt is a standard *text* format, but<br>
    now you say it is a standard command-line interface?  What can they do<br>
    if they depend on todo.txt?<br></blockquote><div><br></div><div>Todo.txt is an ecosystem of tools built around a file format. There is a canonical</div><div>CLI implementation. Topydo was built as an alternative to that. I&#39;m sorry, but I&#39;m</div><
    not sure I understand your question beyond that.</div><div><br></div><div>For the most part, todo.txt is an end user tool. As for a theoretical package</div><div>that depends on todo.txt, I believe that the core capabilities it requires of</div><div>
    todo.txt are:</div><div>  - a mechanism for discovering the location of the active tasking file</div><div>  - an optional mechanism for adding pre and post processing hooks to</div><div>    task modification activities</div><div><br></div><div>These
    capabilities are present in topydo, with the help of todo.txt-base.</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">This seems to imply I can manage tasks from
    the command-line like &quot;todo<br>
    new-task eat breakfast&quot;?  What interface to do so is provided?  Can I<br>
    call &quot;todo &lt;file&gt;&quot;, &quot;todo&quot;, &quot;todo new-task &lt;task&gt;&quot;, ...?<br></blockquote><div><br></div><div>It depends. Topydo can run one-off commands (arg[1] is the command, with a</div><div>default of &quot;ls&quot; - the
    same as devtodo). It also has an interpreter mode and a</div><div>GUI mode, which I do not believe are pertinent to the discussion.. Devtodo</div><div>has one-off commands as well, along with other end point to support specific</div><div>commands.</div><
     </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Should emacs provide a &quot;todo&quot; script to open ~/TODO (with say org-mode)?<br></blockquote><div><br></div><div>
    Again, not sure I understand. To be sure, emacs could be used to edit the file,</div><div>if it knows where it is. Note that part of the virtual packages work-up involves</div><div>automatic discovery of the file location across providers (see todo.txt-
    base -</div><div><a href="https://manpages.debian.org/unstable/todo.txt-base/index.html">https://manpages.debian.org/unstable/todo.txt-base/index.html</a>).</div><div><br></div><div>I&#39;m adding a common &quot;--info&quot; argument to all todo.txt
    providers. An emacs</div><div>todo script could use that to identify a todo file to open. But, the core</div><div> &quot;todo{.txt}&quot; command does not open the file for editing. See the vitodo</div><div>and edittodo commands in todo.txt-base for
    something similar to what</div><div>you are talking about.</div><div><br></div><div><div>All of this is in preparation for another layer of capabilities for todo.txt</div><div>providers which is not submitted yet.</div><div><br></div></div><div>If your
    theoretical emacs script met the criterion I listed above (&quot;--info&quot;</div><div>and hooks), I&#39;d say it is worth discussing if that could be a</div><div>todo.txt provider.</div><div><br></div><div>It appears that a virtual package, or at least
    these virtual packages in particular,</div><div>need a distinct spec separate from their implementations. Where would</div><div>you expect to find that documentation? Should that spec be part of this</div><div>list application process?</div><div> </div><
    blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">If it is just to have &quot;todo&quot; open a user-chosen program they like to<br>
    manage their todo lists with, why not just have the user add a &quot;todo&quot;<br>
    alias to their shell or $HOME/bin?<br></blockquote><div><br></div><div>This standardizes that process. Part of the challenge with these tool sets</div><div>is the variety of things you have to do to get them to a common working</div><div>level. My goal
    in packaging them is to simplify that as much as</div><div>possible</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">&gt;   - name: todo.txt<br>
    &gt;     description: task management based on a standard free-form text format<br>

    This description seem to vague to me: it doesn&#39;t even mention what file<br> format.  Does a package providing todo.txt provide any specific user<br> interface?  Emacs can edit todo.txt files: would it qualify (even<br>
    without a &quot;todo&quot; executable in $PATH)?<br>

    Ansgar<br></blockquote><div><br></div><div>Ok ... does anyone have guidance on the line length limit in that yaml file?</div><div>Could you take a stab at a replacement?</div><div><br></div><div>BTW - <a href="https://salsa.debian.org/debian/todotxt-cli/
    -/merge_requests/2">https://salsa.debian.org/debian/todotxt-cli/-/merge_requests/2</a></div><div><br></div><div>I&#39;ll just say here that your stance feels unnecessarily aggressive from the<br></div><div>viewpoint of my inbox. I&#39;m just trying to
    add value here. </div></div><div><br></div>-- <br><div dir="ltr" class="gmail_signature">AE0D BF5A 92A5 ADE4 9481  BA6F 8A31 71EF 3661 50CE</div></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David Steele@21:1/5 to steele@debian.org on Wed Dec 9 21:10:02 2020
    XPost: linux.debian.bugs.dist

    On Wed, Dec 9, 2020 at 2:44 PM David Steele <steele@debian.org> wrote:



    On Wed, Dec 9, 2020 at 3:21 AM Ansgar <ansgar@debian.org> wrote:



    Should emacs provide a "todo" script to open ~/TODO (with say org-mode)?


    In regards to org mode. I'd add a third criteria - the expectation that the underlying
    file complies with the todo.txt format, though there is no requirement that
    the provider
    enforce that.

    <div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Dec 9, 2020 at 2:44 PM David Steele &lt;<a href="mailto:steele@debian.org">steele@debian.org</a>&gt; wrote:<br></div><blockquote class="gmail_
    quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Dec 9, 2020 at 3:21 AM Ansgar &lt;<a href="
    mailto:ansgar@debian.org" target="_blank">ansgar@debian.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br><br></blockquote><blockquote class="gmail_
    quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Should emacs provide a &quot;todo&quot; script to open ~/TODO (with say org-mode)?<br></blockquote></div></div></blockquote><div><br></div><div>In regards to
    org mode. I&#39;d add a third criteria - the expectation that the underlying</div><div>file complies with the todo.txt format, though there is no requirement that the provider</div><div>enforce that.</div></div></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ansgar Burchardt@21:1/5 to David Steele on Thu Dec 10 01:40:02 2020
    XPost: linux.debian.bugs.dist

    David Steele writes:
    On Wed, Dec 9, 2020 at 3:21 AM Ansgar <ansgar@debian.org> wrote:
    Given topydo just provides/conflicts with devtodo to provide the "todo"
    binary, this seems to violate Policy 10.1 "Binaries" unless they provide
    the same functionality.
    [...]
    From where I stand, I would expect the Policy to use a different word to indicate something along the lines of greater API compatibility. I have no additional background information, though. Are you aware of any expansions
    on this text, or of any precedents that could help with a consensus process?

    My understanding is that different alternatives for a binary in PATH
    should provide a compatible command-line interface as one might not know
    which alternative is installed. See for example the description of x-terminal-emulator in Policy 11.8.3 or requirements for the sendmail
    program.

    It is sufficient to only require some subset to be guaranteed to be
    provided (as is the case for both x-terminal-emulator and sendmail: any provider will usually also accept provider-specific options in addition
    to the general ones).

    David Steele writes in another mail:
    That leaves todo.txt, implemented by topydo and (hopefully, soon) todotxt-cli. Unfortunately, (1) has been invoked here as well - the command sets of the two packages are close, but not identical. Also, I'm on record saying an emacs script could comply if:
    - it properly supports the "--info" argument
    - it supports calling the hooks in the optional todo.txt-base package
    - it provides a means to add/modify/delete/show tasks housed in a todo.txt-format file, noting that the format does not have to be strictly enforced by the package.

    My latest stake in the ground - I claim that the functionality of the todo.txt virtual package, from a Policy perspective, is defined, here, and that the candidates are compliant.

    I think "todo.txt" is okay if providers of the "todo.txt" virtual
    package provide a "/usr/bin/todo.txt" alternative that provides some
    reasonable subset of the command-line interface that topydo / todo.sh /
    similar tools share so that "todo.txt list", "todo.txt add laundry" and
    so work. That seems to be the case between topydo and todotxt-cli; just opening emacs wouldn't be valid.

    (As with the examples above providers can implement more than just the
    common interface.)

    Something like this maybe?

    - name: todo.txt
    description: command-line task management utility compatible with todo.txt CLI (http://todotxt.org)
    alternatives: [/usr/bin/todo.txt]

    Ansgar

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)