mesh-issues and mesh-knowledge: milestones are records of the issue tracker, and progress reads them (ADR 0493 §1 to §4, issue 1781)
mesh-issues keeps each design's milestone in the state milestones (history 5), says milestone-set and milestone-moved, and serves milestones, milestone-set and milestone-move. An issue's milestone is its own link of kind milestone, so at most one milestone per issue is checked inside the issue's own write; kind commit links a fixing commit. The triage links no milestone, pull request or commit. import with milestones=N seeds a design's table once. mesh-knowledge's progress reads issue-tracker.milestones and its table parse is gone. Squashed from four commits so the branch history does not carry a compiled bundle that was committed by mistake (6 MB); the path is now in .gitignore.
This commit is contained in:
@@ -215,10 +215,18 @@ const (
|
||||
LinkDesign = "design"
|
||||
LinkCondition = "condition"
|
||||
LinkDelivery = "delivery"
|
||||
// LinkMilestone is the one milestone an issue belongs to, design/id (ADR 0493 §1, §2).
|
||||
LinkMilestone = "milestone"
|
||||
// LinkCommit is a commit that fixes the issue, repository@full sha (ADR 0493 §4).
|
||||
LinkCommit = "commit"
|
||||
)
|
||||
|
||||
// LinkKinds is every kind, in the order they are told.
|
||||
var LinkKinds = []string{LinkDuplicates, LinkRelatesTo, LinkDependsOn, LinkPullRequest, LinkDecision, LinkDesign, LinkCondition, LinkDelivery}
|
||||
var LinkKinds = []string{LinkDuplicates, LinkRelatesTo, LinkDependsOn, LinkPullRequest, LinkDecision, LinkDesign, LinkCondition, LinkDelivery,
|
||||
LinkMilestone, LinkCommit}
|
||||
|
||||
// madeByPeople are the kinds only a person or a session links, never the triage (ADR 0493 §4).
|
||||
var madeByPeople = []string{LinkPullRequest, LinkMilestone, LinkCommit}
|
||||
|
||||
var (
|
||||
pullRequest = regexp.MustCompile(`^[a-z0-9][a-z0-9._-]{0,99}#[1-9][0-9]{0,6}$`)
|
||||
@@ -280,6 +288,15 @@ func checkTarget(kind, target string) (string, error) {
|
||||
case LinkDelivery:
|
||||
ok, shape = deliveryID.MatchString(t), "a delivery's id as mesh-delivery names it: the repository as owner/name, @ and twelve "+
|
||||
"characters of its commit, such as novox/mesh-controller@d2e9dc61590f"
|
||||
case LinkMilestone:
|
||||
var c string
|
||||
c, ok = checkMilestoneTarget(t)
|
||||
if ok {
|
||||
t = c
|
||||
}
|
||||
shape = "a milestone as design/id, such as 47/R6"
|
||||
case LinkCommit:
|
||||
ok, shape = commitRef.MatchString(t), "a repository, @ and the commit's full 40-character id, such as mesh-catalog@"+strings.Repeat("0", 40)
|
||||
default:
|
||||
return "", fmt.Errorf("kind %q is not a kind of link: one of %s", kind, strings.Join(LinkKinds, ", "))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user