Ç-04: Ƃļöçķ šţàţé àñđ ţĥé đéçîšîöñ ŕéçöŕđ
Šüḿḿàŕý
À ķàþî þŕöĵéçţ çàŕŕîéš ţĥŕéé ķîñđš öƒ îñƒöŕḿàţîöñ ŵîţĥ ţĥŕéé đéŕéñţ ĥöḿéš. Ţĥé ŕéçîþé îš çöñƒîĝ. Ţĥé ƒîļéš àŕé ţĥé đéļîṽéŕàƃļé. Ƃéţŵééñ ţĥéḿ šîţš ţĥé þŕöĵéçţ'š ŵöŕķ, àñđ ţĥàţ ŵöŕķ îš îţšéļƒ ţŵö ķîñđš öƒ ţĥîñĝ:
- Đéŕîṽéđ šţàţé: þàŕšéđ çöñţéñţ, çöṽéŕàĝé þéŕçéñţàĝéš, ţĥé ŕüñĝš öƒ ţĥé
ļàđđéŕ ŕéàçĥàƃļé ƒŕöḿ çöñţéñţ. Ŕéƃüîļđàƃļé; îţ ļîṽéš îñ ţĥé çàçĥé üñđéŕ
.kapi/work/cache/àñđ îš îĝñöŕéđ. Đéļéţé îţ àñđ à ŕé-ŕüñ ŕéçöñšţŕüçţš îđéñţîçàļ ŕéšüļţš. - Àüţĥöŕéđ ƃļöçķ šţàţé: à þéŕšöñ àþþŕöṽîñĝ à ţŕàñšļàţîöñ, ĥöļđîñĝ à ƃļöçķ ƒöŕ ŕéṽîéŵ, öŕ ŕéçöŕđîñĝ ŵĥö ŕéṽîéŵéđ ŵĥàţ. Ñöţĥîñĝ çàñ đéŕîṽé îţ, šö îţ ḿüšţ ƃé ķéþţ.
Àüţĥöŕéđ šţàţé ñééđš à çàŕŕîéŕ à þļàîñ ţàŕĝéţ ƒîļé çàññöţ þŕöṽîđé: šüçĥ à ƒîļé
çöñţàîñš ţàŕĝéţ ţéẋţ ƃüţ ñö ŕéçöŕđ öƒ îţš àþþŕöṽàļ. core/state îš
ţĥàţ çàŕŕîéŕ, à ƒîŕšţ-çļàšš, ƒöŕḿàţ-îñđéþéñđéñţ ŕéçöŕđ öƒ ŵĥéŕé éàçĥ ƃļöçķ
šţàñđš, đîšţîñçţ ƒŕöḿ ƃöţĥ ţĥé đéŕîṽéđ çàçĥé àñđ ţĥé ŕéçýçļé çöñţéñţ ḿéḿöŕý
(Ç-09).
Ţĥé éñđ-üšéŕ ṽîéŵ öƒ ŵĥàţ ţĥîš šţàţé ḿéàñš (ţĥé ļàđđéŕš, ţĥé ĝàţéš, àñđ ţĥé ŕéṽîéŵ ǫüéüé đéŕîṽéđ ƒŕöḿ îţ) îš Çöñṽéŕĝéñçé àñđ ţĥé þŕöĵéçţ šţöŕé.
Çöñţéẋţ
Ţĥé çöñṽéŕĝéñçé ḿöđéļ đéŕîṽéš à þŕöĵéçţ'š þéŕ-ļöçàļé šţàñđîñĝ: þéŕ (block, locale), à ḿöñöţöñé ļàđđéŕ (draft → translated → established) àñđ à šöüŕçé
ļàđđéŕ (written → established). Ţĥé ļöŵéŕ ŕüñĝš àŕé đéŕîṽàƃļé ƒŕöḿ çöñţéñţ:
àñ àƃšéñţ ţàŕĝéţ îš ƃéļöŵ ţĥé ļàđđéŕ, à þŕéšéñţ ñöñ-éḿþţý ţàŕĝéţ îš àţ ļéàšţ
ţŕàñšļàţéđ, àñđ þŕéšéñţ šöüŕçé îš ŵŕîţţéñ. Ţĥé ţöþ ŕüñĝ îš ñöţ: ŵĥéţĥéŕ à
þéŕšöñ ŕéṽîéŵéđ ţĥîš éẋàçţ ţŕàñšļàţîöñ àñđ ļéţ îţ šţàñđ îš šöḿéţĥîñĝ šöḿéöñé
đîđ, àñđ îţ ĥàš ţö ƃé šţöŕéđ šöḿéŵĥéŕé. Ţĥéŕé îš öñé šüçĥ ŕüñĝ, àñđ ţĥé
ļàđđéŕ ĥàš ñö šéçöñđ ĥüḿàñ ŕüñĝ àƃöṽé îţ.
Ţĥé šţöŕéđ ṽàļüé öƒ ţĥàţ ŕüñĝ îš established, îñ ţĥé šţàţé šţöŕé, öñ ţĥé
ŵîŕé, îñ ĴŠÖÑ àñđ îñ ţĥé ŕéçîþé'š ĝàţé ķéýš. Üšéŕ šüŕƒàçéš šĥöŵ îţ àš
àþþŕöṽéđ (model.StatusLabel, venue.ReasonLabel, àñđ statusWord îñ
@neokapi/ui-primitives ḿàþ ţĥé ṽàļüé ţö ţĥé ŵöŕđ àţ đîšþļàý), ƃéçàüšé
éšţàƃļîšĥéđ àļšö ñàḿéš à ŕüļé îñ ƒöŕçé (Ç-11),
àñđ à þéŕšöñ ŕéàđš ţĥé ţŵö đéŕéñţļý.
Ţĥé šöüŕçé ļàđđéŕ îš ñöţ ḿéŕéļý ŕéþöŕţéđ: îţ ĝàţéš ţĥé ļööþ šýḿḿéţŕîçàļļý ŵîţĥ
ţĥé ţàŕĝéţ ļàđđéŕ. Ĵüšţ àš à ţàŕĝéţ ƃéļöŵ îţš šĥîþ ĝàţé çàññöţ šĥîþ, šöüŕçé ƃéļöŵ
ţĥé þŕöĵéçţ'š defaults.translate_after ļéṽéļ (model.DefaultTranslateAfter,
ŵŕîţţéñ) îš ñöţ ţŕàñšļàţéđ. Ţĥé translate-after ļéàđîñĝ šţàĝé šéţţļéš ţĥé
šöüŕçé ƃéƒöŕé ţĥé ƒàñ-öüţ àñđ ĥöļđš éàçĥ üñđéŕ-ŕéàđý ƃļöçķ ŕàţĥéŕ ţĥàñ
ţŕàñšļàţîñĝ îţ (Çöñṽéŕĝéñçé, šöüŕçé ƒîŕšţ).
Ţĥé ḿöđéļ àļŕéàđý éẋþŕéššéš ţĥéšé ƒàçţš (model.TargetStatus,
model.SourceStatus, model.Origin). Ŵĥàţ ţĥéý ñééđ îš à þéŕšîšţéñçé
îñđéþéñđéñţ öƒ ţĥé đéļîṽéŕàƃļé ƒöŕḿàţ. Ţĥé đàñĝéŕ îš öṽéŕļöàđîñĝ àñ éẋîšţîñĝ
šţöŕé, îñ þàŕţîçüļàŕ ţĥé çöñţéñţ ḿéḿöŕý, ŵĥîçĥ îš çöñţéñţ-ķéýéđ ļéṽéŕàĝé, ñöţ
þŕöĵéçţ šţàţé. Çöñƒļàţîñĝ ĥàṽé ŵé éṽéŕ ţŕàñšļàţéđ ţĥîš šţŕîñĝ? (ŕéçýçļé,
çöñţéñţ-ķéýéđ) ŵîţĥ îš ţĥîš ƃļöçķ éšţàƃļîšĥéđ, ƃý ŵĥöḿ? (šţàţé, ƃļöçķ-ķéýéđ) îš à
çàţéĝöŕý éŕŕöŕ: ţĥé ţŵö ĥàṽé đéŕéñţ ķéýš àñđ đéŕéñţ ļîƒéçýçļéš.
Đéçîšîöñ
Ţŵö ķîñđš öƒ šţàţé, ţŵö ĥöḿéš
Ţĥé îñṽàŕîàñţ "đéļéţé ţĥé çàçĥé àñđ ļöšé ñöţĥîñĝ" ĥöļđš þŕéçîšéļý ƃéçàüšé ţĥé ţŵö àŕé šéþàŕàţéđ:
| Ķîñđ | Éẋàḿþļéš | Ĥöḿé | Àüţĥöŕîţàţîṽé? |
|---|---|---|---|
| Đéŕîṽéđ | þàŕšéđ ƃļöçķš, çöṽéŕàĝé, ŕüñĝš ŕéàçĥàƃļé ƒŕöḿ çöñţéñţ, ţĥé öṽéŕļàýš à þŕöđüçéŕ šéŕṽéš à đŕàƒţ ƒŕöḿ | .kapi/work/cache/, àñđ ţĥé çĥéçķöüţ'š þŕöĵéçţîöñ àţ .kapi/work/store.db | ñö: ŕéƃüîļđàƃļé, îĝñöŕéđ |
| Àüţĥöŕéđ ƃļöçķ šţàţé | àþþŕöṽàļš, ŕéṽîéŵ ĥöļđš, ŕéṽîéŵéŕ, ñöţéš | ţĥé đéçîšîöñ ļéđĝéŕ (core/state) îñ ţĥé þŕöĵéçţ'š çöñţéẋţ šţöŕé | ýéš |
| À ĥéļđ-ƃàçķ ļöçàļé'š đŕàƒţš, àñđ ţĥé éđîţš ḿàđé ţö ţĥéḿ | ţĥé ţéẋţ öƒ ţŕàñšļàţîöñš ŵĥöšé ƒîļéš à ĝàţé ŵîţĥĥöļđš | ţĥé ŵöŕķšþàçé ĥöḿé (core/workhome) îñ ţĥé þŕöĵéçţ'š çöñţéẋţ šţöŕé | ýéš, üñţîļ à đéļîṽéŕý ŵŕîţéš ţĥéḿ ţö ţĥéîŕ ƒîļéš |
Ţĥé çàçĥé ḿàý ḿîŕŕöŕ àüţĥöŕéđ šţàţé îñ ţŕàñšîţ, ƃüţ îţ ñéṽéŕ öŵñš îţ. À đéçîšîöñ îš đüŕàƃļé îñ ţĥé ļéđĝéŕ ţĥé ḿöḿéñţ îţ îš ŕéçöŕđéđ, àñđ éṽéŕý çĥéçķöüţ öƒ ţĥé þŕöĵéçţ ŕéàđš îţ ƒŕöḿ ţĥéŕé. À ĥéļđ-ƃàçķ ļöçàļé'š đŕàƒţš àŕé ţéẋţ, šö ţĥéý ĥàṽé à ĥöḿé öƒ ţĥéîŕ öŵñ: ţĥé ŵöŕķšþàçé ĥöḿé ķééþš ţĥéḿ îñ ţĥé öþéŕàţîöñ ļöĝ (Ç-03), àñđ ţĥé çöṽéŕàĝé, ţĥé ŕéṽîéŵ ǫüéüé àñđ ţĥé çĥéçķš ŕéàđ ţĥéḿ ţĥéŕé ŵĥîļé ţĥéîŕ ƒîļéš đö ñöţ éẋîšţ. À đéçîšîöñ öñ šüçĥ à đŕàƒţ ƃîñđš ţö ţĥé ŕéṽîšîöñ ţĥé ŵöŕķšþàçé ĥöḿé ĥöļđš, àš à đéçîšîöñ öñ à đéļîṽéŕéđ ţŕàñšļàţîöñ ƃîñđš ţö ţĥé ŕéṽîšîöñ îţš ƒîļé ĥöļđš.
Çöñţéñţ ḿéḿöŕý îš ŕéçýçļé, ñöţ ţĥé šţàţé çàŕŕîéŕ
Ţĥé çöñţéñţ ḿéḿöŕý (Ç-09) îš ţĥé ŕéçýçļé çöŕþüš: à
çöñţéñţ-ķéýéđ þööļ öƒ šöüŕçé→ţàŕĝéţ þàîŕš ŕéüšéđ ţö þŕé-ƒîļļ àñđ ļéṽéŕàĝé ƒüţüŕé
ŵöŕķ. Îţ đöéš ñöţ ŕéçöŕđ ŕéṽîéŵ öüţçöḿéš. Àđđîñĝ à þàîŕ ţö ţĥé ḿéḿöŕý (à
memory öþéŕàţîöñ ţĥŕöüĝĥ kapi apply) îš ŕéçýçļé ļéṽéŕàĝé; àþþŕöṽîñĝ à ƃļöçķ
(à decide öþéŕàţîöñ ţĥŕöüĝĥ kapi apply) ŵŕîţéš ţĥé šţàţé šţöŕé. Àñ àþþŕöṽéđ þàîŕ ḿàý àļšö ļàñđ îñ
ţĥé ḿéḿöŕý àš ļéṽéŕàĝé, ƃüţ ţĥàţ îš à šîđé 郃éçţ, ñöţ ŵĥéŕé ţĥé ŕéçöŕđ ļîṽéš.
Ţĥé ļéđĝéŕ îš ţĥé àüţĥöŕîţý
Đéçîšîöñš àŕé çöñţéñţ-àđđŕéššéđ éñţŕîéš îñ àñ àþþéñđ-öñļý ļéđĝéŕ. Üþđàţéš àñđ ŵîţĥđŕàŵàļš àþþéñđ ñéŵ éñţŕîéš. Éàçĥ éñţŕý çöñţàîñš ţĥé đéçîšîöñ ŕéçöŕđ, àçţöŕ, öŕîĝîñ àñđ à ţîḿéšţàḿþ àššîĝñéđ ƃý Ĝö.
Ţĥé éñţŕý'š ķéý îđéñţîƒîéš ţĥé ƃļöçķ àñđ îţš šöüŕçé/ţàŕĝéţ þàîŕîñĝ: (document, block identity, variant, basis, revision), ƃéšîđé ţĥé šöüŕçé àñđ ţàŕĝéţ ĥàšĥéš, ŵĥîçĥ
àñ éñţŕý ŕéçöŕđéđ ƃéƒöŕé ŕéṽîšîöñš çàŕŕîéš àļöñé. Ţĥàţ îš ŵĥàţ ḿàķéš ţĥé ļéđĝéŕ
àñšŵéŕàƃļé àçŕöšš çĥéçķöüţš, àñđ îţ îš ţĥé šàḿé ƒàçţ ţĥé blesses éđĝé çàŕŕîéš
(Ç-03).
Ţĥé àđđŕéšš îš ţĥé ŠĤÀ-256 öƒ ţĥé ŕéçöŕđ, ţĥé àçţöŕ àñđ ţĥé ŵîţĥđŕàŵàļ ƒļàĝ, šö ţŵö þàŕţîéš ţĥàţ ŕéàçĥ ţĥé šàḿé đéçîšîöñ àƃöüţ ţĥé šàḿé þàîŕîñĝ ŵŕîţé ţĥé šàḿé éñţŕý. Ŕéçöŕđîñĝ öñé ţĥé ļéđĝéŕ àļŕéàđý ĥöļđš ļéàṽéš îţ àļöñé, ŵĥîçĥ îš ŵĥàţ ļéţš à þŕöĵéçţ ŕéàđ îţš šĥàŕđš îñ, þüļļ ţĥé šàḿé ṽéñüé ļéđĝéŕ ţŵîçé àñđ ŕéþļàý à çĥàñĝé ƒééđ ŵîţĥöüţ ţĥé ļéđĝéŕ ĝŕöŵîñĝ. Ŕéçöŕđîñĝ ţĥé éñţŕý ţĥàţ àļŕéàđý àñšŵéŕš ƒöŕ îţš þàîŕîñĝ îš ţĥé šàḿé ñö-öþ; ŕéçöŕđîñĝ àñ öļđéŕ éñţŕý àĝàîñ ḿöṽéš îţš ḿöḿéñţ ƒöŕŵàŕđ šö îţ àñšŵéŕš öñçé ḿöŕé.
Ţĥé ļéđĝéŕ îš à þŕöĵéçţîöñ öƒ ţĥé öþéŕàţîöñ ļöĝ
Îñ à ŵöŕķšþàçé, éṽéŕý ļéđĝéŕ ŵŕîţé îš àñ öþéŕàţîöñ îñ ţĥé ŵöŕķšþàçé'š ļöĝ
ƃéƒöŕé îţ îš à ŕöŵ (Ç-03).
state.WorkStore ŕéçöŕđš ţĥŕöüĝĥ à ĵöüŕñàļ ţĥé ĥöšţ ƃîñđš ŵĥéñ îţ öþéñš ţĥé
þŕöĵéçţ šţöŕé (WorkStore.SetJournal, îḿþļéḿéñţéđ ƃý projector.Decisions):
éàçĥ éñţŕý ƃéçöḿéš öñé decision.record öþéŕàţîöñ çàŕŕýîñĝ ţĥé ŕéçöŕđ, ţĥé
àçţöŕ, ţĥé öŕîĝîñ àñđ ţĥé ḿöḿéñţ, àñđ ţĥé þŕöĵéçţöŕ ŵŕîţéš ţĥé ŕöŵ ŵîţĥ
state.ApplyEntries. Ţĥé öþéŕàţîöñ'š çöñţéñţ àđđŕéšš îš
decision:<project>:<entry id>, šö ţĥé éñţŕý'š öŵñ àđđŕéšš çàŕŕîéš öṽéŕ: öñé
đéçîšîöñ ŕéçöŕđéđ ţŵîçé, öñ öñé ḿàçĥîñé öŕ öñ ţŵö ŵĥöšé ļöĝš àŕé ḿéŕĝéđ, îš öñé
öþéŕàţîöñ. À ŕé-àššéŕţîöñ öƒ àñ öļđéŕ éñţŕý îš à ñéŵ éṽéñţ àñđ çàŕŕîéš ñö
àđđŕéšš.
kapi store rebuild ţĥéŕéƒöŕé ŕéƃüîļđš ţĥé ļéđĝéŕ ŵîţĥ ţĥé öţĥéŕ šţöŕéš, àñđ
à šéçöñđ ḿàçĥîñé ţĥàţ ḿéŕĝéš ţĥé ļöĝ ŕéçéîṽéš ţĥé đéçîšîöñš ŵîţĥ îţ. Éàçĥ
çĥéçķöüţ'š ṽîéŵ šţàýš öüţ öƒ ţĥé ļöĝ: îţ îš à ŕéàđîñĝ öƒ ţĥàţ çĥéçķöüţ'š ƒîļéš,
ŵŕîţţéñ ƃý ţĥé šţöŕé ƃéšîđé ţĥé ĵöüŕñàļ. Ţĥé éḿƃéđđéđ ļàýöüţ à ţéšţ öþéñš ĥàš
ñö ļöĝ, àñđ îţš šţöŕé ŵŕîţéš ţĥé ļéđĝéŕ đîŕéçţļý.
À çĥàñĝé ţö ţĥé ţéẋţ îţšéļƒ îš à šéþàŕàţé ŕéçöŕđ. Àñ éđîţ ţĥàţ ŕéàçĥéš ţĥé
éđîţ ŕéçöŕđéŕ îš à content.edit öþéŕàţîöñ, þŕöĵéçţéđ îñţö ţĥé ƃļöçķ ĥîšţöŕý,
ŵĥîçĥ àñšŵéŕš ŵĥö çĥàñĝéđ àñ éđîţîöñ, ƒŕöḿ ŵĥîçĥ ŕéṽîšîöñ ţö ŵĥîçĥ àñđ ţĥŕöüĝĥ
ŵĥîçĥ šüŕƒàçé
(Ç-03). À
đéçîšîöñ šàýš à þéŕšöñ šţàñđš ƃéĥîñđ à þàîŕîñĝ; ţĥé ƃļöçķ ĥîšţöŕý šàýš ĥöŵ ţĥé
ţéẋţ îñ ţĥàţ þàîŕîñĝ çàḿé ţö ƃé.
Ţĥé ļéđĝéŕ ĥöļđš đéçîšîöñš öñļý. Àñ éñţŕý đéçîđéš šöḿéţĥîñĝ ŵĥéñ îţ çàŕŕîéš à
ŕéṽîéŵ šţàţé (àñ àþþŕöṽàļ öŕ à ŕéĵéçţîöñ, öƒ à ţŕàñšļàţîöñ öŕ öƒ šöüŕçé
ŵöŕđîñĝ), à ŕüñĝ àƃöṽé ţŕàñšļàţéđ, à ƃļöçķ ĥéļđ ƒöŕ ŕéṽîéŵ, àñ àššîĝñéé, à ñöţé, öŕ àñ
àĝéñţ'š þŕé-ŕéṽîéŵ, ŵĥîçĥ îš à decide advise (state.UnitState.Decides).
WorkStore ŕéƒüšéš àñ éñţŕý ţĥàţ đéçîđéš ñöţĥîñĝ ŵîţĥ
state.ErrDecidesNothing: à ţŕàñšļàţîöñ, ţĥé šöüŕçé îţ ŵàš ḿàđé ƒŕöḿ àñđ ţĥé
ŕüñĝ îţš þŕöđüçéŕ þüţ îţ öñ ƃéļöñĝ ţö ţĥé ƃļöçķ ĥîšţöŕý. À šĥàŕđ ļîñé öŕ à ļöĝ
éñţŕý ţĥàţ đéçîđéš ñöţĥîñĝ, ŵĥîçĥ öñļý àñ éàŕļîéŕ ŕéļéàšé ŵŕöţé, îš ļéƒţ öüţ öñ
import and on projection, so a rebuild holds decisions only too, and so does a
þŕéđéçéššöŕ šţöŕé à ñéŵéŕ ƃüîļđ çàŕŕîéš ƒöŕŵàŕđ: àñ éñţŕý ţĥàţ đéçîđéš ñöţĥîñĝ
îš ļéƒţ ƃéĥîñđ, àñđ ţĥé đéçîšîöñš àƒţéŕ îţ çöḿé àçŕöšš. Àñ îḿþöŕţ ŕéþöŕţš ţĥé
đéçîšîöñš îţ ŕéçöŕđéđ. Éàçĥ ŵŕîţéŕ ƒöļļöŵš ƒŕöḿ ţĥàţ. À þüļļ ŕéçöŕđš ţĥé
ṽéñüé'š đéçîšîöñš àñđ ļéàṽéš öüţ îţš ŕéçöŕđš öƒ ŵĥàţ îţ þŕöđüçéđ, ŵĥöšé
ţŕàñšļàţîöñš àŕŕîṽé àš çöñţéñţ àñđ ŵĥöšé ŵŕîţé ţĥé þüļļ ŕéçöŕđš îñ ţĥé ƃļöçķ
ĥîšţöŕý, ŵîţĥ ţĥé šöüŕçé ţĥé ṽéñüé'š ŕéçöŕđ ñàḿéš àš îţš ƃàšîš ŵĥéŕé ţĥàţ îš
ţĥé šöüŕçé ţĥé çĥéçķöüţ ĥöļđš. À ĝöṽéŕñîñĝ ƒîñĝéŕþŕîñţ ŕéàđ ƃàçķ ƒŕöḿ à
çöñţéñţ-ḿéḿöŕý ƃüñđļé ļàñđš öñļý öñ à đéçîšîöñ. À ṽéŕđîçţ à ṽéñüé ŕéƒüšéđ îš
ŵîţĥđŕàŵñ (à ŕéṽöçàţîöñ éñţŕý) üñļéšš ţĥé ŕéçöŕđ šţîļļ đéçîđéš šöḿéţĥîñĝ éļšé,
àñđ àñ àþþŕöṽàļ ţĥé ṽéñüé ķéþţ öṽéŕ à ŵîţĥđŕàŵàļ ţĥé þŕöĵéçţ ḿàđé îš ŕéçöŕđéđ
ƃàçķ ƒŕöḿ ţĥé ŕéçöŕđ ţĥé ṽéñüé šéñţ.
Đöçüḿéñţ ķéýš àŕé ŕéçöŕđéđ îñ ţĥé ļöĝ
À đéçîšîöñ îš ƒîļéđ üñđéŕ îţš đöçüḿéñţ'š ķéý, šö éṽéŕý çĥéçķöüţ öƒ à þŕöĵéçţ
ĥàš ţö ĝîṽé à đöçüḿéñţ ţĥé šàḿé ķéý. Éàçĥ öñé à çĥéçķöüţ ŕéšöļṽéš îš à
document.adopt öþéŕàţîöñ (state.Adoption, ŕéçöŕđéđ ţĥŕöüĝĥ ţĥé šàḿé
ĵöüŕñàļ): ţĥé ķéý, ţĥé þàţĥ ţĥé đöçüḿéñţ ŵàš ŕéàđ àţ, ţĥé çöñţéñţ ĥàšĥ öƒ éàçĥ
ƃļöçķ îţ ĥéļđ ţĥéŕé, à đîĝéšţ öṽéŕ ţĥöšé ĥàšĥéš, àñđ ţĥé îđ öƒ ţĥé àđöþţîöñ ţĥé
ķéý ĥéļđ ƃéƒöŕé (Prev). Îţš îđ (state.AdoptionID) îš ţĥé ŠĤÀ-256 öṽéŕ ţĥé
ķéý, ţĥé þàţĥ, ţĥé đîĝéšţ àñđ ţĥàţ þŕéṽîöüš îđ, àñđ îţš çöñţéñţ àđđŕéšš îš
adopt:<project>: ƒöļļöŵéđ ƃý ţĥé îđ, šö ţŵö çĥéçķöüţš ţĥàţ šéé öñé đöçüḿéñţ
ḿöṽé ƒŕöḿ öñé šţàţé ţö ţĥé šàḿé þàţĥ àñđ çöñţéñţ ŕéçöŕđ îţ öñçé, àñđ à
đöçüḿéñţ ţĥàţ ŕéţüŕñš ţö à þàţĥ öŕ à çöñţéñţ îţ ĥéļđ ƃéƒöŕé îš àđöþţéđ àĝàîñ. À
çĥéçķöüţ ŕéçöŕđš àñ àđöþţîöñ öñļý ŵĥéñ ţĥé þŕöĵéçţ đöéš ñöţ ĥöļđ îţ ýéţ: à ķéý
ñéṽéŕ àđöþţéđ, öŕ öñé ñöŵ ŕéàđ àţ àñöţĥéŕ þàţĥ öŕ ŵîţĥ öţĥéŕ çöñţéñţ.
Ţĥé þŕöĵéçţöŕ ŵŕîţéš document_adoption, öñé ŕöŵ þéŕ ķéý: ŵĥéŕé îţ ŵàš ḿöšţ
ŕéçéñţļý ŕéàđ, ŵĥàţ îţ ĥéļđ ţĥéŕé, ţĥé àđöþţîöñ'š îđ àñđ ŵĥéñ ţĥé ķéý ŵàš
ƒîŕšţ àđöþţéđ, ţĥé šàḿé ŕöŵš ŵĥàţéṽéŕ öŕđéŕ ţĥé öþéŕàţîöñš àŕŕîṽé îñ.
WorkStore.AdoptDocuments ḿàţçĥéš à ŕéàđ àĝàîñšţ ţĥé đöçüḿéñţš ţĥîš çĥéçķöüţ
ĥàš ŕéàđ ƒîŕšţ, šö à çĥéçķöüţ ķééþš ţĥé ķéýš îţ ĥàš, àñđ ţĥéñ àĝàîñšţ ţĥé
þŕöĵéçţ'š àđöþţîöñš (WorkStore.AdoptedDocuments), ţĥé éàŕļîéšţ àđöþţéđ ƒîŕšţ.
À çĥéçķöüţ ŕéàđîñĝ à đöçüḿéñţ ƒöŕ ţĥé ƒîŕšţ ţîḿé ţĥéŕéƒöŕé ţàķéš ţĥé ķéý ţĥé
þŕöĵéçţ àļŕéàđý üšéš, àţ ţĥé þàţĥ àñöţĥéŕ çĥéçķöüţ ŕéçöŕđéđ öŕ ƃý ŵĥàţ ţĥé ƒîļé
ĥöļđš, ƃéƒöŕé îţ ḿîñţš öñé ƒŕöḿ ţĥé þàţĥ. À ķéý đéŕîṽéđ ƒŕöḿ à þàţĥ ţĥàţ
àñöţĥéŕ đöçüḿéñţ àļŕéàđý ĥöļđš, öñé ţĥàţ ḿöṽéđ àŵàý ƒŕöḿ ţĥàţ þàţĥ, îš ţàķéñ
ŵĥéţĥéŕ öŕ ñöţ ţĥàţ đöçüḿéñţ îš îñ ţĥé ŕéàđ, àñđ ţĥé ñéŵ đöçüḿéñţ ĝéţš ţĥé
ñéẋţ öŕđîñàļ (d-…-2). host.DocumentIndex àñšŵéŕš à þàţĥ ţĥé çĥéçķöüţ ĥàš
ñöţ ŕéšöļṽéđ ƒŕöḿ ţĥé šàḿé àđöþţîöñš, šö à ƒŕéšĥ çĥéçķöüţ ñàḿéš à ŕéñàḿéđ
đöçüḿéñţ çöŕŕéçţļý ƃéƒöŕé îţš ƒîŕšţ éẋţŕàçţîöñ.
Ţŵö çĥéçķöüţš ţĥàţ ḿîñţ đéŕéñţ ķéýš ƒöŕ öñé đöçüḿéñţ ƃéƒöŕé éîţĥéŕ'š ļöĝ ŕéàçĥéš ţĥé öţĥéŕ ķééþ ƃöţĥ: éàçĥ þŕéƒéŕš ţĥé ķéý îţ ĥöļđš, àñđ ţĥé đéçîšîöñš ƒîļéđ üñđéŕ éàçĥ šţàý ŵîţĥ îţ.
Àþþļîçàƃîļîţý îš à ļööķüþ
WorkStore.Lookup ŕéţüŕñš ţĥé đéçîšîöñ ƒöŕ ţĥé šöüŕçé àñđ ţĥé ţŕàñšļàţîöñ à
çĥéçķöüţ ĥöļđš (state.Reading): àñ éñţŕý ŕéçöŕđéđ ŵîţĥ ŕéṽîšîöñš ŵĥéŕé ţĥéý
àŕé ţĥé çöñţéñţ'š, àñđ öñé ŕéçöŕđéđ ƃéƒöŕé ŕéṽîšîöñš ŵĥéŕé îţš ĥàšĥéš àŕé,
üñţîļ àñ éñţŕý ŵîţĥ ŕéṽîšîöñš îš ŕéçöŕđéđ ƒöŕ ţĥé šàḿé ĥàšĥéš. Ƒŕöḿ ţĥéñ öñ ţĥé
ļàţéŕ éñţŕý šþéàķš ƒöŕ ţĥàţ ţéẋţ, ŵĥéţĥéŕ öŕ ñöţ îţš ŕéṽîšîöñš àŕé šţîļļ ţĥé
çöñţéñţ'š, àñđ öƒ ţĥé éñţŕîéš ţĥàţ àñšŵéŕ ţĥé ļàţéšţ đöéš. À ļàţéŕ ŵîţĥđŕàŵàļ îš
ţĥéŕéƒöŕé ñéṽéŕ üñđöñé ƃý àñ öļđéŕ éñţŕý ƒöŕ ţĥé šàḿé ţéẋţ, éṽéñ àƒţéŕ àñ
îñļîñé çöđé ḿöṽéš üñđéŕ îţ. Đéŕéñţ
ţŕàñšļàţîöñš öƒ à ƃļöçķ ĥàṽé šéþàŕàţé ļéđĝéŕ éñţŕîéš, ţŵö ţĥàţ đéŕ îñ àñ
îñļîñé çöđé àļöñé àḿöñĝ ţĥéḿ. Çĥéçķöüţš ŵîţĥ îđéñţîçàļ šöüŕçé àñđ ţŕàñšļàţîöñ
šĥàŕé ţĥé šàḿé đéçîšîöñ, ŕéĝàŕđļéšš öƒ ƃŕàñçĥ.
Ţĥé ļéđĝéŕ àñđ éàçĥ çĥéçķöüţ'š ṽîéŵ çàŕŕý ţĥé ŕéṽîšîöñš ƃéšîđé ţĥé ĥàšĥéš (šţöŕé ḿîĝŕàţîöñ 8). À šţöŕé ŵŕîţţéñ ƃéƒöŕé ŕéṽîšîöñš ĝàîñš ţĥé ţŵö çöļüḿñš éḿþţý, àñđ ñöţĥîñĝ ŕéŵŕîţéš àñ éñţŕý ţö àđđ ţĥéḿ: îţ àñšŵéŕš ƃý îţš ĥàšĥéš üñţîļ ţĥé ñéẋţ đéçîšîöñ öñ îţš ƃļöçķ ŕéçöŕđš ţĥé ŕéṽîšîöñš.
Éàçĥ çĥéçķöüţ ḿàîñţàîñš à đéŕîṽéđ ṽîéŵ öƒ îţš çüŕŕéñţ ƃļöçķ þàîŕîñĝš. Çöñţéñţ
çĥàñĝéš, îñçļüđîñĝ ƃŕàñçĥ šŵîţçĥéš, ŕéƃüîļđ ţĥîš ṽîéŵ ŵîţĥöüţ ḿöđîƒýîñĝ ţĥé
ļéđĝéŕ. WorkStore.ClearView çļéàŕš öñļý ţĥé çĥéçķöüţ'š ṽîéŵ; đéçîšîöñš ŕéḿàîñ
àṽàîļàƃļé îƒ ţĥéîŕ šöüŕçé àñđ ţàŕĝéţ þàîŕîñĝ àþþéàŕš àĝàîñ.
Ŕéçöŕđîñĝ îš đüŕàƃļé; ţĥé šĥàŕđš àŕé àñ àŕţîƒàçţ
Put àñđ RecordEntry àþþéñđ ţö ţĥé ļéđĝéŕ àñđ àŕé đüŕàƃļé àţ öñçé.
Ñö šéþàŕàţé þüƃļîšĥ öŕ çöḿḿîţ šţéþ îš ŕéǫüîŕéđ.
Ţĥé ļöĝ îš ţĥé šöüŕçé öƒ ţĥé đéçîšîöñš, àñđ ţĥé šĥàŕđš üñđéŕ .kapi/state/
àŕé öñé îñþüţ ţö îţ: àñ îḿþöŕţ ŕéçöŕđš éàçĥ ļîñé îţ ţàķéš àš à
decision.record öþéŕàţîöñ. Đéçîšîöñš ḿöṽé ƃéţŵééñ ḿàçĥîñéš àš öþéŕàţîöñš, ţĥŕöüĝĥ à çöñţéẋţ
ƃàçķéñđ öŕ à ţŕàñšƒéŕ ƒîļé (Ç-03).
Îḿþöŕţ. kapi store import ŕéàđš ţĥé šĥàŕđš îñţö ţĥé ļéđĝéŕ, àñđ à
þéŕšöñ ŕüñš îţ (Ç-11). À ļîñé ţĥé
ļéđĝéŕ àļŕéàđý ĥöļđš çöšţš ñöţĥîñĝ, àñđ à ļîñé öļđéŕ ţĥàñ ţĥé éñţŕý îñ ƒöŕçé àţ
îţš þàîŕîñĝ (ƃý ţĥé Updated šţàḿþ ƃöţĥ éñđš ŵŕîţé) îš ļéƒţ öüţ, ŵĥîçĥ îš ţĥé
šàḿé ļàšţ-ŵŕîţéŕ-ŵîñš ŕüļé à ṽéñüé þüļļ ƒöļļöŵš. À ƒŕéšĥ çļöñé þîçķš üþ ţĥé
þŕöĵéçţ'š đéçîšîöñš ţĥîš ŵàý ŵĥéñ îţš šţöŕé ĥàš ñéṽéŕ ĥéļđ ţĥéḿ. À ŕéçöŕđ ŕéàđ
îñ ţĥîš ŵàý îš ŕéçöŕđéđ îñ ţĥé öŕđéŕ ţĥàţ ļéàṽéš ţĥîš
çĥéçķöüţ'š ṽîéŵ ŵĥéŕé îţ ŵàš: ţĥé ļîñéš ŵĥöšé þàîŕîñĝ îţ àļŕéàđý ĥöļđš ĝö
ļàšţ, šö à ŕéçöŕđ çàŕŕýîñĝ šéṽéŕàļ ƃŕàñçĥéš' àñšŵéŕš ƒöŕ öñé ƃļöçķ çàññöţ
ŕéþöîñţ îţ. state.CommittedDigest, öṽéŕ éàçĥ šĥàŕđ'š ñàḿé àñđ ƃýţéš àñđ šţàḿþéđ
þéŕ çĥéçķöüţ îñ state_meta, îš ţĥé ƒàšţ þàţĥ ƒöŕ àñ îḿþöŕţ ţĥàţ ŵöüļđ ƒîñđ
ñöţĥîñĝ: ţĥé šàḿé ķéý-àñđ-ṽàļüé šĥàþé ţĥé ƃļöçķ çàçĥé üšéš ƒöŕ îţš éẋţŕàçţîöñ
šţàḿþš (Ç-03).
Öñé ļîñé þéŕ ƃļöçķ, šĥàŕđéđ ƃý đöçüḿéñţ, ŕàţĥéŕ ţĥàñ öñé ĴŠÖÑ àŕŕàý. À šîñĝļé îñđéñţéđ đöçüḿéñţ ḿéàñš öñé àþþŕöṽàļ ŕéŵŕîţéš éṽéŕý ƃýţé öƒ ţĥé ƒîļé: ţĥé đ ƒöŕ à öñé-ŵöŕđ çĥàñĝé îš ţĥé ŵĥöļé þŕöĵéçţ, ţŵö ƃŕàñçĥéš ţöüçĥîñĝ üñŕéļàţéđ đöçüḿéñţš çöñƒļîçţ öñ šîĝĥţ, àñđ à ŕüñ àþþŕöṽîñĝ ḿàñý ƃļöçķš ḿöṽéš öŕđéŕš öƒ ḿàĝñîţüđé ḿöŕé ƃýţéš ţĥàñ îţ ŵŕîţéš. À ļîñé þéŕ ƃļöçķ ḿàķéš àñ àþþŕöṽàļ à öñé-ļîñé đ; à šĥàŕđ þéŕ đöçüḿéñţ ķééþš à đöçüḿéñţàţîöñ éđîţ ƒŕöḿ çĥüŕñîñĝ ţĥé šĥàŕđ ĥöļđîñĝ ţĥé îñţéŕƒàçé šţŕîñĝš.
Ţĥé ļéđĝéŕ îţšéļƒ ļîṽéš îñ ţĥé þŕöĵéçţ'š çöñţéẋţ šţöŕé (Ç-03), ƃéšîđé ţĥé çöñţéñţ ḿéḿöŕý, ŵĥîçĥ ĝîṽéš à đéçîšîöñ àñđ ţĥé ŵöŕđîñĝ ţĥé çöñţéñţ ḿéḿöŕý ļéàŕñš ƒŕöḿ îţ öñé ţŕàñšàçţîöñ öñ öñé çöññéçţîöñ þööļ. Ţĥàţ šţöŕé šîţš îñ ţĥé ŵöŕķšþàçé ŕàţĥéŕ ţĥàñ îñ ţĥé çĥéçķöüţ, šö éṽéŕý çĥéçķöüţ öƒ ţĥé þŕöĵéçţ ŕéçöŕđš îñţö öñé ļéđĝéŕ àñđ éàçĥ àñšŵéŕš ƒŕöḿ îţš öŵñ ṽîéŵ öƒ îţ. Çöḿḿîţţîñĝ à ƃîñàŕý đàţàƃàšé àš ţĥé ŕéṽîéŵàƃļé ŕéçöŕđ ŵöüļđ ƃé ĥöšţîļé ţö ŕéṽîéŵ (öþàǫüé, çöñƒļîçţ-þŕöñé) àñđ ŵöüļđ đéƒéàţ éẋçĥàñĝé, šö ţĥé šĥàŕđš šţàý ţéẋţ.
Ţĥé ƃŕöŵšéŕ ƃüîļđ ķééþš ţĥé ļéđĝéŕ àñđ ţĥé ṽîéŵ îñ ţĥé šàḿé ţàƃļéš, öñ îţš ŠǪĻîţé ŴéƃÀššéḿƃļý đŕîṽéŕ (Ç-03).
Ŵĥö ḿàý ŕéçöŕđ ŵĥàţ îš þöļîçý
Éṽéŕý ŵŕîţé ĝöéš ţĥŕöüĝĥ öñé ƒüñçţîöñ (state.Policy), ŵĥîçĥ šééš ţĥé þàîŕîñĝ,
ţĥé àçţöŕ, ţĥé öŕîĝîñ àñđ ŵĥàţ àþþļîéš àţ ţĥàţ þàîŕîñĝ ñöŵ, àñđ éîţĥéŕ ŕéçöŕđš öŕ
ŕéƒüšéš. Ţĥé đéƒàüļţ ŕéçöŕđš éṽéŕýţĥîñĝ: à šîñĝļé-þļàýéŕ þŕöĵéçţ'š đéçîšîöñš àŕé
ţĥé þéŕšöñ'š, àñđ à çöññéçţéđ ṽéñüé éñƒöŕçéš îţš öŵñ þéŕḿîššîöñš öñ îţš šîđé àñđ
ŕéþöŕţš ŵĥàţ îţ ŕéƒüšéđ. Àñ àçţöŕ çļàšš ŵîţĥ ñàŕŕöŵéŕ öŕ ŵîđéŕ ŕîĝĥţš îš à çĥàñĝé
îñ ţĥàţ öñé ƒüñçţîöñ ŕàţĥéŕ ţĥàñ àţ éàçĥ çàļļ šîţé, ŵĥîçĥ îš ŵĥý àçţöŕ àñđ öŕîĝîñ
ŕîđé öñ éṽéŕý éñţŕý.
Ƃļöçķ šţàţé îš ƃļöçķ-ķéýéđ àñđ ƃöüñđ ţö ţĥé þàîŕîñĝ îţ ŕéçöŕđš
Šţàţé îš ķéýéđ ƃý ţĥé ƃļöçķ: (document, block identity, variant), ñöţ ƃý
çöñţéñţ (state.Key: Scope, Unit, Variant). Ţĥé ƃļöçķ îš ñàḿéđ ƃý ţĥé
îđéñţîţý îţš ŕéàđéŕ ĝîṽéš îţ, àñđ ţĥé
ṽàŕîàñţ îš àñ éđîţîöñ ķéý (model.EditionKey): ţĥé ļöçàļé þļüš àñý ƒüŕţĥéŕ
ǫüàļîƒîçàţîöñ. Ţĥé šüŕƒàçéš ţĥàţ šĥöŵ à đéçîšîöñ ñàḿé ţĥé šàḿé ţĥŕéé àš ţĥé
đöçüḿéñţ, ţĥé ƃļöçķ àñđ ţĥé éđîţîöñ.
Ţĥé đöçüḿéñţ îš îđéñţîţý, ñöţ à ļàƃéļ ƃéšîđé îţ. À ƃļöçķ îđ îš üñîǫüé îñšîđé îţš
đöçüḿéñţ àñđ ñöŵĥéŕé ŵîđéŕ: à ŕéàđéŕ ñàḿéš ƃļöçķš ƃý ŵĥàţ ţĥé ƒöŕḿàţ ĝîṽéš îţ,
àñđ ƒöŕ þŕöšé ţĥöšé ñàḿéš ƒöļļöŵ þöšîţîöñ, šö éṽéŕý þàĝé öƒ à đöçüḿéñţàţîöñ
çöļļéçţîöñ çàŕŕîéš àñ h, à p àñđ àñ fm_title. Ķéýéđ öñ ļéšš, öñé þàĝé'š
đéçîšîöñ îš ţĥé çöļļéçţîöñ'š đéçîšîöñ: ţĥé ŕéṽîéŵéŕ'š àþþŕöṽàļš àŕé àççéþţéđ,
ŕéþöŕţéđ àþþļîéđ, àñđ àļļ ƃüţ ţĥé ļàšţ đöçüḿéñţ'š đîšçàŕđéđ, àñđ ţĥé þàĝéš ţĥàţ
ļöšţ ţĥéîŕš ţĥéñ ŕéàđ àš šţàļé àĝàîñšţ à šöüŕçé ñöƃöđý éđîţéđ.
Ţĥé đöçüḿéñţ'š îđéñţîţý îš à đüŕàƃļé ķéý, ñöţ îţš þàţĥ. Ŵĥéñ éẋţŕàçţîöñ
ŕéàđš à đöçüḿéñţ, ţĥé çĥéçķöüţ'š ṽîéŵ ŕéçöŕđš ŵĥàţ ţĥé đöçüḿéñţ ĥéļđ àš ŵéļļ àš
ŵĥéŕé îţ ļîṽéš (project.DocumentAdopter, îḿþļéḿéñţéđ ƃý ţĥé þŕöĵéçţ þööļ), àñđ
WorkStore.AdoptDocuments ḿàţçĥéš éàçĥ ŕéàđ àĝàîñšţ ţĥé đöçüḿéñţš ţĥé þŕöĵéçţ
àļŕéàđý ķñöŵš, ḿöṽîñĝ ţĥé đéçîšîöñš ƒîļéđ üñđéŕ àñ àđđŕéšš öñţö ţĥé îđéñţîţý
(đöçüḿéñţ ķéýš àŕé ŕéçöŕđéđ îñ ţĥé ļöĝ).
À ŕüñ ŕéšöļṽéš ţĥé šçöþé öƒ éṽéŕý đéçîšîöñ îţ ŕéçöŕđš öŕ ŕéàđš ţĥŕöüĝĥ öñé
host.DocumentIndex, ŕéàđ öñçé ƒŕöḿ ţĥé šţöŕé. À ƒîļé ţĥàţ ḿöṽéš ķééþš îţš
àþþŕöṽàļš. Ţĥé þàţĥ îš ţĥé đöçüḿéñţ'š àđđŕéšš: îţ îš ŵĥàţ à đéçîšîöñ îš šçöþéđ
ƃý ŵĥéŕé ţĥé þŕöĵéçţ ĥöļđš ñö ķéý (à ƒŕéšĥ çĥéçķöüţ, à ƃüîļđ ŵîţĥ ñö šţöŕé),
àñđ host.DecisionScope îš ţĥàţ öñé ƒàļļƃàçķ đéƒîñîţîöñ, šö éṽéŕý þàŕţý ñàḿéš
àñ üñŕéšöļṽéđ đöçüḿéñţ ţĥé šàḿé ŵàý. Îţ îš àļšö ţĥé ñàḿé ţĥé çöññéçţöŕ ĝîṽéš ţĥé
îţéḿ, šö à đéçîšîöñ ţŕàṽéļš ţĥé šýñç þŕöţöçöļ šçöþéđ ţö ţĥé îţéḿ îţ ŵàš ḿàđé îñ.
À đéçîšîöñ îš ñöţ àƃöüţ à ţŕàñšļàţîöñ; îţ îš àƃöüţ à þàîŕîñĝ: ţĥîš ŕéñđéŕîñĝ, öƒ ţĥîš šöüŕçé. Éàçĥ ŕéçöŕđ ţĥéŕéƒöŕé çàŕŕîéš ƃöţĥ ĥàļṽéš, çöḿþüţéđ ƃý ţĥé öñé đéƒîñîţîöñ éṽéŕý þàŕţý üšéš:
revision: ţĥé ŕéṽîšîöñ öƒ ţĥé šþéçîƒîç ţŕàñšļàţîöñ îţ ƃļéššéš (model.EditionRevision, ţĥé ţöķéñ àñif_matchñàḿéš), ŵĥîçĥ çöṽéŕš ţĥé ţŕàñšļàţîöñ'š îñļîñé çöđéš àñđ ţĥéîŕ àţţŕîƃüţéš.basis: ţĥé ŕéṽîšîöñ öƒ ţĥé šöüŕçé ŵöŕđîñĝ îţ ƃļéššéđ ţĥàţ ţŕàñšļàţîöñ ƒöŕ, ţĥé àüţĥöŕîţàţîṽé éđîţîöñ'š ŕéṽîšîöñ: ţĥé ţöķéñ à çĥàñĝé šéţ'šbasisçàŕŕîéš àñđ à đéŕîṽéđ éđîţîöñ'š đéŕîṽàţîöñ ñàḿéš (model.Derivation.Rev).targetHashàñđcontentHash: ţĥé çöñţéñţ ĥàšĥéš öƒ ţĥé ţŵö ĥàļṽéš (state.TargetHash, àñđstate.SourceHash, ŵĥîçĥ îšmodel.ComputeContentHash, ţĥé šàḿé ñöŕḿàļîžàţîöñcore/reconcileḿàţçĥéš îđéñţîţý öñ, šö à ƃļöçķ'š ƃàšîš ƃý ĥàšĥ àñđ îţš îđéñţîţý šîĝñàļ àŕé öñé ñüḿƃéŕ).
À ŕéçöŕđ îš ĝŕàđéđ ƃý îţš ŕéṽîšîöñš ŵĥéŕé îţ çàŕŕîéš ţĥéḿ, àñđ ƃý îţš ĥàšĥéš
ŵĥéŕé îţ ŵàš ŕéçöŕđéđ ƃéƒöŕé ŕéṽîšîöñš (state.Reading). Ţĥé ţŵö àñšŵéŕ àļîķé
éẋçéþţ ŵĥéŕé àñ îñļîñé çöđé àļöñé ḿöṽéđ: à çĥàñĝéđ ļîñķ ţàŕĝéţ, öŕ à ļîñķ
ŕéḿöṽéđ, ŕéţîŕéš à đéçîšîöñ ŕéçöŕđéđ ŵîţĥ ŕéṽîšîöñš àñđ ļéàṽéš öñé ŕéçöŕđéđ
ƃéƒöŕé ţĥéḿ šţàñđîñĝ.
À ŕéṽîšîöñ çöṽéŕš ţĥé ķéý îţš éđîţîöñ îš ƒîļéđ üñđéŕ, àñđ ţĥé ŕéàđéŕš öƒ öñé
đöçüḿéñţ đö ñöţ ƒîļé îţš šöüŕçé àļîķé: ţĥé çĥàñĝé šéŕṽîçé ķééþš à ļàñĝüàĝé ţĥé
ƒîļé đéçļàŕéš, à þŕöĵéçţ ŕéàđ ƒîļéš éṽéŕý ƃļöçķ üñđéŕ ţĥé þŕöĵéçţ'š šöüŕçé
ļàñĝüàĝé, àñđ à ŕéàđéŕ ţĥàţ đéçļàŕéš ñöñé ļéàṽéš ţĥé ƃļöçķ ŵîţĥ ñöñé. Ţĥé šöüŕçé
ĥàļƒ îš ţĥéŕéƒöŕé ḿàţçĥéđ üñđéŕ éṽéŕý ķéý à ŕéàđéŕ öƒ ţĥé đöçüḿéñţ ĝîṽéš îţ
(model.Block.SourceRevisions), àñđ éṽéŕý þŕöĵéçţ ŕéàđ ţĥàţ ƒîļéš à ƃļöçķ üñđéŕ
ţĥé þŕöĵéçţ'š ļàñĝüàĝé ķééþš ţĥé ļàñĝüàĝé îţš ŕéàđéŕ đéçļàŕéđ öñ ţĥé ƃļöçķ
(model.PropReadSourceLocale), ţĥé ŵöŕķšþàçé ĥöḿé'š ŕéàđîñĝ öƒ à ĥéļđ-ƃàçķ
ļöçàļé'š đŕàƒţš îñçļüđéđ. Ţĥé çöñţéñţ îš ţĥé šàḿé üñđéŕ éṽéŕý ķéý, šö ţĥé
ḿàţçĥ ƒîñđš éẋàçţļý ţĥé šöüŕçé àš îţ šţàñđš. À đéŕîṽàţîöñ'š šţàñđîñĝ
(model.Block.BasisStanding) àñđ ţĥé ŕéçöŕđ àƃšöŕƃéŕ'š ŕéçöṽéŕý öƒ ţĥé šöüŕçé
àţ à ƃàšîš ḿàţçĥ ţĥé šàḿé ķéýš.
À çöññéçţéđ ṽéñüé ñàḿéš ţĥé þàîŕîñĝ ƃý ŕéṽîšîöñ àļöñé: à đéçîšîöñ ţŕàṽéļš ţĥé
šýñç þŕöţöçöļ àš îţš ţŵö ŕéṽîšîöñš, ŵîţĥöüţ ţĥé ĥàšĥéš, àñđ ţĥé ṽéñüé ĝŕàđéš îţš
ļéđĝéŕ ƃý ţĥéḿ. Îţ šţàḿþš éṽéŕý ƃļöçķ îţ šţöŕéš ŵîţĥ ţĥé ŕéṽîšîöñ öƒ îţš šöüŕçé
üñđéŕ ţĥé þŕöĵéçţ'š šöüŕçé ļàñĝüàĝé (venue.SourceRevision), à ƒüñçţîöñ öƒ ţĥé
šöüŕçé'š ŕüñš àñđ ţĥàţ ļàñĝüàĝé àļöñé, šö à ŵŕîţé ţĥàţ çàŕŕîéš šöḿé öƒ à
ƃļöçķ'š ţŕàñšļàţîöñš àñđ ñöţ öţĥéŕš šţàḿþš ţĥé šàḿé ŕéṽîšîöñ. À đéçîšîöñ îš
çüŕŕéñţ ţĥéŕé ŵĥîļé îţš ƃàšîš îš ţĥàţ ŕéṽîšîöñ àñđ îţš ŕéṽîšîöñ îš ţĥé
ţŕàñšļàţîöñ'š. Ţĥé šţàţüš þŕöĵéçţîöñ, ţĥé ĝŕöüþéđ ţàļļý, ţĥé đŕàƒţ ḿàŕķ, ţĥé
ŕéṽîéŵ çöñţéẋţ'š šţàļé ƒļàĝ àñđ ţĥé ĝöṽéŕñàñçé à þüšĥ îš þüţ ţö àļļ ŕéàđ ţĥé
þàîŕîñĝ ţĥàţ ŵàý. À đéçîšîöñ ţĥàţ ŕàîšéš à ţŕàñšļàţîöñ ţö éšţàƃļîšĥéđ ñééđš à
çüŕŕéñţ ƃàšîš ţö þŕöĵéçţ; à ŕéĵéçţîöñ öŕ à ŵîţĥđŕàŵàļ þŕöĵéçţš üñļéšš îţš ƃàšîš
îš šţàļé, šö à ŕéĵéçţîöñ öƒ à ţŕàñšļàţîöñ ŵŕîţţéñ öüţšîđé ķàþî, ŵĥîçĥ ñàḿéš ñö
ƃàšîš, ļöŵéŕš ţĥé ţŕàñšļàţîöñ öñ ţĥé ṽéñüé àš îţ đöéš öñ ţĥé çĥéçķöüţ. À þüšĥ
đéçîđéš ŵĥàţ ţö šéñđ ƃý à ţŕàñšƒéŕ ĥàšĥ ţĥàţ ƒöļđš ţĥé šàḿé šöüŕçé ŕéṽîšîöñ
(venue.RecordHash), šö à çĥàñĝé ţö àñ îñļîñé çöđé àļöñé ŕéàçĥéš ţĥé ṽéñüé, àñđ
îţ ŕéţîŕéš à đéçîšîöñ ţĥéŕé àš îţ đöéš öñ ţĥé çĥéçķöüţ.
Ţĥé ṽéñüé ţàķéš éṽéŕý ŕéṽîšîöñ üñđéŕ ţĥé öñé ķéý, àñđ à çĥéçķöüţ ŕéçöŕđš à ƃàšîš
üñđéŕ ŵĥîçĥéṽéŕ ķéý îţš ŕéàđéŕ ƒîļéđ ţĥé šöüŕçé ƃý. À þüšĥ ţĥéŕéƒöŕé šéñđš éàçĥ
ƃàšîš îţ çàŕŕîéš, öƒ à đéçîšîöñ öŕ öƒ àñ éđîţîöñ ŵŕîţé, àš ţĥé ṽéñüé'š ŕéṽîšîöñ
öƒ ţĥé šàḿé šöüŕçé (venue.Basis): ŵĥéŕé ţĥé ƃàšîš îš àḿöñĝ ţĥé ƃļöçķ'š šöüŕçé
ŕéṽîšîöñš, îţ ţŕàṽéļš àš venue.SourceRevision öƒ ţĥé ƃļöçķ ţĥé þüšĥ ŕéàđš, àñđ
àñý öţĥéŕ ƃàšîš ţŕàṽéļš àš îţ îš àñđ ŕéàđš šţàļé öñ ƃöţĥ šîđéš. Ţĥé ṽéñüé'š
ŕéṽîšîöñ îš àḿöñĝ ţĥé šöüŕçé ŕéṽîšîöñš à çĥéçķöüţ àççéþţš, šö à ŕéçöŕđ þüļļéđ
ƒŕöḿ ţĥé ṽéñüé ŕéàđš çüŕŕéñţ öñ à çĥéçķöüţ ĥöļđîñĝ ţĥé šàḿé šöüŕçé. À þŕöĵéçţ'š
šöüŕçé ļàñĝüàĝé çàññöţ çĥàñĝé öñçé îţš ṽéñüé ĥöļđš çöñţéñţ, šîñçé éṽéŕý šţàḿþéđ
ŕéṽîšîöñ àñđ éṽéŕý ƃàšîš îš ţàķéñ üñđéŕ îţ.
À ŕéçöŕđ îš šţàļé ŵĥéñ éîţĥéŕ ĥàļƒ đéŕš ƒŕöḿ ŵĥàţ ţĥé þŕöĵéçţ ĥöļđš.
Éđîţîñĝ àñ àþþŕöṽéđ ţŕàñšļàţîöñ đŕöþš ţĥé ƃļöçķ ƃàçķ ƃéļöŵ éšţàƃļîšĥéđ; ŕéŵŕîţîñĝ
îţš šöüŕçé đöéš ţĥé šàḿé. Ƃîñđîñĝ öñļý ţĥé ţàŕĝéţ îš ţĥé ĥàļƒ-ḿéàšüŕé ţĥàţ ļéţš à
ŕéṽîéŵéŕ'š ƃļéššîñĝ öüţļîṽé ţĥé šéñţéñçé îţ ƃļéššéđ: ţĥé ţŕàñšļàţîöñ šţàýš
translated, šţàýš àþþŕöṽéđ, àñđ šĥîþš ŵöŕđîñĝ ƒöŕ ţéẋţ ţĥé þŕöĵéçţ ĥàš đŕöþþéđ,
ŕéþöŕţîñĝ ñöţĥîñĝ.
Šţàļéñéšš îš đéŕîṽéđ öñ éṽéŕý ŕéàđ, ñéṽéŕ šţöŕéđ. À đéçîšîöñ îš ĥîšţöŕý àñđ îš ñéṽéŕ ŕéŵŕîţţéñ; ŵĥàţ à šöüŕçé éđîţ çĥàñĝéš îš ñöţ ţĥé ŕéçöŕđ ƃüţ ŵĥéţĥéŕ îţ šţîļļ đéšçŕîƃéš ţĥé þŕöĵéçţ. Šö ţĥé đéḿöţîöñ ĥàþþéñš ŵĥéŕé ţĥé šţàţé îš ŕéàđ (çöṽéŕàĝé, ţĥé ŕéṽîéŵ ǫüéüé, ţĥé šĥîþ ĝàţé, ţĥé çöñṽéŕĝéñçé þļàñ), àñđ à ŕéšţöŕéđ šöüŕçé çöñṽéŕĝéš ƃàçķ öñţö ţĥé đéçîšîöñ àļŕéàđý öñ ŕéçöŕđ, ŵîţĥ ñöƃöđý ŕé-ŕéṽîéŵîñĝ àñýţĥîñĝ.
À šţàļé ƃļöçķ ţàļļîéš àţ draft: à çöḿḿîţţéđ ţàŕĝéţ éẋîšţš, šö îţ îš ñöţ ƃéļöŵ ţĥé
ļàđđéŕ, ƃüţ îţ îš ñöţ à ţŕàñšļàţîöñ öƒ ţĥé çüŕŕéñţ šöüŕçé éîţĥéŕ. Îţ ŵîţĥĥöļđš îţš
šçöþé ƒŕöḿ šĥîþþîñĝ ŵĥéţĥéŕ öŕ ñöţ à šĥîþ ĝàţé àþþļîéš. À çöṽéŕàĝé ƃàŕ îš à
ţĥŕéšĥöļđ öñ ǫüàñţîţý, àñđ ñö ţĥŕéšĥöļđ ḿàķéš à ţŕàñšļàţîöñ öƒ à ŕéŵŕîţţéñ
šéñţéñçé šĥîþþàƃļé. Àñ üñĝàţéđ þŕöĵéçţ îš þŕéçîšéļý ţĥé öñé ŵîţĥ ñöţĥîñĝ éļšé ţö
çàţçĥ îţ.
À šçöþé'š ṽéŕđîçţ ţĥéŕéƒöŕé ţàķéš öñé öƒ ţĥŕéé šĥîþ šţàţéš, đéçîđéđ öñçé îñ ţĥé
çöṽéŕàĝé ŕöļļüþ àñđ ŕéàđ ƃý éṽéŕý šüŕƒàçé ţĥàţ ŕéþöŕţš öñé. À šçöþé îš
šĥîþþàƃļé ŵĥéñ à šĥîþ ĝàţé ḿàţçĥéš îţ, îţ çļéàŕš ţĥé ĝàţé, àñđ ñöţĥîñĝ
ŵîţĥĥöļđš îţ. Îţ îš ŵîţĥĥéļđ ŵĥéñ îţ îš šĥöŕţ öƒ à ḿàţçĥîñĝ ĝàţé öŕ à
ŵîţĥĥöļđ àþþļîéš: šţàļé ŵöŕđîñĝ, à ŕéĵéçţéđ ţŕàñšļàţîöñ, à ƒàîļîñĝ çĥéçķ, öŕ à
ƃļöçķ ţĥé ţéŕḿš ĝöṽéŕñ ŵîţĥ ñö ţéŕḿîñöļöĝý ŕéšüļţ. Îţ îš ñöţ ĝàţéđ ŵĥéñ ñö ĝàţé
ḿàţçĥéš àñđ ñöţĥîñĝ ŵîţĥĥöļđš. À ñöţ-ĝàţéđ šçöþé çàŕŕîéš ñö šĥîþþàƃļé çļàîḿ:
kapi status àñđ kapi up ñàḿé îţ ñöţ ĝàţéđ, àñđ ship.json ŕéçöŕđš
state: not_gated. Îţ ķééþš ţĥé ţŵö-ƒîéļđ ŕéàđîñĝ gated: false,
shippable: true, šö à çöñšüḿéŕ ţĥàţ ŕéàđš öñļý shippable öƒƒéŕš îţ. À ļöçàļé
šþŕéàđ öṽéŕ šéṽéŕàļ çöļļéçţîöñš ţàķéš ţĥé ŵéàķéšţ šţàţé àḿöñĝ ţĥéḿ.
Šţàļé îš ŵöŕķ àš ŵéļļ àš à ŕéþöŕţ. Ţĥé çöñṽéŕĝéñçé ƒàñ-öüţ ţŕéàţš à
ƃàšîš-šţàļé ƃļöçķ éẋàçţļý àš îţ ţŕéàţš öñé ŵîţĥ ñö ţŕàñšļàţîöñ àţ àļļ: îţ îš îñ
ţĥé þéñđîñĝ šéţ öñ àñý šçöþé (ĝàţéđ öŕ ñöţ, šîñçé ţĥé draft ţàļļý ŵöüļđ
öţĥéŕŵîšé ŕéàđ àñ üñĝàţéđ šçöþé àš çöḿþļéţé), îţ îš þŕîçéđ îñ kapi up --plan öñ
ţĥé šàḿé ŕéçýçļé-ṽéŕšüš-ÀÎ šþļîţ, àñđ ţĥé þàšš þŕöđüçéš à ţŕàñšļàţîöñ öƒ ţĥé
šöüŕçé ţĥé þŕöĵéçţ ĥàš ñöŵ. Ţĥé šéŕṽéŕ ṽéñüé đéŕîṽéš ţĥé àñšŵéŕ ƒŕöḿ îţš
ļéđĝéŕ ƃý ŕéṽîšîöñ: öñé ĝŕöüþéđ ǫüéŕý ĝŕàđéš éṽéŕý ŕéçöŕđéđ ƃàšîš àĝàîñšţ ţĥé
ŕéṽîšîöñ öƒ ţĥé çüŕŕéñţ šöüŕçé, àñđ à šţàļé ƃļöçķ îš ŵîţĥĥéļđ ƒŕöḿ ţĥé þŕöđüçéđ çöüñţ üñţîļ à þàšš ĥàš
đŕàƒţéđ îţ, šö à ŕüñ šţàŕţéđ ƃý à šöüŕçé çĥàñĝé ĥàš þéñđîñĝ ŵöŕķ àñđ þŕöđüçéš.
Ƒöŕ à ƃļöçķ ñöƃöđý ĥàš đéçîđéđ, ţĥé ţŕàñšļàţîöñ'š éđîţîöñ çàŕŕîéš ţĥé ƃàšîš öƒ
ţĥé ļàţéšţ đŕàƒţ (Edition.Derived, šţöŕéđ îñ target_json): öñé ţĥé ṽéñüé'š
öŵñ ŕüñ ḿàđé, öŕ öñé à ŕüñ öñ à çĥéçķöüţ ḿàđé. À þüšĥ šţöŕéš éàçĥ éđîţîöñ ŵîţĥ
ţĥé đéŕîṽàţîöñ îţ çàŕŕîéš, àñđ ţĥé éđîţîöñ ŵŕîţé îţ šéñđš ƃéšîđé ţĥé đéçîšîöñš
(Š-07)
šéţš ţĥé ƃàšîš öñ ţĥé ţŕàñšļàţîöñ ţĥé ṽéñüé ĥöļđš. Ţĥé ṽéñüé'š ļéđĝéŕ ĝàîñš ñö
ŕöŵ ƒöŕ îţ, šö à ƃàšîš ñéṽéŕ ŕéþļàçéš à đéçîšîöñ àñđ ļéàṽéš àñ üñđéçîđéđ ŕöŵ'š
ŕüñĝ, ñöţé àñđ àššîĝñéé àš ţĥéý ŵéŕé. À ŵŕîţé ţĥàţ ļéƒţ à ţŕàñšļàţîöñ ḿàđé ƒŕöḿ
ñö ŕéçöŕđéđ šöüŕçé, àñ éđîţ ƃý ĥàñđ öŕ öñé ḿàđé öüţšîđé ķàþî, çļéàŕš ţĥé ƃàšîš
ţĥé éđîţîöñ ĥéļđ, àñđ šö đöéš à þüšĥéđ éđîţîöñ ţĥàţ çàŕŕîéš ñö đéŕîṽàţîöñ. À
ţŕàñšļàţîöñ à çĥéçķöüţ þüļļéđ ƒŕöḿ ţĥé ṽéñüé šéñđš ñö ƃàšîš, šîñçé ţĥé ṽéñüé'š
öŵñ ŕéçöŕđ öƒ îţ àļŕéàđý ĥöļđš öñé. Éàçĥ ƃļöçķ ĥîšţöŕý ŕöŵ ŕéçöŕđš ţĥé
đéŕîṽàţîöñ ţĥé éđîţîöñ çàŕŕîéđ ŵĥéñ ţĥé ŕöŵ ŵàš ŵŕîţţéñ (block_history.basis
àñđ basis_from), àñđ ţĥé ĥîšţöŕý éñđþöîñţ šéŕṽéš îţ ŵîţĥ ţĥé éñţŕý.
Öñļý àñ àþþŕöṽàļ ŕé-šţàḿþš ţĥé ƃàšîš. Ŵĥàţ çļéàŕš à šţàļé ƃļöçķ îš ţĥé ñéẋţ đéçîšîöñ öñ îţ, àñđ öñé ķîñđ öƒ đéçîšîöñ: à ŕéṽîéŵéŕ ļööķîñĝ àţ ţĥé ŕé-đŕàƒţéđ ţŕàñšļàţîöñ àñđ šàýîñĝ îţ šţàñđš, öñ ţĥé šöüŕçé îñ ƒŕöñţ öƒ ţĥéḿ àñđ üñđéŕ ţĥé ĝöṽéŕñàñçé îñ ƒöŕçé ŵĥéŕé ţĥéý àŕé đéçîđîñĝ. Ţĥàţ ṽéŕđîçţ ƃîñđš ƃöţĥ ĥàļṽéš öƒ ţĥé ƃàšîš, ţĥé šöüŕçé àñđ ţĥé ĝöṽéŕñîñĝ ƒîñĝéŕþŕîñţ, àñđ ţĥé ŕéàđéŕš ţĥàţ ĝŕàđé ţĥé ƃļöçķ çöḿþàŕé àĝàîñšţ îţ, šö ţĥé ƃļöçķ ŕéàđš çüŕŕéñţ öñ ţĥé šöüŕçé àẋîš àñđ çļéàŕš ţĥé šţàļéñéšš ĝàţé öñ ţĥé ĝöṽéŕñàñçé àẋîš (Ç-05). Ţĥé ñéṽéŕ-öṽéŕ-à-đéçîšîöñ ŕüļé ĥöļđš: ţĥé àþþŕöṽàļ Ί ţĥé đéçîšîöñ.
À ŕéĵéçţîöñ ŕéçöŕđš ţĥé ṽéŕđîçţ, ţĥé ŕéĵéçţéđ ţŕàñšļàţîöñ àñđ ţĥé ŕéṽîéŵéŕ. Îţ þŕéšéŕṽéš ţĥé ƃàšîš ŕéçöŕđéđ ƃý ţĥé ļàšţ àþþŕöṽàļ öŕ ƃý ţĥé ŕüñ ţĥàţ þŕöđüçéđ ţĥé ţŕàñšļàţîöñ, šö ţĥé ƃļöçķ'š šţàļéñéšš ŕéḿàîñš üñçĥàñĝéđ. À ţŕàñšļàţîöñ ţĥé ļööþ þŕöđüçéđ àñđ ñöƃöđý ĥàš đéçîđéđ ĥàš îţš ƃàšîš îñ ţĥé ƃļöçķ ĥîšţöŕý, àš ţĥé ƒļöŵ'š ŵŕîţé ţĥàţ ļéƒţ îţ (Ç-03), àñđ à đéçîšîöñ öñ îţ šţàŕţš ƒŕöḿ ţĥàţ ŵŕîţé: îţš ƃàšîš, ƃý ŕéṽîšîöñ àñđ ƃý ĥàšĥ, àñđ ţĥé þŕöđüçéŕ'š šţàḿþ. Çöṽéŕàĝé ĝŕàđéš ţĥé ŵŕîţé'š ƃàšîš ƃý ŕéṽîšîöñ. Ŵîţĥđŕàŵîñĝ àñ àþþŕöṽàļ ĥàš ţĥé šàḿé 郃éçţ. Öñ ţĥé šéŕṽéŕ, ŕéĵéçţîöñ àļšö çļéàŕš ţĥé đŕàƒţ ḿàŕķ, šçĥéđüļîñĝ à ñéŵ đŕàƒţ.
À ŕéĵéçţîöñ îš ŵöŕķ ŵĥàţéṽéŕ ţĥé ƃàšîš šàýš. Çöḿþàŕîñĝ ţĥé ţŵö ĥàļṽéš öƒ ţĥé
þàîŕîñĝ àñšŵéŕš ŵĥéţĥéŕ à ţŕàñšļàţîöñ ŕéñđéŕš ţĥé šöüŕçé ţĥé þŕöĵéçţ ĥöļđš. Îţ
šàýš ñöţĥîñĝ àƃöüţ ŵĥéţĥéŕ ţĥé þŕöĵéçţ šţàñđš ƃéĥîñđ ţĥàţ ţŕàñšļàţîöñ, àñđ à
ŕéṽîéŵéŕ ţüŕñîñĝ đöŵñ à ţŕàñšļàţîöñ öƒ ţĥé šöüŕçé îñ ƒŕöñţ öƒ ţĥéḿ ḿöṽéš ñéîţĥéŕ
ĥàļƒ, šö
à ŕéàđéŕ ĝŕàđîñĝ ţĥé ƃàšîš àļöñé šééš à šéţţļéđ ŕéçöŕđ öṽéŕ à ƃļöçķ šîţţîñĝ àţ
draft ŵîţĥ à ŕéƒüšàļ öñ îţ. Ţĥé ṽéŕđîçţ îš ţĥéŕéƒöŕé ŕéàđ ƃéšîđé ţĥé ƃàšîš: à
ŕéĵéçţéđ ƃļöçķ îš öŵéđ à đŕàƒţ üñţîļ ţĥé ṽéñüé ĥàš đŕàƒţéđ îţ àĝàîñ šîñçé ţĥé
ŕéĵéçţîöñ.
Éàçĥ ṽéñüé àñšŵéŕš "šîñçé ţĥé ŕéĵéçţîöñ" ƒŕöḿ ŵĥàţ îţ àļŕéàđý ķééþš. Öñ ţĥé šéŕṽéŕ îţ îš ţĥé đŕàƒţ ḿàŕķ, ŵĥîçĥ ţĥé ŕéĵéçţîöñ çļéàŕš àñđ ţĥé ñéẋţ þàšš šţàḿþš, šö öñé ŕéĵéçţîöñ ƃüýš éẋàçţļý öñé đŕàƒţ àñđ à šéçöñđ ŕéĵéçţîöñ ƃüýš öñé ḿöŕé. Ļöçàļļý îţ îš ţĥé đéçîšîöñ'š ţàŕĝéţ ĥàļƒ: ţĥé ŕéĵéçţîöñ ñàḿéš ţĥé ţŕàñšļàţîöñ îţ ŕéƒüšéđ, à þàšš ţĥàţ đŕàƒţš šöḿéţĥîñĝ éļšé ḿöṽéš ţĥé ƃļöçķ öƒƒ ţĥàţ þàîŕîñĝ, àñđ ţĥé đéçîšîöñ šţöþš àþþļýîñĝ. Ñéîţĥéŕ ṽéñüé çàñ ļööþ, àñđ à þàšš ţĥàţ ŕéþŕöđüçéš ţĥé ŕéƒüšéđ ŵöŕđîñĝ ŵöŕđ ƒöŕ ŵöŕđ ļéàṽéš ţĥé ƃļöçķ éẋàçţļý ŵĥéŕé îţ ŵàš, ĥéļđ öüţ öƒ šĥîþþîñĝ ŕàţĥéŕ ţĥàñ ǫüîéţļý đéļîṽéŕéđ.
Ţĥé çöüñţ îš þüƃļîšĥéđ ƃéšîđé ţĥé šţàļé šþļîţ ŕàţĥéŕ ţĥàñ îñšîđé îţ. À
ŕéĵéçţîöñ öñ àñ üñḿöṽéđ šöüŕçé ƃéļöñĝš ţö ñéîţĥéŕ ĥàļƒ öƒ ţĥàţ šþļîţ, àñđ
ƒöļđîñĝ îţ îñ ŵöüļđ ƃŕéàķ ţĥé šüƃšéţ ŕéļàţîöñ ţĥé đéŕîṽé đéþéñđš öñ. Îţ îš
convergence.LocaleCoverage.RejectedAwaitingDraft ļöçàļļý,
rejected_awaiting_draft_blocks öñ ţĥé đàšĥƃöàŕđ šţàţš, àñđ
DecisionBasisTally.RejectedOwed îñ ţĥé ļéđĝéŕ'š ĝŕöüþéđ ţàļļý, ŵĥéŕé îţ ĥöļđš
ţĥé ŕéĵéçţîöñš Stale đöéš ñöţ, šö ţĥé ţŵö àŕé đîšĵöîñţ. À çöñṽéŕĝéñçé þàšš
öŵéš à đŕàƒţ ƒöŕ Owed + RejectedOwed ƃļöçķš, ŵĥîçĥ îš ţĥé ñüḿƃéŕ ţĥé đéŕîṽé
ŵîţĥĥöļđš ƒŕöḿ ţĥé þŕöđüçéđ çöüñţ àñđ ţĥé ñüḿƃéŕ ţĥé ŵöŕķéŕ'š öŵñ þŕéđîçàţé
þàŕţîţîöñš öüţ. Šüçĥ à ƃļöçķ ĥöļđš îţš šçöþé öüţ öƒ šĥîþþîñĝ öñ ƃöţĥ ṽéñüéš,
éẋàçţļý àš à šţàļé öñé đöéš.
À đéçîđéđ ƃļöçķ îš ŕé-đŕàƒţéđ öñçé þéŕ šöüŕçé çĥàñĝé. Ţĥé ŕé-đŕàƒţ çàññöţ
đéçîđé, šö à šţàļé đéçîšîöñ šţàýš šţàļé üñţîļ à þéŕšöñ ŕé-ŕéṽîéŵš, àñđ à ļööþ
ţĥàţ ŕéàđ öñļý ţĥé đéçîšîöñ ŵöüļđ đŕàƒţ ţĥé ƃļöçķ àĝàîñ öñ éṽéŕý þàšš. Éàçĥ
ṽéñüé ķééþš îţš öŵñ ŕéçöŕđ öƒ ŵĥàţ îţ ļàšţ đŕàƒţéđ. Ļöçàļļý, ţĥé çöñţéñţ ḿéḿöŕý
àƃšöŕƃš ţĥé ŕé-đŕàƒţéđ þàîŕîñĝ àñđ ţĥé ñéẋţ þàšš ŕéçýçļéš îţ ŕàţĥéŕ ţĥàñ þàýîñĝ
ƒöŕ îţ àĝàîñ. Öñ ţĥé šéŕṽéŕ, ţĥé ļéđĝéŕ ŕöŵ çàŕŕîéš ţĥé šöüŕçé ţĥé þļàţƒöŕḿ
ļàšţ đŕàƒţéđ ţĥé ƃļöçķ àĝàîñšţ ƃéšîđé ţĥé đéçîšîöñ (unit_decisions.draft_basis),
ŵŕîţţéñ ƃý ţĥé ŵöŕķéŕ ƒöŕ éṽéŕý đéçîđéđ ƃļöçķ îţ đŕàƒţš àñđ ñéṽéŕ öṽéŕ ţĥé
đéçîšîöñ îţšéļƒ. À ţŕàñšļàţîöñ ñö đéçîšîöñ ñàḿéš çàŕŕîéš îţš ƃàšîš öñ ţĥé
éđîţîöñ: ţĥé šţŕéàḿ ĥöḿé ŕéçöŕđš ţĥé đéŕîṽàţîöñ (Edition.Derived) ŵĥéñ à
çĥàñĝé šéţ ŵŕîţéš îţ, ţĥé ŵöŕķéŕ ŵŕîţéš ñö ļéđĝéŕ ŕöŵ ƒöŕ îţ, àñđ ţĥé ĝŕöüþéđ
ţàļļý ĝŕàđéš ţĥàţ đéŕîṽàţîöñ ƃéšîđé ţĥé đéçîšîöñš. À šţàļé ƃļöçķ ŵĥöšé ḿàŕķ
ñàḿéš ţĥé çüŕŕéñţ šöüŕçé îš öŵéđ ñöţĥîñĝ ƃý ţĥé ļööþ: îţ çöüñţš àš þŕöđüçéđ
àĝàîñ, ţĥé ŕüñ çöñṽéŕĝéš, àñđ ţĥé ƃļöçķ ŵàîţš öñ à
ŕéṽîéŵéŕ ŵîţĥ îţš šĥîþ šţàţé ŵîţĥĥéļđ. À šöüŕçé ŕéŵŕîţţéñ àĝàîñ ḿöṽéš àŵàý ƒŕöḿ
ţĥé ḿàŕķ, àñđ ţĥé ƃļöçķ îš öŵéđ öñçé ḿöŕé.
Ţĥé šţàļé çöüñţ šþļîţš ƃý ŵĥàţ ţĥé ƃļöçķ ŵàîţš öñ. À šţàļé ƃļöçķ ţĥé ļööþ ĥàš
ñöţ ýéţ đŕàƒţéđ àĝàîñšţ ţĥé šöüŕçé ţĥé þŕöĵéçţ ĥöļđš ñöŵ îš öŵéđ à çöñṽéŕĝéñçé
þàšš; öñé îţ ĥàš đŕàƒţéđ îš öŵéđ à þéŕšöñ'š àţţéñţîöñ. Ƃöţĥ àŕé šţàļé àñđ ƃöţĥ
ŵîţĥĥöļđ ţĥé šçöþé, àñđ ţĥé ŵöŕķ îš đéŕéñţ, šö ţĥé çöüñţ îš þüƃļîšĥéđ àš îţš
ţŵö ĥàļṽéš àš ŵéļļ àš îţš ţöţàļ (convergence.LocaleCoverage.StaleAwaitingDraft
àñđ StaleAwaitingReview ļöçàļļý, stale_awaiting_draft_blocks àñđ
stale_awaiting_review_blocks öñ ţĥé đàšĥƃöàŕđ šţàţš). Éàçĥ ṽéñüé ŕéàđš ţĥé
šþļîţ ƒŕöḿ ŵĥàţ îţ àļŕéàđý ĥöļđš: ļöçàļļý, ŵĥéţĥéŕ ţĥé ŕéçöŕđ šţîļļ đéšçŕîƃéš
ţĥé ţŕàñšļàţîöñ öñ đîšķ; öñ ţĥé šéŕṽéŕ, ŵĥéţĥéŕ ţĥé ŕöŵ'š đŕàƒţ ḿàŕķ ñàḿéš ţĥé
ƃļöçķ'š çüŕŕéñţ šöüŕçé, ŵĥîçĥ îš ţĥé Owed ĥàļƒ öƒ ţĥé ĝŕöüþéđ ţàļļý. Owed
šţàýš à šüƃšéţ öƒ Stale, ŵĥîçĥ îš ŵĥàţ ļéţš ţĥé đéŕîṽé šüƃţŕàçţ îţ ƒŕöḿ à
þŕöđüçéđ çöüñţ ţĥé šţàļé ƃļöçķš àŕé àļŕéàđý îñšîđé.
Šţàļéñéšš îš öñé ŕéàšöñ à þŕöđüçéđ ƃļöçķ îš ŵöŕķ, àñđ ţĥé þļàñ çàŕŕîéš ţĥé öţĥéŕš
öñ ţĥéîŕ öŵñ àẋîš. Ŵĥàţ à þàšš šþéñđš à þŕöṽîđéŕ çàļļ öñ îš đéçîđéđ ƃý ţĥé
çöñţéñţ ḿéḿöŕý, ñöţ ƃý à ţàŕĝéţ ƒîļé: ţĥé þîþéļîñé ŕéàđš ţĥé šöüŕçé đöçüḿéñţš,
recycle ƒîļļš ŵĥàţ ţĥé çöŕþüš àñšŵéŕš, àñđ translate đŕàƒţš ţĥé ŕéḿàîñđéŕ. Šö
kapi up --plan àšķš ţĥé çöŕþüš àƃöüţ éṽéŕý ƃļöçķ îţ çöüñţš, ŕéàđîñĝ ţĥé
þŕöĵéçţ'š çöñţéñţ ḿéḿöŕý ŵîţĥöüţ ŵŕîţîñĝ àñýţĥîñĝ, šö à đŕý ŕüñ þŕîçéš ţĥé
ŕéçýçļîñĝ à ŕüñ ŵöüļđ đö ŵîţĥöüţ çŕéàţîñĝ ţĥé šţàţé à đŕý ŕüñ ḿüšţ ñöţ. À
þŕöđüçéđ ƃļöçķ ţĥé ŕéçöŕđ đöéš ñöţ þàîŕ ŵîţĥ îţš šöüŕçé (à ŕéŵŕîţé, àñ
îđéñţîçàļ þàîŕ ñö àþþŕöṽàļ šţàñđš ƃéĥîñđ, à þàîŕ ŕéƒüšéđ ƒöŕ àšýḿḿéţŕîç îñļîñé
çöđéš) îš ŕéþöŕţéđ àš üñàñšŵéŕéđ àñđ þŕîçéđ. Îţ îš ķéþţ àþàŕţ ƒŕöḿ stale:
šţàļé ḿéàñš à đéçîšîöñ'š ƃàšîš ḿöṽéđ, ŵĥîçĥ àļšö đŕîṽéš ţĥé ŕéṽîéŵ ŵöŕķļîšţ àñđ
šĥîþþîñĝ, àñđ ḿéŕĝîñĝ ţĥé ţŵö ŵöüļđ ḿàķé ţĥé þļàñ àñđ ţĥé ŕüñ šüḿḿàŕý đîšàĝŕéé.
Ţĥé þļàñ þŕîçéš öñļý ţĥé ļàñĝüàĝéš ţĥé ŕüñ'š ƒîŕšţ þàšš ŵöŕķš öñ, çĥöšéñ ƒŕöḿ
çöṽéŕàĝé đéŕîṽéđ àš ţĥé ŕüñ đéŕîṽéš îţ ƃéƒöŕé ţĥàţ þàšš (localesNeedingPass,
ŵîţĥ ţĥé ƃöüñđ çĥéçķš üñļéšš ţĥé ŕüñ šķîþš ţĥéḿ). À þàšš đŕàƒţš éṽéŕý
üñàñšŵéŕéđ ƃļöçķ öƒ à ļàñĝüàĝé îţ ŵöŕķš öñ, àñđ à ļàñĝüàĝé ŵîţĥ ñöţĥîñĝ
ḿîššîñĝ, šţàļé, ŕéĵéçţéđ, ƒàîļîñĝ à çĥéçķ öŕ šĥöŕţ öƒ îţš ĝàţé ĝéţš ñö þàšš, šö
îţš üñàñšŵéŕéđ ƃļöçķš àŕé ñö ŵöŕķ àñđ îţš éẋàçţ ļööķüþš àŕé ñöţ àšķéđ.
Ŵĥéţĥéŕ ţĥé þŕîçé îš à þŕöṽîđéŕ çàļļ îš ţĥé đŕàƒţîñĝ šţéþ'š öŵñ ǫüéšţîöñ. Ţĥé
šţéþ šéŕṽéš à šţöŕéđ đŕàƒţ ŵĥéñ ţĥé þŕöĵéçţ ƃļöçķ šţöŕé ĥöļđš à ţŕàñšļàţîöñ öƒ
ţĥé šàḿé šöüŕçé ḿàđé üñđéŕ îţš çüŕŕéñţ çöñƒîĝüŕàţîöñ ƒîñĝéŕþŕîñţ àñđ ţĥé
ĝöṽéŕñîñĝ çöñţéẋţ îñ ƒöŕçé (blockstore.TargetOverlay.ReusableFor), àñđ ţĥé
þļàñ þüţš ţĥàţ ǫüéšţîöñ ţö à þŕöđüçéŕ ƃüîļţ ţĥé ŵàý à þàšš ƃüîļđš öñé
(tool.StoredTargetReuser), šö ţĥé ţŵö àñšŵéŕ îţ ƒŕöḿ öñé ƒüñçţîöñ. À ƃļöçķ ţĥé
šţéþ ŵöüļđ šéŕṽé ţĥîš ŵàý îš çöüñţéđ àš à šţöŕéđ đŕàƒţ àţ ñö ţöķéñš; à
ĥéļđ-ƃàçķ ļöçàļé'š ŵĥöļé đŕàƒţ šéţ ŕéàđš ţĥîš ŵàý öñ ţĥé ŕüñ àƒţéŕ ţĥé öñé ţĥàţ
đŕàƒţéđ îţ. Ţĥé ƃļöçķ šţöŕé îš à çàçĥé: ţĥé ŵöŕķšþàçé ĥöḿé ķééþš éàçĥ ĥéļđ-ƃàçķ
đŕàƒţ ŵîţĥ ţĥé šţàḿþ îţš þŕöđüçéŕ šéŕṽéš îţ ƃý (ţĥé öṽéŕļàý'š ķéý,
çöñƒîĝüŕàţîöñ ƒîñĝéŕþŕîñţ àñđ šöüŕçé šţàḿþ), àñđ à ŕüñ ŵŕîţéš ţĥé öṽéŕļàýš îţ
ļàçķš ƃàçķ ƃéƒöŕé îţš ƒîŕšţ þàšš, šö à çĥéçķöüţ ŵĥöšé .kapi/work/ ŵàš đéļéţéđ
šéŕṽéš îţš ĥéļđ-ƃàçķ đŕàƒţš ŵîţĥöüţ à þŕöṽîđéŕ çàļļ. À đŕàƒţ à þéŕšöñ öŕ àñ àĝéñţ
éđîţéđ šîñçé îš ŕéšţöŕéđ ƒŕöḿ ţĥé ļàţéšţ đŕàƒţ à þŕöđüçéŕ ŵŕöţé ƒöŕ îţ, ŵĥîçĥ
ţĥé ļöĝ ķééþš.
Ţĥé þļàñ ĵüđĝéš à þŕöđüçéđ ƃļöçķ öñļý öñçé ţĥé ŕéçöŕđ àƃšöŕƃéŕ ĥàš ŕéàđ îţš
çöḿḿîţţéđ ţàŕĝéţ àţ ţĥé ƃýţéš öñ đîšķ (ţĥé đîĝéšţ šţàḿþš öƒ
Ç-03); ƃéƒöŕé ţĥàţ ţĥé çöŕþüš îš üñƒîñîšĥéđ,
îţš šîļéñçé ḿéàñš "ñöţ àšķéđ", àñđ ţĥé þļàñ šàýš šö ŕàţĥéŕ ţĥàñ ǫüöţîñĝ éîţĥéŕ à
ƒŕéé ŕüñ öŕ à þŕöṽîđéŕ çàļļ þéŕ ţŕàñšļàţîöñ ţĥé ŕüñ ŵîļļ ŕéçýçļé. À þŕöđüçéđ
ƃļöçķ ŵîţĥ ñö ƒîļé öñ đîšķ îš à ĥéļđ-ƃàçķ ļöçàļé'š đŕàƒţ, ŕéàđ öüţ öƒ ţĥé
ŵöŕķšþàçé ĥöḿé; ñöţĥîñĝ îš ļéƒţ ƒöŕ ţĥé àƃšöŕƃéŕ ţö ŕéàđ, šö ţĥé þļàñ ĵüđĝéš îţ
àţ öñçé. Ŵĥàţ ţĥé ļööþ
çàññöţ đö îš đéçîđé, šö ţĥé ŕé-đŕàƒţ ñéṽéŕ ŕéšţöŕéš ţĥé ŵîţĥđŕàŵñ àþþŕöṽàļ: ţĥé
ƃļöçķ ŕéţüŕñš àţ îţš þŕéšéñçé ƃàšéļîñé, îñ ţĥé ŕéṽîéŵ ŵöŕķļîšţ, àñđ ţĥé šçöþé
šţàýš ŵîţĥĥéļđ üñţîļ šöḿéöñé ŕéṽîéŵš ţĥé ñéŵ þàîŕîñĝ.
Ţĥé ŕéçöŕđ àƃšöŕƃéŕ (host/recordabsorb.go) ƒöļļöŵš öñé ŕüļé ƒöŕ à þàîŕîñĝ ţĥé
þŕöĵéçţ'š öŵñ ŕéçöŕđ çöñţŕàđîçţš. À çöḿḿîţţéđ ţàŕĝéţ îš àƃšöŕƃéđ àĝàîñšţ ţĥé
šöüŕçé îţ đöéš ţŕàñšļàţé: ţĥé ŵöŕđîñĝ ŕéçöṽéŕéđ ƃý ţĥé đéçîšîöñ'š ƃàšîš (îţš
ŕéṽîšîöñ, öŕ îţš ĥàšĥ ƒöŕ à đéçîšîöñ ŕéçöŕđéđ ƃéƒöŕé ŕéṽîšîöñš) ƒöŕ à ļöçàļé
ţĥàţ ĥöļđš à đéçîšîöñ, öŕ ţĥé ŵöŕđîñĝ ţĥé ƃļöçķ šţöŕé ĥéļđ ŵĥéñ ţĥé þàšš ļàšţ
ŕéàđ ţĥé ŵöŕķîñĝ ţŕéé ƒöŕ à šöüŕçé ŕéŵŕîţé ţĥàţ àƒƒéçţš éṽéŕý ļöçàļé. Ţĥàţ
ŵöŕđîñĝ îš ţĥé ţéẋţ àţ ţĥé ƃàšîš ŕéṽîšîöñ, šö ţĥé çöñţéñţ ḿéḿöŕý þàîŕš ţĥé
ţŕàñšļàţîöñ ŵîţĥ îţ, àñđ à ļàţéŕ ļööķüþ çļàššîƒîéš ţĥé šöüŕçé îñ ĥàñđ àĝàîñšţ îţ
(edit.Classify).
Ŵĥéñ ţĥàţ ŵöŕđîñĝ îš üñŕéçöṽéŕàƃļé ţĥé þàîŕ îš ñöţ ŵŕîţţéñ àţ àļļ, šö ţĥé çöŕþüš
ñéṽéŕ ļéàŕñš à ţŕàñšļàţîöñ öƒ à šéñţéñçé ţĥé þŕöĵéçţ ĥàš đŕöþþéđ. Öñçé ţĥé
ţàŕĝéţ ĥàš ḿöṽéđ àš ŵéļļ, ţĥé ŕéçöŕđ đéšçŕîƃéš ñéîţĥéŕ ĥàļƒ öƒ ŵĥàţ îš öñ đîšķ
àñđ ţĥé þàîŕ îš àƃšöŕƃéđ ļîķé àñý üñđéçîđéđ öñé, ŵĥîçĥ îš ŵĥàţ ļéţš à þéŕšöñ ŵĥö
ŕéŵŕîţéš à šéñţéñçé àñđ îţš ţŕàñšļàţîöñ ţöĝéţĥéŕ ķééþ ţĥé þàîŕîñĝ ţĥéý àüţĥöŕéđ.
Àñ îđéñţîçàļ ţŕàñšļàţîöñ îš à đéçîšîöñ öŕ îţ îš ñöţĥîñĝ. À ţàŕĝéţ éǫüàļ ţö îţš šöüŕçé îš đŕöþþéđ: üñàþþŕöṽéđ, ţĥé îđéñţîţý îš ƒàŕ ḿöŕé öƒţéñ à çàţàļöĝ çàŕŕýîñĝ îţš üñţŕàñšļàţéđ ļéàṽéš ṽéŕƃàţîḿ ţĥàñ à ţŕàñšļàţîöñ ţĥàţ ĥàþþéñš ţö çöîñçîđé, àñđ àƃšöŕƃîñĝ öñé ŵöüļđ ƒîļļ ţĥé ƃļöçķ ƒŕöḿ îţš öŵñ šöüŕçé àñđ ţàķé îţ àŵàý ƒŕöḿ ţĥé ÀÎ šţéþ ƒöŕ ĝööđ. Çàŕŕýîñĝ àñ àþþŕöṽàļ îţ îš àƃšöŕƃéđ ļîķé àñý öţĥéŕ þàîŕ: à þéŕšöñ ŕéàđ ţĥé þàîŕîñĝ àñđ šàîđ ţĥîš ŵöŕđîñĝ îš ŕîĝĥţ, ŵĥîçĥ îš ŵĥàţ þŕöþéŕ ñöüñš, þŕöđüçţ ñàḿéš àñđ šĥöŕţ ļàƃéļš ļööķ ļîķé ŵĥéñ ţĥéý àŕé çöŕŕéçţ.
À đéçîšîöñ šéţţļéš ţĥé çĥéçķ ţĥàţ ĝüéššéš àţ îţ. Ţĥé ŕüļé
target-same-as-source îš à ĥéüŕîšţîç ƒöŕ "ñöƃöđý ţŕàñšļàţéđ ţĥîš", àñđ àñ
àþþŕöṽàļ îš à þéŕšöñ ĥàṽîñĝ ŕéàđ ţĥàţ éẋàçţ þàîŕîñĝ àñđ àñšŵéŕéđ ţĥé ǫüéšţîöñ îţ
àšķš, šö àñ àþþŕöṽéđ îđéñţîçàļ ţàŕĝéţ îš ñöţ ŕéþöŕţéđ àñđ đöéš ñöţ ƒàîļ ţĥé šĥîþ
ĝàţé. Ţĥé þŕöĵéçţ'š ţéŕḿš šéţţļé îţ ţĥé šàḿé ŵàý, ƒöŕ àñ éñţŕý ŵĥöšé ţàŕĝéţ îš
îţš šöüŕçé. Ƃöţĥ àŕé öñé ŕüļé (host.identicalTargetRule) ƃéçàüšé ţŵö šüŕƒàçéš
çöñšüļţ îţ: ţĥé ĝàţé kapi check ƒàîļš öñ, àñđ ţĥé çĥéçķ éẋçļüšîöñš ţĥàţ
đéḿöţé à ƃļöçķ ƃéļöŵ translated đüŕîñĝ kapi up. Öñļý ţĥàţ öñé ƒîñđîñĝ îš
šéţţļéđ; à đŕöþþéđ þļàçéĥöļđéŕ öñ àñ àþþŕöṽéđ ƃļöçķ îš šţîļļ à đéƒéçţ, àñđ àñ
àþþŕöṽàļ ļîçéñšéš ñöţĥîñĝ àƃöüţ îţ.
À ḿîššîñĝ ƃàšîš îš üñķñöŵñ, ñöţ šţàļé. À ŕéçöŕđ ŵîţĥ ñö ƃàšîš šàýš ñöţĥîñĝ
àƃöüţ ţĥé šöüŕçé îţ ƃļéššéđ, àñđ ŕéàđîñĝ ţĥàţ šîļéñçé àš đŕîƒţ ŵöüļđ đéḿöţé
éṽéŕý šüçĥ đéçîšîöñ à þŕöĵéçţ ĥöļđš. Šüçĥ à ƃļöçķ ķééþš îţš ŕüñĝ, šĥîþš àš îţ
đöéš, àñđ îš çöüñţéđ: kapi status ŕéþöŕţš ĥöŵ ḿàñý đéçîšîöñš ŕéšţ öñ àñ
üñŕéçöŕđéđ ƃàšîš, šö ţĥé àššüḿþţîöñ îš ṽîšîƃļé ŕàţĥéŕ ţĥàñ šîļéñţ. Îţ çļéàŕš
îţšéļƒ: ţĥé ñéẋţ đéçîšîöñ öñ ţĥé ƃļöçķ ŕéçöŕđš à ƃàšîš.
À çöñţéñţ-ķéýéđ îñđéẋ šţŕüçţüŕàļļý çàññöţ éẋþŕéšš àñý öƒ ţĥîš. Ƃļöçķ-ķéýîñĝ þļüš
ţĥé þàîŕîñĝ îš ŵĥàţ ḿàķéš àñ àþþŕöṽàļ üñàƃļé ţö šîļéñţļý öüţļîṽé ţĥé ţéẋţ îţ
àþþŕöṽéđ, àñđ îţ îš ţĥé šàḿé ƒàçţ ţĥé ĝŕàþĥ'š blesses éđĝé çàŕŕîéš
(Ç-03), ŵĥîçĥ çàŕŕîéš ƃöţĥ ĥàļṽéš, ƃý
ŕéṽîšîöñ àñđ ƃý ĥàšĥ, ƒöŕ ţĥàţ ŕéàšöñ, šö ŵĥîçĥ đéçîšîöñ çöṽéŕš ţĥîš ƃļöçķ, àţ
ŵĥîçĥ ƃàšîš îš àñšŵéŕàƃļé ƃý ţŕàṽéŕšàļ àš ŵéļļ àš ƃý ļööķüþ. À çöññéçţéđ ṽéñüé
àþþļîéš ţĥé šàḿé ƃàšîš ŕüļé ƒŕöḿ îţš šîđé, ƃý ŕéṽîšîöñ: à ŕéçöŕđ ţĥàţ ñàḿéš ñö
ƃàšîš îš üñķñöŵñ ţĥéŕé ţöö, çöüñţéđ àñđ ñéṽéŕ šţàļé.
Ŵĥàţ ĝöṽéŕñéđ ţĥé đéçîšîöñ
À ŕéçöŕđ àļšö çàŕŕîéš ŵĥàţ ĝöṽéŕñéđ ţĥé àñšŵéŕ îţ îš àƃöüţ:
governingFingerprint, ţĥé ƒîñĝéŕþŕîñţ öƒ ţĥé ṽöîçé ĝüîđàñçé àñđ ţĥé ţéŕḿ ŕüļéš
îñ ƒöŕçé àţ ţĥé ƃļöçķ'š ĝöṽéŕñàñçé þöîñţ ƒöŕ îţš ļöçàļé
(Ç-05). Îţ îš ţĥé ṽàļüé éṽéŕý ţŕàñšļàţîöñ þŕöđüçéŕ šţàḿþš
öñ à ţàŕĝéţ'š Origin.ContextFingerprint, çöḿþüţéđ ƃý ţĥé öñé ƒüñçţîöñ àļļ öƒ
ţĥéḿ šĥàŕé (core/profile.GovernanceContext), šö à đéçîšîöñ àñđ à þŕöđüçéđ
ţàŕĝéţ àŕé çöḿþàŕàƃļé àĝàîñšţ ţĥé šàḿé çöñţéẋţ.
Ţŵö ŵŕîţéŕš šéţ îţ. À đéçîšîöñ (kapi apply, ţĥé đéšķţöþ'š àþþŕöṽé àçţîöñ,
àñ àĝéñţ'š þŕé-ŕéṽîéŵ, àñ àþþŕöṽàļ ḿàđé îñ à çöññéçţéđ ṽéñüé)
ŕéšöļṽéš ţĥé çöñţéẋţ îñ ƒöŕçé ŵĥéŕé ţĥé đéçîđéŕ îš đéçîđîñĝ àñđ ŕéçöŕđš îţ
ƃéšîđé ţĥé ṽéŕđîçţ. Éàçĥ đéçîđéŕ ŕéšöļṽéš îţ ƒŕöḿ ŵĥàţ îţ ĥàš: à þŕöĵéçţ ŕéàđš
ţĥé ŕéçîþé'š ƃîñđîñĝš àţ ţĥé ƃļöçķ'š þöîñţ, à ṽéñüé ŕéàđš ţĥé ṽöîçé þŕöƒîļé îţš
öŵñ ļàđđéŕ ŕéšöļṽéš àñđ ţĥé ţéŕḿ ŕüļéš îţš ŵöŕķšþàçé ĥöļđš, àñđ ƃöţĥ ƒöļđ ţĥé
ŕéšüļţ ŵîţĥ ţĥé öñé ƒüñçţîöñ éṽéŕý þŕöđüçéŕ šţàḿþš ŵîţĥ, šö ţĥé ţŵö àŕé
çöḿþàŕàƃļé. Ţĥé šàḿé ṽéŕđîçţ öñ ţĥé šàḿé þàîŕîñĝ üñđéŕ à ḿöṽéđ çöñţéẋţ îš à ñéŵ
đéçîšîöñ, àñđ îš ŕéçöŕđéđ àĝàîñ. À ƃàšîš ţĥé çöñṽéŕĝéñçé ļööþ ŵŕîţéš ƒöŕ
îţš öŵñ öüţþüţ ŕéçöŕđš ţĥé þŕöđüçéŕ'š šţàḿþ: ţĥé ŕüñ ţĥàţ ŵŕöţé ţĥé ţàŕĝéţ îš
ţĥé ŕüñ ŕéçöŕđîñĝ îţ. À ĥàñđ-ţýþéđ ţŕàñšļàţîöñ ŕéçöŕđš ñöñé, ƃéçàüšé ñöţĥîñĝ
ṽöüçĥéš ƒöŕ ţĥé çöñţéẋţ îţ ŵàš ŵŕîţţéñ üñđéŕ. Ţĥé ṽéñüé ļéđĝéŕ çàŕŕîéš ţĥé šàḿé
çöļüḿñ ƒöŕ à đéçîšîöñ, šö à þüšĥ àñđ à þüļļ àĝŕéé öñ îţ, àñđ àñ üñđéçîđéđ
ţŕàñšļàţîöñ çàŕŕîéš ţĥé šţàḿþ öñ îţš éđîţîöñ'š öŕîĝîñ.
Ţĥé ƒîñĝéŕþŕîñţ îš à đéŕéñţ ǫüàñţîţý ƒŕöḿ ţĥé ŕéçöŕđ'š îđéñţîţý šîĝñàļš, àñđ
ñéîţĥéŕ îš đéŕîṽàƃļé ƒŕöḿ ţĥé öţĥéŕ. contextHash šàýš ŵĥîçĥ ƃļöçķ ţĥîš îš
(model.ComputeContextHash öṽéŕ ţĥé ƃļöçķ'š ñàḿé, ţýþé àñđ þŕöþéŕţîéš) àñđ ḿöṽéš
ŵĥéñ ţĥé ƃļöçķ'š šüŕŕöüñđîñĝš ḿöṽé. governingFingerprint šàýš ŵĥàţ ĝöṽéŕñéđ
ţĥé àñšŵéŕ àñđ ḿöṽéš ŵĥéñ ţĥé ṽöîçé öŕ ţĥé ţéŕḿîñöļöĝý ḿöṽéš. Éîţĥéŕ çĥàñĝéš
ŵîţĥ ţĥé öţĥéŕ ĥöļđîñĝ šţîļļ.
Ţĥé ŕéçöŕđ îš ţĥé đüŕàƃļé çàŕŕîéŕ öƒ ţĥîš ṽàļüé. À ƃîļîñĝüàļ ƒöŕḿàţ ķééþš ţĥé
þŕöđüçéŕ'š šţàḿþ ƃéšîđé ţĥé ŵöŕđš, ƃüţ ḿöšţ đéļîṽéŕéđ ƒöŕḿàţš ĥöļđ šţŕîñĝš àñđ
ñöţĥîñĝ éļšé: à ĴŠÖÑ çàţàļöĝ, à .properties ƒîļé. À ŕéàđéŕ þàîŕîñĝ šüçĥ à
ƒîļé ŵîţĥ îţš šöüŕçé ƒîñđš ŵĥàţ ĝöṽéŕñéđ ţĥé ţŕàñšļàţîöñ îñ ţĥé ŕéçöŕđ ƒöŕ ţĥé
ƃļöçķ öŕ ñöŵĥéŕé. Ţĥàţ îš ŵĥàţ ţĥé ŕéçöŕđ àƃšöŕƃéŕ ŕéàđš, îñ ţĥîš öŕđéŕ: ţĥé
ţàŕĝéţ'š öŵñ šţàḿþ ŵĥéŕé ţĥé ƒöŕḿàţ çàŕŕîéš öñé, ţĥéñ ţĥé ŕéçöŕđ ŕöŵ ƒöŕ ţĥé
ƃļöçķ àñđ ļöçàļé, ŵĥîļé ţĥàţ ŕöŵ šţîļļ đéšçŕîƃéš ţĥé ţŕàñšļàţîöñ öñ đîšķ. Ţĥé
ṽàļüé ţŕàṽéļš îñţö ţĥé çöñţéñţ ḿéḿöŕý ƃéšîđé ţĥé àñšŵéŕ
(Ç-09), àñđ çöḿþîļîñĝ à çöñţéñţ-ḿéḿöŕý ƃüñđļé ƃàçķ
îñţö ţĥé šţöŕé ŵŕîţéš îţ öñţö ţĥé ŕéçöŕđ ŕöŵ ƒöŕ ţĥé ƃļöçķ ţĥé àñšŵéŕ ŵàš
ŕéçöŕđéđ ƒöŕ, ŵĥéŕé ţĥàţ ŕöŵ ĥöļđš ñöñé àñđ îš àƃöüţ ţĥàţ ţŕàñšļàţîöñ. À ŕéçöŕđ
ŵŕîţţéñ ƃéƒöŕé ţĥé ƒîéļđ éẋîšţéđ ŕéàđš ţĥŕöüĝĥ ţĥé þŕöđüçéŕ'š šţàḿþ öñ îţš
origin, ŵĥîçĥ îš àļļ îţ ĥàš ţö šàý.
Ŵĥö đéçîđéđ
À Decision ŕéçöŕđš à þéŕšöñ'š öüţçöḿé àñđ, ŵĥéŕé à ĥöšţéđ šüŕƒàçé ķñöŵš îţ,
ŵĥö ŕéàçĥéđ îţ. Éṽéŕý đéçîšîöñ îš à decide öþéŕàţîöñ šéñţ ţö ţĥé çĥàñĝé
šéŕṽîçé (É-09), àñđ àñ àĝéñţ öŕ à ḿöđéļ
ñéṽéŕ ŕéçöŕđš öñé: ţĥé šéŕṽîçé ŕéƒüšéš à decide öţĥéŕ ţĥàñ advise ƒŕöḿ àñ
àĝéñţ àš not_permitted, ŵĥîçĥéṽéŕ šüŕƒàçé çàŕŕîéš îţ (kapi apply ŕüñ ƒŕöḿ àñ
àĝéñţ'š šĥéļļ, ḾÇÞ apply_edits). Àñ àĝéñţ þŕé-ŕéṽîéŵš îñšţéàđ: îţ šţöŕéš à
šçöŕé àñđ îţš ŕéàšöñš öñ ţĥé ƃļöçķ (state.AIReview, à decide öþéŕàţîöñ ŵîţĥ
öüţçöḿé advise, ţĥé đéšķţöþ þŕé-ŕéṽîéŵ), ƃöüñđ ţö ţĥé ţŕàñšļàţîöñ îţ ĵüđĝéđ,
àñđ ţĥé þéŕšöñ ŕéṽîéŵîñĝ ŕéàđš îţ îñ ţĥé ǫüéüé. Îţš ĵüđĝéḿéñţ ñéṽéŕ çöüñţš àš à
þéŕšöñ'š.
Àñ AIReview îš à ţĥîŕđ ţĥîñĝ àĝàîñ: àñ àđṽîšöŕý àññöţàţîöñ çàŕŕýîñĝ à šçöŕé
àñđ ƒîñđîñĝš, ƃöüñđ ţö ţĥé ţŕàñšļàţîöñ îţ ĵüđĝéđ šö ţĥàţ àñ éđîţ îñṽàļîđàţéš îţ
(AIReview.Fresh). Îţ ñéṽéŕ ḿöṽéš à ƃļöçķ öñ ţĥé ļàđđéŕ.
À ṽéñüé îš àüţĥöŕîţàţîṽé ƒöŕ ŵĥàţ îţ àççéþţš
Ţĥé þŕöĵéçţ šţöŕéš đéçîšîöñš ļöçàļļý; éàçĥ ṽéñüé éñƒöŕçéš îţš öŵñ ŕéṽîéŵ þöļîçý. À þüšĥ šéñđš ţĥé ŕéçöŕđ ŵĥöļé, šö îţ çàñ çàŕŕý àñ àþþŕöṽàļ ţĥé ṽéñüé đéçļîñéš: ţĥé þüšĥéŕ ḿàý ĥöļđ ñö ŕéṽîéŵ þéŕḿîššîöñ ƒöŕ ţĥàţ ļàñĝüàĝé, öŕ ţĥé ŵöŕķšþàçé ḿàý ŕéƒüšé à ṽéŕđîçţ öñ ŵöŕķ îţš àüţĥöŕ ŵŕöţé. Ţĥé ṽéñüé ķééþš šüçĥ à ŕéçöŕđ àš ţĥé ƃàšîš îţ çàŕŕîéš, ŵîţĥ ñö ŕüñĝ àƃöṽé ţŕàñšļàţéđ àñđ ñö đéçîđéŕ, àñđ ŕéþöŕţš ŵĥàţ îţ ŕéƒüšéđ.
Ţĥé þŕöĵéçţ ƒöļļöŵš ţĥàţ àñšŵéŕ ŕàţĥéŕ ţĥàñ ŕéšţàţîñĝ îţš öŵñ. À ŕéƒüšéđ ṽéŕđîçţ îš ŕéçöŕđéđ ļöçàļļý àš ţĥé šàḿé ƃàšîš, ŵîţĥ ţĥé ṽéñüé àš ţĥé éñţŕý'š öŕîĝîñ, ƃéçàüšé ţĥé ṽéñüé îš ŵĥö ŕéàçĥéđ îţ. Ƃöţĥ éñđš çöḿþüţé ţĥé šàḿé ŕéçöŕđ, šö ţĥé đéçîšîöñ çöḿþöñéñţ öƒ ţĥé ƒŕéšĥñéšš ŕéƒ àĝŕééš àĝàîñ àñđ ţĥé ñéẋţ þüšĥ ĥàš ñöţĥîñĝ ţö šéñđ. Ŵîţĥöüţ ţĥàţ šţéþ ţĥé ţŵö ƒöļđš đéŕ ƒöŕ ĝööđ, àñđ éṽéŕý þüšĥ ŕé-šéñđš ţĥé šàḿé ŕéƒüšéđ àþþŕöṽàļš.
Ţĥé ṽéñüé đéçļîñéš ţĥé öţĥéŕ đîŕéçţîöñ öñ ţĥé šàḿé ţéŕḿš. À þüšĥ ŵĥöšé ŕéçöŕđ ţàķéš ƃàçķ àñ éšţàƃļîšĥéđ ƃļöçķ ţĥé ṽéñüé ĥöļđš, öṽéŕ ţĥé šàḿé ţŕàñšļàţîöñ öƒ ţĥé šàḿé šöüŕçé, îš à ŵîţĥđŕàŵàļ, àñđ ţĥé ṽéñüé àþþļîéš îţ öñļý ƒöŕ à þüšĥéŕ ĥöļđîñĝ ŕéṽîéŵ þéŕḿîššîöñ ƒöŕ ţĥé ļàñĝüàĝé. À ŕéƒüšéđ ŵîţĥđŕàŵàļ ķééþš ţĥé ṽéñüé'š ŕéçöŕđ, àñđ ţĥé ŕéþöŕţ çàŕŕîéš ţĥàţ ŕéçöŕđ ƃàçķ; ţĥé þŕöĵéçţ ŵŕîţéš îţ îñţö îţš öŵñ ļéđĝéŕ ŵîţĥ ţĥé ṽéñüé àš ţĥé öŕîĝîñ, šö ţĥé ţŵö àĝŕéé àĝàîñ ŵîţĥ ñö þüļļ ƃéţŵééñ ţĥéḿ.
À ŕéĵéçţîöñ îš ƃöüñđ ţö ţĥé ţŕàñšļàţîöñ îţ ĵüđĝéđ îñ ţĥé šàḿé ŵàý. À þüšĥéđ ŕéĵéçţîöñ öƒ à ţŕàñšļàţîöñ ţĥé ṽéñüé ĥàš šîñçé ŕéþļàçéđ çĥàñĝéš ñöţĥîñĝ ţĥé ṽéñüé ĥöļđš: ţĥé ṽéñüé ķééþš ţĥé ƃļöçķ'š ŕéçöŕđ, ŕéþöŕţš ţĥé ŕéĵéçţîöñ îţ đîđ ñöţ àþþļý àñđ çàŕŕîéš îţš ŕéçöŕđ ƃàçķ. Ţĥé þŕöĵéçţ ţàķéš ţĥàţ ŕéçöŕđ, öŕ ķééþš ţĥé ƃàšîš ŵîţĥöüţ ţĥé ŕéĵéçţîöñ ŵĥéŕé ţĥé ṽéñüé ĥöļđš ñöñé.
À ṽéñüé àļšö ķééþš à đéçîšîöñ àƒţéŕ ţĥé çöñţéñţ îţ ĵüđĝéđ îš ŕéḿöṽéđ. À ƒîļé ļéàṽîñĝ à çĥéçķöüţ šàýš ñöţĥîñĝ àƃöüţ ţĥé ŕéçöŕđ, ŵĥîçĥ šţîļļ ĥöļđš ţĥé đéçîšîöñ, àñđ à þŕöĵéçţ šéñđš îţš ŕéçöŕđ àĝàîñ öñļý ŵĥéñ ţĥàţ ŕéçöŕđ'š ƒöļđ ḿöṽéš. À ṽéñüé ţĥàţ đŕöþþéđ ţĥé đéçîšîöñ ŵöüļđ ĥàṽé ñöţĥîñĝ ţö ƃŕîñĝ îţ ƃàçķ, šö îţ ķééþš ţĥé đéçîšîöñ àñđ ŵĥàţéṽéŕ éñţŕý ţĥé đéçîšîöñ ĥàñĝš ƒŕöḿ, àñđ çöñţéñţ àŕŕîṽîñĝ àţ ţĥàţ þàţĥ àĝàîñ ļàñđš öñ ţĥàţ éñţŕý, ŵîţĥ ţĥé đéçîšîöñ šţîļļ ŕéçöŕđéđ àĝàîñšţ îţ. Ŵĥàţ ţĥé ṽéñüé ŕéþöŕţš àš çöñţéñţ ļéàṽéš ţĥàţ éñţŕý öüţ, šö à þŕöĵéçţ îš ñéṽéŕ àšķéđ ţö àççöüñţ ƒöŕ à ƒîļé îţ đöéš ñöţ ĥàṽé.
Ţĥé šĥàŕđš' ļöçàţîöñ îš ƒîẋéđ
À çĥéçķöüţ'š đéçîšîöñ šĥàŕđš šîţ üñđéŕ state/ îñ îţš .kapi/ đîŕéçţöŕý
(project.ExportLayout.UnitStateDir), àñđ kapi store import <dir> ŕéàđš ţĥé
šàḿé ļàýöüţ üñđéŕ ţĥé đîŕéçţöŕý îţ îš ĝîṽéñ. Ţĥé ŕéçîþé ĥàš ñö šéþàŕàţé ƃîñđîñĝ
ƒöŕ ţĥîš đîŕéçţöŕý. Ŵĥéñ àñ îḿþöŕţ, à þüļļ öŕ à çöñţéñţ-ḿéḿöŕý ƃüñđļé ŕéçöŕđš
đéçîšîöñš îñţö à çĥéçķöüţ, ţĥé šţöŕé ŵŕîţéš ţĥé çĥéçķöüţ'š ṽîéŵ ƃàçķ ţö îţš
šĥàŕđš (WorkStore.Commit), öñé šĥàŕđ þéŕ đöçüḿéñţ, àñđ ŕéḿöṽéš éàçĥ šĥàŕđ ŵĥöšé
đöçüḿéñţ ţĥé ṽîéŵ đöéš ñöţ ñàḿé.
Ĝéţţîñĝ ţĥé ŕéçöŕđ öüţ öƒ ķàþî'š öŵñ ļàýöüţ îš à ĵöƃ ƒöŕ éẋçĥàñĝé ŕàţĥéŕ ţĥàñ
ŕéļöçàţîöñ (kapi merge, ẊĻÎƑƑ <target state=…>, ţĥé .kpz ƃîļîñĝüàļ
þŕöƒîļé), ŵĥîçĥ çöñṽéŕţš ţĥé ŕéçöŕđ îñţö à ƒöŕḿàţ à ţĥîŕđ þàŕţý çàñ ŕéàđ îñšţéàđ
öƒ ḿöṽîñĝ îţ.
Ļöçàļ đéçîšîöñ ŕéçöŕđš
À ĥöšţéđ ļàýéŕ çàñ çööŕđîñàţé ŕéṽîéŵ: çöñçüŕŕéñţ ŕéṽîéŵéŕš, àššîĝñḿéñţ, ǫüéüéš, àñđ à þļàçé ƒöŕ ŕéṽîéŵš đöñé ƃý þéöþļé ŵîţĥ ñö çĥéçķöüţ. Ţĥàţ îš çööŕđîñàţîöñ àŕöüñđ ţĥé ŕéçöŕđ ŕàţĥéŕ ţĥàñ à ŕéþļàçéḿéñţ ƒöŕ îţ, àñđ à þŕöĵéçţ'š öŵñ ŕéçöŕđ ķééþš þŕöþéŕţîéš ñö ļîṽé šéŕṽîçé çàñ:
- ķàþî ŕüñš öñ îţš öŵñ. ΃ ƃļöçķ šţàţé ŕéǫüîŕéđ à šéŕṽîçé, à þļàîñ ķàþî þŕöĵéçţ çöüļđ ñöţ çöñṽéŕĝé àţ àļļ.
- Ţĥé ŕéçöŕđ ƃéļöñĝš ţö ţĥé çĥàñĝé ţĥàţ çàüšéđ îţ. Šöüŕçé đŕîƒţ ĥàþþéñš îñ à þüļļ ŕéǫüéšţ, àñđ ţĥé šţàţé çĥàñĝé ƃéļöñĝš îñ ţĥàţ šàḿé đ, ŵĥéŕé à ŕéṽîéŵéŕ šééš ţĥàţ àñ éđîţ îñṽàļîđàţéđ ţŵéļṽé àþþŕöṽàļš. À ļîṽé đàţàƃàšé îš ñöŵ, ñöţ àţ ţĥîš çöḿḿîţ.
- À çĥéçķöüţ àţ à þàšţ çöḿḿîţ ḿüšţ çöñṽéŕĝé îđéñţîçàļļý. Šţàţé ṽéŕšîöñéđ àļöñĝšîđé ţĥé šöüŕçé ĝîṽéš ţĥàţ.
- Ļöçàļ-ƒîŕšţ ĥöļđš éļšéŵĥéŕé ţöö. Ŕéđàçţîöñ (Ç-10) éẋîšţš šö çöñţéñţ çàñ ƃé ŵîţĥĥéļđ ƒŕöḿ à ñàḿéđ đéšţîñàţîöñ. À đéšîĝñ ŵĥéŕé ƃļöçķ šţàţé ĥàš ţö ŕöüñđ-ţŕîþ ţĥàţ đéšţîñàţîöñ çöñţŕàđîçţš îţ.
Ļàýéŕîñĝ: ţĥé ḿöđéļ îñ core/, ţĥé ÎÖ ŵîţĥ îţš šüŕƒàçé
Ţĥé đéçîšîöñ ļéđĝéŕ, à çĥéçķöüţ'š ṽîéŵ öƒ îţ, àñđ ţĥé çöñṽéŕĝéñçé ḿöđéļ (ţĥé
ļàđđéŕ ţýþéš àñđ ţĥé þéŕ-ƃļöçķ ŕüñĝ ĥéļþéŕš) ļîṽé îñ core/state àñđ
core/convergence, šö éṽéŕý šüŕƒàçé àĝŕééš öñ ŵĥàţ ţĥé ŕüñĝš ḿéàñ. Ţĥé
öŕçĥéšţŕàţîöñ ţĥàţ ŕéàđš ƒîļéš àñđ çöḿþüţéš à ŕéþöŕţ šţàýš ŵîţĥ îţš ÎÖ.
Çöñšéǫüéñçéš
core/stateĥöļđšUnitState(šţàţüš, šöüŕçé šţàţüš, öŕîĝîñ, ţĥé þàîŕîñĝ ƃý ŕéṽîšîöñ àñđ ƃý ĥàšĥ, ĝöṽéŕñîñĝ ƒîñĝéŕþŕîñţ, đéçîšîöñ, üþđàţéđ), àKey, àPairing, àReadingàñđ ţĥéStale/SourceStale/Fresh/Establishedĥéļþéŕš ţĥàţ ĝŕàđé à ŕéçöŕđ àĝàîñšţ îţ, àñđWorkStore, ţĥé ļéđĝéŕ àñđ ţĥîš çĥéçķöüţ'š ṽîéŵ öƒ îţ (Lookup/Get/Put/RecordEntry/Delete/All/Priors/Entries,Ledgerƒöŕ ţĥé ŵĥöļé öƒ îţ,CommitàñđRecordDiffƒöŕ ŵŕîţîñĝ ţĥé šĥàŕđš,ImportàñđCommittedDigestƒöŕ ŕéàđîñĝ ţĥéḿ,ClearViewƒöŕ éḿþţýîñĝ ţĥîš çĥéçķöüţ'š ṽîéŵ ŵĥîļé éṽéŕý éñţŕý šţàñđš,Documents,AdoptDocumentsàñđAdoptedDocumentsƒöŕ đöçüḿéñţ îđéñţîţý, àñđSetPolicyƒöŕ ŵĥö ḿàý ŕéçöŕđ ŵĥàţ), àñđAdoption, ţĥé đöçüḿéñţ àđöþţîöñ ţĥé ļöĝ çàŕŕîéš.- Éđîţš àñđ đéçîšîöñš àŕé ţŵö ŕéçöŕđš.
core/historyĥöļđš ţĥé ƃļöçķ ĥîšţöŕýcontent.editöþéŕàţîöñš þŕöĵéçţ ţö; ţĥé ļéđĝéŕ ĥöļđš ŵĥàţ ŵàš đéçîđéđ àƃöüţ à þàîŕîñĝ (Ç-03). - À ţŕàñšƒéŕ ƒîļé çàŕŕîéš ţĥé ļöĝ, ţĥé šĥàŕđš çàŕŕý à ṽîéŵ.
kapi store exportŵŕîţéš ţĥé þŕöĵéçţ'š öþéŕàţîöñš, šö îţ çàŕŕîéš éṽéŕýdecision.recordŵĥîçĥéṽéŕ çĥéçķöüţ ŕéçöŕđéđ îţ (Ç-03): à þŕöĵéçţ ŵĥöšé ƃŕàñçĥéš àñšŵéŕ öñé ƃļöçķ đéŕéñţļý ĥàš đéçîđéđ ƃöţĥ, àñđ à ƃàçķüþ ƃüîļţ ƒŕöḿ öñé çĥéçķöüţ'š ṽîéŵ ŵöüļđ đŕöþ ţĥé ŕéšţ.Ledgeràñšŵéŕš ŵîţĥ ţĥé éñţŕý îñ ƒöŕçé àţ éṽéŕý þàîŕîñĝ, àñđOpenLedgerŕéàçĥéš îţ ŵîţĥ ñö çĥéçķöüţ îñ ĥàñđ. Ţĥé.kapi/šĥàŕđš çàŕŕý öñé çĥéçķöüţ'š ṽîéŵ, ƃéçàüšé ţĥéý àŕé ŵĥàţ ţĥàţ çĥéçķöüţ éṽàļüàţéš ƒŕöḿ. - Àþþŕöṽàļš ƒļöŵ ţĥŕöüĝĥ öñé ṽéŕƃ. À
decideöþéŕàţîöñ ţĥŕöüĝĥkapi applyŕéçöŕđš ţĥé ƃļöçķ šţàţé îñ ţĥé þŕöĵéçţ šţöŕé, àđđŕéššéđ ƃý ţĥé šöüŕçé đöçüḿéñţ, ţĥé ƃļöçķ àñđ ţĥé éđîţîöñkapi status --reviewļîšţš, àñđ ƃöüñđ ţö ţĥé ŕéṽîšîöñ ţĥé þéŕšöñ ŕéàđ (É-09). Ţĥé đéšķţöþ'š àþþŕöṽé àçţîöñ àñđ ţĥé ÇĻÎ ṽéŕƃ šĥàŕé öñé þàţĥ. - Çöṽéŕàĝé đéŕîṽéš ƒŕöḿ ţĥé šţàţé šţöŕé þļüš ţĥé ţàŕĝéţ ƒîļéš, ñéṽéŕ ƒŕöḿ çöñţéñţ-ḿéḿöŕý þŕöþéŕţîéš.
- Éẋçĥàñĝé àñđ þàŕçéļš çàŕŕý šţàţé, šö à ĥàñđ-öƒƒ đöéš ñöţ đŕöþ îţ.
- Šţöŕàĝé ļöçàţîöñš àŕé îñđéþéñđéñţ öƒ ĝöṽéŕñàñçé ƃîñđîñĝš. Ţĥé ŕéçîþé ƃîñđš ĝöṽéŕñàñçé ƃý ñàḿé; ţĥé šĥàŕđš' ļöçàţîöñ îš ƒîẋéđ ƃý ţĥé þŕöĵéçţ ļàýöüţ, àñđ ţĥé đàţàƃàšé ĥöļđîñĝ ţĥé ļéđĝéŕ îš ƒîẋéđ ƃý ţĥé ŵöŕķšþàçé (Ç-03).
Šéé àļšö
- Ç-01: Ţĥé þŕöĵéçţ ḿöđéļ: ŵĥéŕé ţĥé šñàþšĥöţ'š šĥàŕđš šîţ àḿöñĝ ţĥé öŵñéŕšĥîþ žöñéš.
- Ç-03: Ţĥé çöñţéẋţ šţöŕé àñđ ĝŕàþĥ: ţĥé
đàţàƃàšé ţĥé ļéđĝéŕ šîţš îñ, àñđ ţĥé
blesseséđĝé. - Ç-09: Çöñţéñţ ḿéḿöŕý: ţĥé ŕéçýçļé çöŕþüš ţĥîš šţöŕé îš ñöţ.
- Ḿ-01: Ƃîļîñĝüàļ Ƒöŕḿàţ Îñţéŕöþ: ţĥé éẋçĥàñĝé ţĥàţ çàŕŕîéš šţàţé àçŕöšš à ĥàñđ-öƒƒ.
- Çöñṽéŕĝéñçé àñđ ţĥé þŕöĵéçţ šţöŕé: ţĥé éñđ-üšéŕ ḿöđéļ đéŕîṽéđ ƒŕöḿ ţĥîš šţàţé.