╭──────────╮ │← previous│ ╰──────────╯ ╭ changed ─────────╮ │src/test/event.zig│ ╰──────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │643 .issue = .{ │ │644 .title = "Login form clears password on validation error", │ │645 .description = "Submitting an invalid email address resets the password field. Preserve the field value and show an inline validation message.",│ │646 - .tags = "bug priority-medium ui", │ │646 + .labels = "bug priority-medium ui", │ │647 }, │ │648 }, │ │649 }, │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │713 │ │714 // the first parent is the events branch, so its version stays live │ │715 const issue = try readIssue(Repo.DB, repo_opts.hash, haxy_moment, &arena, &issue_id); │ │716 - try std.testing.expectEqualStrings("bug priority-low ui", issue.event.tags); │ │716 + try std.testing.expectEqualStrings("bug priority-low ui", issue.event.labels); │ │717 │ │718 // the issue is listed as conflicted, with the merge base recorded │ │719 const conflicts_cursor = try haxy_moment.getCursor(hash.hashInt(repo_opts.hash, evt.Issue.conflicts_key)) orelse return error.NotFound;│ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │726 │ │727 const base_cursor = try conflict.getCursor(hash.hashInt(repo_opts.hash, evt.base_record_key)) orelse return error.NotFound; │ │728 const base = try evt.read(evt.Issue.Record, Repo.DB, repo_opts.hash, &arena, try Repo.DB.HashMap(.read_only).init(base_cursor)); │ │729 - try std.testing.expectEqualStrings("bug priority-high ui", base.event.tags); │ │729 + try std.testing.expectEqualStrings("bug priority-high ui", base.event.labels); │ │730 │ │731 - // tags is the one field both sides changed differently │ │731 + // labels is the one field both sides changed differently │ │732 const fields_cursor = try conflict.getCursor(hash.hashInt(repo_opts.hash, evt.conflicted_fields_key)) orelse return error.NotFound;│ │733 const conflicted_fields = try fields_cursor.readBytesAlloc(arena.allocator(), null); │ │734 - try std.testing.expectEqualStrings("tags", conflicted_fields); │ │734 + try std.testing.expectEqualStrings("labels", conflicted_fields); │ │735 │ │736 // their whole version is recorded, not just the conflicting field │ │737 const their_cursor = try conflict.getCursor(hash.hashInt(repo_opts.hash, evt.their_record_key)) orelse return error.NotFound; │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │738 const theirs = try evt.read(evt.Issue.Record, Repo.DB, repo_opts.hash, &arena, try Repo.DB.HashMap(.read_only).init(their_cursor));│ │739 - try std.testing.expectEqualStrings("bug priority-medium ui", theirs.event.tags); │ │739 + try std.testing.expectEqualStrings("bug priority-medium ui", theirs.event.labels); │ │740 try std.testing.expectEqualStrings(issue.event.title, theirs.event.title); │ │741 try std.testing.expectEqualStrings(issue.event.description, theirs.event.description); │ │742 │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │743 // their value is attributed to the commit that set it on their branch │ │744 const oids_cursor = try conflict.getCursor(hash.hashInt(repo_opts.hash, evt.their_field_to_oid_key)) orelse return error.NotFound;│ │745 const oids = try Repo.DB.SortedMap(.read_only).init(oids_cursor); │ │746 - const oid_cursor = try oids.getCursor("tags") orelse return error.NotFound; │ │746 + const oid_cursor = try oids.getCursor("labels") orelse return error.NotFound; │ │747 var their_oid: [hash.byteLen(repo_opts.hash)]u8 = undefined; │ │748 _ = try oid_cursor.readBytes(&their_oid); │ │749 try std.testing.expectEqualSlices(u8, &conflicting_oids[1], &their_oid); │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │750 │ │751 // ours stays attributed to the commit on the events branch │ │752 - try std.testing.expectEqualSlices(u8, &conflicting_oids[0], &try readOid(Repo.DB, repo_opts.hash, haxy_moment, &issue_id, "tags")); │ │752 + try std.testing.expectEqualSlices(u8, &conflicting_oids[0], &try readOid(Repo.DB, repo_opts.hash, haxy_moment, &issue_id, "labels")); │ │753 │ │754 - // the losing side's tag didn't leak into the tag index │ │755 - const tag_to_issues_cursor = try haxy_moment.getCursor(hash.hashInt(repo_opts.hash, "tag+status->issue-id-set")) orelse return error.NotFound; │ │756 - const tag_to_issues = try Repo.DB.SortedMap(.read_only).init(tag_to_issues_cursor); │ │757 - try std.testing.expect(null != try tag_to_issues.getCursor("priority-low open")); │ │758 - try std.testing.expect(null == try tag_to_issues.getCursor("priority-medium open")); │ │754 + // the losing side's label didn't leak into the label index │ │755 + const label_to_issues_cursor = try haxy_moment.getCursor(hash.hashInt(repo_opts.hash, "label+status->issue-id-set")) orelse return error.NotFound;│ │756 + const label_to_issues = try Repo.DB.SortedMap(.read_only).init(label_to_issues_cursor); │ │757 + try std.testing.expect(null != try label_to_issues.getCursor("priority-low open")); │ │758 + try std.testing.expect(null == try label_to_issues.getCursor("priority-medium open")); │ │759 } │ │760 │ │761 // │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │774 const event = evt.EventWithId{ .id = events_to_consume3[1].id, .author = author, .event = .{ .issue = .{│ │775 .title = their_issue.title, │ │776 .description = "Rewritten on a branch that never merged.", │ │777 - .tags = their_issue.tags, │ │777 + .labels = their_issue.labels, │ │778 } } }; │ │779 try std.json.Stringify.value(event, .{}, &json.writer); │ │780 _ = try repo.commitAtRef(io, allocator, .{ .message = json.written() }, null, other_events_ref); │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │824 { │ │825 try evt.Issue.update(.local, .xit, repo_opts, io, allocator, &repo, &issue_id, .{ .fields = .{│ │826 .title = "Login form clears password on validation error", │ │827 - .tags = "bug priority-medium ui", │ │827 + .labels = "bug priority-medium ui", │ │828 .description = "Submitting an invalid email address resets the password field.", │ │829 } }, author); │ │830 } │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │845 const event = evt.EventWithId{ .id = events_to_consume3[0].id, .author = author, .event = .{ .issue = .{│ │846 .title = conflicted_issue.title, │ │847 .description = conflicted_issue.description, │ │848 - .tags = conflicted_issue.tags, │ │848 + .labels = conflicted_issue.labels, │ │849 .status = .closed, │ │850 } } }; │ │851 try std.json.Stringify.value(event, .{}, &json.writer); │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ │871 │ │872 // and the resolution stands │ │873 const issue = try readIssue(Repo.DB, repo_opts.hash, haxy_moment, &arena, &issue_id);│ │874 - try std.testing.expectEqualStrings("bug priority-medium ui", issue.event.tags); │ │874 + try std.testing.expectEqualStrings("bug priority-medium ui", issue.event.labels); │ │875 } │ │876 │ │877 // │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────╮ │next →│ ╰──────╯