You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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.