Skip to content

task-manager v0.12.0

Choose a tag to compare

@github-actions github-actions released this 10 Oct 08:48
· 12 commits to main since this release
ce048be
  • taskmgr store list lists every store when it cannot read one store
    directory.
    It printed the read failure, exited 1 and showed no row, so the
    names of the healthy stores were lost. The row of that store now has the
    health broken, and the command exits 0. The cause is the key detail in
    --json, which is omitted on every other row, and a <store>: <detail>
    line below the table otherwise. The row is never dangling.
  • tasks.Stores() returns every registry entry, and the new field
    StoreEntry.Detail says why a store directory could not be read.
    Such an
    entry has the health StoreBroken. Detail is empty for every other entry,
    a broken store that only lacks its config.yaml included.
  • Action required for a script or an SDK consumer that finds an unreadable
    store through the exit code of taskmgr store list or the error of
    tasks.Stores():
    the command exits 0 and the call returns no error for
    it. Both fail only when the registry cannot be loaded. An unreadable store
    is a row with the health broken and the key detail, and in the SDK an
    entry with StoreBroken and a Detail that is not empty. Test for that in
    its place.
  • A refused taskmgr dep add or taskmgr rel add says when the fault is
    already in the store, and names the command that removes it.
    It printed
    the bare message, for example blocked_by: referenced issue "<value>" does not exist, which names a value the caller did not pass. The message is now
    blocked_by: stored value "<value>" is not a valid issue ID; remove it with 'taskmgr dep rm'. The same form reports a stored value that references an issue that does not exist, a stored duplicate dependency, a stored dependency cycle, and for rel add a stored duplicate reference and a
    stored value that names the issue itself, with 'taskmgr rel rm'. A fault
    that the add itself makes keeps its message. AddDep and AddRelated
    return the same message in their *ValidationError.
  • taskmgr dep rm, taskmgr rel rm and taskmgr update --remove-label are
    not refused for the values that stay in the list.
    A removal was refused
    when the list held another fault, for example with related: "<value>" is not a valid issue ID. A list with two such values, or more than one over
    its bound, had no repair. When the fault was in the list of the other
    issue, rel rm exited 1, removed the link on the first issue and left it
    on the other. A list that is over its bound, or holds duplicates or values
    that are not IDs, is now repaired one removal at a time. dep rm <dependent> -- <value> removes a stored value that is not an ID, as it did
    for a list with no other fault. In the SDK, RemoveDep, RemoveRelated
    and Update do the same.
  • taskmgr guide progress shows dep rm and rel rm, and how to repair a
    stored edge fault.
    It showed the two add forms only. It gives taskmgr dep rm <dependent> -- <value> for the value a message quotes and taskmgr dep rm <x> <y> for one step of a cycle. It says to add a duplicated edge again,
    because rm removes every copy.
  • tasks.GlobalPackageUses() returns the use: entries of the per-user
    config that resolve, each with its directory.
    A row is a PackageUse with
    the fields Ref and Dir, in list order. The call skips an entry that does
    not resolve and loads no package. Use it to match directories:
    PackageInfo.Path of tasks.GlobalPackages() holds the path: text as
    written for an entry that does not resolve.
  • Action required for an SDK consumer that builds a tasks.ValidationError
    with an unkeyed composite literal:
    the type has an unexported field now,
    so tasks.ValidationError{"field", "message"} no longer builds. Write
    tasks.ValidationError{Field: "field", Message: "message"} in its place.
  • An ID argument that is not an issue ID is not found. taskmgr close ../<id> printed Closed <id>, exited 0 and left the issue open, and
    taskmgr show ../<id> and taskmgr update ../<id> acted on the issue.
    close, show, update, reopen, the comment commands and the first
    argument of the dep and rel commands now print issue not found: <value> and exit 1. In the SDK, Get, Detail, Details, Comments,
    Update, Close, Reopen, the comment operations and the first argument
    of AddDep, RemoveDep, AddRelated and RemoveRelated return
    ErrNotFound for such a value.
  • taskmgr create --from names an edge that is neither a ref of the file
    nor an issue ID as that.
    The message is "<value>" is neither a ref of this set nor a valid issue ID. It was "<value>" is not a valid issue ID,
    which did not tell the writer of a misspelt ref that no entry has that
    name. Store.CreateBatch returns the same message in its
    *BatchEntryError.
  • taskmgr package repo list and taskmgr package repo rm count a package
    as used only when a use: entry resolves into the repository.
    The keys
    used and still_used were matched by package name. A path: entry of the
    same name that leads elsewhere, an entry that does not resolve and a name
    that two repositories provide put a package in the list. A path: entry
    that leads into the repository counts.
  • The warning of taskmgr package repo rm names the command that removes
    each entry.
    For a path: entry it is taskmgr package rm --path <path> --global. It named taskmgr package rm <name> --global for every entry,
    which exits 1 for a path: entry. Two entries that resolve to one package
    give two warning lines and one name in still_used.