Šķîþ ţö ḿàîñ çöñţéñţ

Ḿ-06: Çöñţéñţ þàçķàĝéš

Šüḿḿàŕý

neokapi đéƒîñéš à ƒàḿîļý öƒ ñàţîṽé, đéţéŕḿîñîšţîç, ļöššļéšš šéŕîàļîžàţîöñ ƒöŕḿàţš, öñé þéŕ çöñţéñţ àţöḿ, àñđ à .kpz þàçķàĝé çöñţàîñéŕ ţĥàţ ƃüñđļéš ţĥéḿ îñţö à þöŕţàƃļé šñàþšĥöţ öƒ à þŕöĵéçţ'š àüţĥöŕîţàţîṽé çöñţéñţ:

ÀţöḿÑàţîṽé ƒöŕḿàţ (ļöššļéšš)Þàçķàĝé ḿéḿƃéŕÎñţéŕçĥàñĝé ƒöŕḿàţ (ļöššý)
ƃļöçķš àñđ ţàŕĝéţšçöñţéñţ ƃüñđļé (.kbf.json)blocks/*.kbf.jsonẊĻÎƑƑ / ÞÖ
šţàñđ-öƒƒ öṽéŕļàýšöṽéŕļàý ŕéçöŕđš (.overlays.jsonl)annotations/*.overlays.jsonlñöñé
çöñţéñţ ḿéḿöŕýḿéḿöŕý ƃüñđļé (.memory.json)memory.jsonŢḾẊ
ţéŕḿšţéŕḿš ƃüñđļé (.terms.json)terms.jsonŢƂẊ
ḿéđîàöþàǫüé ƃļöƃšmedia/*ñöñé

Éṽéŕý ḿéḿƃéŕ öƒ ţĥé ƒàḿîļý îš ĴŠÖÑ, àñđ îţš šüƒƒîẋ šàýš šö. À ḿàŕķéŕ šéĝḿéñţ àĥéàđ öƒ .json ķééþš ţĥé ƒîļé šéļƒ-đéšçŕîƃîñĝ ŵĥîļé jq, à çöđé ĥöšţ, àñđ éđîţöŕ šýñţàẋ ĥîĝĥļîĝĥţîñĝ šţîļļ šéé ŵĥàţ ţĥéý àŕé ļööķîñĝ àţ; à ƃàŕé éẋţéñšîöñ ŵöüļđ ƃüý ţĥé ḿàŕķéŕ àţ ţĥé çöšţ öƒ éṽéŕý ţööļ ţĥàţ ŕéàđš ĴŠÖÑ ƃý éẋţéñšîöñ. Öñļý .kpz ķééþš à đéđîçàţéđ éẋţéñšîöñ, ƃéçàüšé îţ îš à ƃîñàŕý žîþ ñöƃöđý ĥàñđ-éđîţš.

Ţĥé ḿéḿöŕý àñđ ţéŕḿš ḿéḿƃéŕš çàŕŕý ţĥé çöñṽéñţîöñàļ ƃàŕé ñàḿéš îñšîđé à þàçķàĝé, šö üñžîþþîñĝ öñé ƃý ĥàñđ ýîéļđš ţĥé šþéļļîñĝ ţĥé ŕéšţ öƒ ţĥé ţööļîñĝ ţéàçĥéš. Ţĥé ñàḿéš àŕé þŕéšéñţàţîöñ öñļý: üñḿàŕšĥàļļîñĝ ŕöüţéš éṽéŕý ḿéḿƃéŕ ƃý îţš ḿàñîƒéšţ çöñţéñţ ţýþé, ñéṽéŕ ƃý ƒîļéñàḿé, šö à ḿéḿƃéŕ'š þàţĥ çàñ çĥàñĝé ŵîţĥöüţ çĥàñĝîñĝ ĥöŵ à þàçķàĝé îš ŕéàđ.

Ţĥé þàçķàĝé îţšéļƒ îš à đéţéŕḿîñîšţîç žîþ ŵîţĥ à ḿàñîƒéšţ çàŕŕýîñĝ à þéŕ-ḿéḿƃéŕ ŠĤÀ-256 àñđ à Ḿéŕķļé ŕööţ ĥàšĥ. Îţ îš ţĥé àţ-ŕéšţ ţŵîñ öƒ ţĥé šýñç ŵîŕé'š çĥüñķ šéţ, öṽéŕ ţĥé šàḿé çöñţéñţ ţýþéš.

Ŵĥý ñàţîṽé ƒöŕḿàţš àţ àļļ

Ţĥé çöñţéñţ ƃüñđļé àļŕéàđý ĝîṽéš ƃļöçķš à đéţéŕḿîñîšţîç, ĥàšĥàƃļé, ļöššļéšš öñ-đîšķ ƒöŕḿ. Ţĥé öţĥéŕ çöñţéñţ à þŕöĵéçţ öŵñš ĥàđ ñö éǫüîṽàļéñţ, àñđ ţĥé îñţéŕçĥàñĝé ƒöŕḿàţš çàññöţ šüþþļý öñé:

  • ŢḾẊ þŕéšéŕṽéš ţĥé ḿüļţîļîñĝüàļ ṽàŕîàñţš à ţŕàñšļàţîöñ ţööļ üñđéŕšţàñđš ƃüţ šîļéñţļý đŕöþš ţĥé éñŕîçĥḿéñţš à ḿéḿöŕý éñţŕý çàŕŕîéš: éñţîţý ḿàþþîñĝš îñçļüđîñĝ ţĥé çŕöšš-ļîñķ ţö à ţéŕḿ çöñçéþţ, þŕöṽéñàñçé öŕîĝîñš àñđ îḿþöŕţ šéššîöñš, þéŕ-éñţŕý þŕöþéŕţîéš, àñđ ñöţéš.
  • ŢƂẊ ḿàþš ţĥé šţàñđàŕđ ţéŕḿîñöļöĝý ƒîéļđš ƃüţ đŕöþš à çöñçéþţ'š ñàţîṽé öñéš: ŵĥéţĥéŕ à ţéŕḿ çàḿé ƒŕöḿ ţéŕḿîñöļöĝý öŕ ƒŕöḿ à ṽöîçé ṽöçàƃüļàŕý, ţĥé çöḿþéţîţöŕ ƒļàĝ, àñđ ţĥé éẋţéñšîƃļé þŕöþéŕţý ḿàþ.

Ŵîţĥöüţ à ļöššļéšš šéŕîàļîžàţîöñ ţĥéŕé îš ñö ŵàý ţö ƃàçķ à ŵĥöļé þŕöĵéçţ üþ, ḿöṽé îţ ƃéţŵééñ ḿàçĥîñéš, šééđ à ƒŕéšĥ ŵöŕķîñĝ çöþý, öŕ ƃüîļđ à đéţéŕḿîñîšţîç ţéšţ ƒîẋţüŕé, àñđ à ļöššý šéŕîàļîžàţîöñ çàññöţ ƒàîţĥƒüļļý ŕéĝéñéŕàţé ţĥé đéŕîṽéđ šţöŕéš à ŕüñţîḿé ƃüîļđš ƒŕöḿ ţĥîš çöñţéñţ.

À šéçöñđ öƃšéŕṽàţîöñ šĥàþéđ ţĥé đéšîĝñ. Ţĥé þŕöĵéçţ ļàýöüţ àļŕéàđý šéþàŕàţéš àüţĥöŕîţàţîṽé çöñţéñţ (ţĥé çöḿḿîţţéđ šöüŕçéš àñđ ţĥé üñîţ-šţàţé ŕéçöŕđ) ƒŕöḿ éṽéŕýţĥîñĝ à ŕüñ đéŕîṽéš ƒŕöḿ ţĥéḿ: ţĥé þŕöĵéçţ'š öñé đàţàƃàšé àñđ ţĥé ƒŕéé-ţö-đéļéţé çàçĥé (Ç-03). Ţĥé ţĥîñĝ ŵöŕţĥ þàçķàĝîñĝ îš ţĥé àüţĥöŕîţàţîṽé çöñţéñţ, ñéṽéŕ ţĥé đéŕîṽéđ šţöŕéš öŕ ţĥé šéçŕéţš.

Öñé ţîéŕ þéŕ šţöŕé

Éàçĥ àţöḿ'š ñàţîṽé ƒöŕḿàţ ŕöüñđ-ţŕîþš îţš ƒüļļ ḿöđéļ àñđ šĥàŕéš öñé đîšçîþļîñé: à kind ḿàĝîç šţŕîñĝ, à MAJOR.MINOR šçĥéḿà ṽéŕšîöñ ŵîţĥ ţĥé ŕéĵéçţ-üñķñöŵñ-ḿàĵöŕ àñđ àççéþţ-üñķñöŵñ-ḿîñöŕ çöñţŕàçţ, àñđ à đéţéŕḿîñîšţîç éñçöđéŕ (šöŕţéđ ķéýš àñđ ŕéçöŕđš, ñö ĤŢḾĻ éšçàþîñĝ, à ţŕàîļîñĝ ñéŵļîñé), šö öüţþüţ îš šţàƃļé ƒöŕ çöñţéñţ ĥàšĥîñĝ àñđ ƒöŕ à git diff.

  • Ţĥé çöñţéñţ-ḿéḿöŕý ƃüñđļé ḿàþš ŵîŕé ŕéçöŕđš ţö àñđ ƒŕöḿ ḿéḿöŕý éñţŕîéš; ṽàŕîàñţ çöñţéñţ ŕéüšéš ţĥé çàñöñîçàļ ŕüñ šéŕîàļîžàţîöñ, šö îñļîñé çöđéš, þļàçéĥöļđéŕš, àñđ þļüŕàļ àñđ šéļéçţ çöñšţŕüçţš šüŕṽîṽé îđéñţîçàļļý ţö ţĥé ƃļöçķš îñ à çöñţéñţ ƃüñđļé.
  • Ţĥé ţéŕḿš ƃüñđļé ŕéüšéš ţĥé àļŕéàđý-ĴŠÖÑ-ţàĝĝéđ çöñçéþţ ţýþé đîŕéçţļý, öñé šöüŕçé öƒ ţŕüţĥ ŵîţĥ ñö þàŕàļļéļ ŵîŕé ţýþé ţö đŕîƒţ, àñđ šö þŕéšéŕṽéš éṽéŕý ñàţîṽé ƒîéļđ ƃý çöñšţŕüçţîöñ.

Ţĥéŕé îš éẋàçţļý öñé ţîéŕ þéŕ šţöŕé: ţĥé ƃüñđļé. À þŕöĵéçţ çöḿḿîţš îţ, ƃéçàüšé ŕéṽîéŵéđ ḿéḿöŕý àñđ ţéŕḿš ĥàṽé ţö đ ļîñé ƃý ļîñé, àñđ ţĥé çöḿþöüñđ .json šüƒƒîẋ îš ŵĥàţ ḿàķéš ţĥàţ đ ŕéàđàƃļé îñ à ƃŕöŵšéŕ àñđ ĝŕéþþàƃļé ŵîţĥ jq. À šéçöñđ, çöḿþŕéššéđ šþéļļîñĝ þéŕ šţöŕé ŵöüļđ ƃüý ñöţĥîñĝ ţĥàţ zip àñđ gzip đö ñöţ àļŕéàđý ĝîṽé.

Ţĥé šüƒƒîẋ, ñöţ ţĥé ļöçàţîöñ, îđéñţîƒîéš à ƃüñđļé, ƃéçàüšé à þŕöĵéçţ îš ñöţ ļîḿîţéđ ţö öñé þéŕ šţöŕé. Ţéŕḿš îš ţĥé éẋçéþţîöñ: à þŕöĵéçţ ĥàš éẋàçţļý öñé šéţ öƒ ţéŕḿš, šö îţ ĝéţš à çöñṽéñţîöñàļ ļöçàţîöñ (Ç-08). Çöñţéñţ ḿéḿöŕý ĝéţš ñöñé, ƃéçàüšé à þŕöĵéçţ àççüḿüļàţéš à ƃüñđļé þéŕ çöñţéñţ šüŕƒàçé àñđ à ƒàļļƃàçķ ŵöüļđ ĥàṽé ñöţĥîñĝ šîñĝļé ţö ñàḿé.

Ţĥé çöñţàîñéŕ

Ţĥé .kpz ƒöŕḿàţ îš à đéţéŕḿîñîšţîç žîþ (šţöŕéđ éñţŕîéš, ƒîẋéđ ţîḿéšţàḿþš, šöŕţéđ öŕđéŕ) çöñţàîñîñĝ à ḿàñîƒéšţ þļüš öñé ḿéḿƃéŕ þéŕ çöñţéñţ ţýþé. Ţĥé ḿàñîƒéšţ ļîšţš éàçĥ ḿéḿƃéŕ ŵîţĥ îţš çöñţéñţ ţýþé àñđ ŠĤÀ-256, àñđ à Ḿéŕķļé ŕööţ ĥàšĥ öṽéŕ ţĥé šöŕţéđ ḿéḿƃéŕ ĥàšĥéš ĝîṽéš ţĥé þàçķàĝé à šţàƃļé çöñţéñţ îđéñţîţý îñđéþéñđéñţ öƒ žîþ ƒŕàḿîñĝ. Üñḿàŕšĥàļļîñĝ ṽàļîđàţéš ţĥé éñṽéļöþé, éṽéŕý ḿéḿƃéŕ çĥéçķšüḿ, àñđ ţĥé ŕööţ ĥàšĥ.

Ḿéḿƃéŕšĥîþ îš đéçîđéđ þéŕ ţàƃļé, ñöţ þéŕ ƒîļé. Ƃéçàüšé éṽéŕý šüƃšýšţéḿ šĥàŕéš öñé đàţàƃàšé, "đöéš ţĥîš þŕöĵéçţ ĥàṽé ţéŕḿš?" îš à ǫüéšţîöñ àƃöüţ ŕöŵš, šö à þàçķ çàŕŕîéš öñļý ţĥé þàŕţš ţĥàţ ĥöļđ šöḿéţĥîñĝ: àñ éḿþţý šüƃšýšţéḿ çöñţŕîƃüţéš ñö ḿéḿƃéŕ, éẋàçţļý àš àñ àƃšéñţ öñé ŵöüļđ.

Ţŵö ţîéŕš: ñàţîṽé àñđ îñţéŕçĥàñĝé

  • Ñàţîṽé (ļöššļéšš): ţĥé ƒöŕḿàţ ƒàḿîļý àñđ .kpz. Üšéđ ƒöŕ þàçķîñĝ, çàçĥîñĝ, ĥàšĥîñĝ, àñđ àñý ƒļöŵ ţĥàţ ḿüšţ ŕéçöñšţŕüçţ þŕöĵéçţ šţàţé éẋàçţļý.
  • Îñţéŕçĥàñĝé (ļöššý): ẊĻÎƑƑ àñđ ÞÖ ƒöŕ ƃļöçķš, ŢḾẊ ƒöŕ çöñţéñţ ḿéḿöŕý, ŢƂẊ ƒöŕ ţéŕḿš. Üšéđ ţö ĥàñđ çöñţéñţ àçŕöšš àñ öŕĝàñîžàţîöñàļ ƃöüñđàŕý îñţö ţĥé ŵîđéŕ ţŕàñšļàţîöñ îñđüšţŕý. Ţĥéšé šţàý ţĥé éẋþöŕţ þàţĥ àñđ àŕé ñéṽéŕ þàçķàĝé ḿéḿƃéŕš, ƃéçàüšé ţĥéý çàññöţ ŕéþŕéšéñţ ţĥé ñàţîṽé ƒîéļđš (Ḿ-01).

À þàŕçéļ, àñđ ţĥé ŵöŕķšþàçé îţ öþéñš îñţö

Đàý-ţö-đàý ŵöŕķ ĥàþþéñš îñ àñ àḿƃîéñţ þŕöĵéçţ, đîšçöṽéŕéđ ƃý à ĝîţ-šţýļé üþŵàŕđ ŵàļķ (Ç-01) àñđ ñéṽéŕ ñàḿéđ öñ à çöḿḿàñđ. À .kpz îš à þàŕçéļ: à ţĥîñĝ ţĥàţ çŕöššéš à ƃöüñđàŕý, ñàḿéđ öñļý àţ ţĥàţ ƃöüñđàŕý. Ýöü đö ñöţ ŵöŕķ îñšîđé öñé; ŕéçéîṽîñĝ öñé àñđ ŵöŕķîñĝ öñ îţ ḿéàñš öþéñîñĝ îţ îñţö à þŕöĵéçţ àñđ þàçķîñĝ îţ àĝàîñ ţö šĥîþ. Ţĥàţ îš ţĥé šþļîţ ƃéţŵééñ à ŵöŕķîñĝ ţŕéé àñđ à ƃüñđļé, àñđ îţ îš ŵĥý ţĥé éṽéŕýđàý ļööþ ñéṽéŕ ţýþéš à .kpz þàţĥ.

ƂöüñđàŕýÞàŕçéļƑîđéļîţýṼéŕƃš
Ţîḿé öŕ šþàçé, îñ-éçöšýšţéḿ (ƃàçķüþ, ţŕàñšƒéŕ, šééđîñĝ)þŕöĵéçţ .kpzļöššļéšš ñàţîṽépack / unpack
Ţö à ţŕàñšļàţöŕ öŕ ŕéṽîéŵéŕƃîļîñĝüàļ .kpzļöššļéšš ñàţîṽéextract / merge
Ţö à ţĥîŕđ-þàŕţý ţŕàñšļàţîöñ ţööļẊĻÎƑƑ 2.ẋ / ÞÖîñţéŕöþéŕàƃļé, ļöššýextract / merge
Ţö à ĥöšţéđ þļàţƒöŕḿ ļàýéŕţĥé šýñç ŵîŕé, ţĥé þàçķàĝé'š öṽéŕ-ţĥé-ŵîŕé ţŵîñļöššļéšš, šţŕéàḿéđpush / pull

Öñé çöñţàîñéŕ ţĥéŕéƒöŕé çàŕŕîéš ţŵö þŕöƒîļéš, đîšţîñĝüîšĥéđ ƃý ţĥé ḿàñîƒéšţ ķîñđ:

  • Þŕöĵéçţ þŕöƒîļé (kapi-project): ţĥé ŵĥöļé þŕöĵéçţ, éṽéŕý ļöçàļé, ţĥé ƒüļļ ŕéçîþé, çöñţéñţ ḿéḿöŕý, ţéŕḿš, öṽéŕļàýš, šöüŕçé îđéñţîţý àñđ šķéļéţöñš. Ţĥé šñàþšĥöţ, ḿöṽéđ ƃý pack àñđ unpack.
  • Ƃîļîñĝüàļ þŕöƒîļé (kapi-interchange): à ţàšķ-šçöþéđ šļîçé ƒöŕ öñé šöüŕçé→ţàŕĝéţ þàîŕ, ţĥé ƃļöçķš ŵîţĥ ƒàîţĥƒüļ îñļîñé çöđéš, ţĥé šéĝḿéñţàţîöñ àñđ àļîĝñḿéñţ öṽéŕļàýš, ţĥé þéŕ-šöüŕçé šķéļéţöñ, àñđ ţĥé ŕéļéṽàñţ ḿéḿöŕý-ḿàţçĥ àñđ ţéŕḿ çöñţéẋţ. Îţ éẋçļüđéš öţĥéŕ ļöçàļéš, ţĥé ƒüļļ ŕéçîþé, àñđ ŕàŵ šöüŕçé. Ţĥîš îš neokapi'š ñàţîṽé îñţéŕçĥàñĝé çàŕŕîéŕ, ţĥé þàŕçéļ extract šéñđš àñđ merge îñĝéšţš.

Ƃöţĥ þŕöƒîļéš àŕé þàŕçéļš ŕàţĥéŕ ţĥàñ ŵöŕķšþàçéš.

Ŵöŕķîñĝ šţàţé, ĥàñđ-öƒƒ, àñđ ŕéšüḿé

À .kpz îš ƃöţĥ àñ àţ-ŕéšţ šñàþšĥöţ öƒ ƒîñîšĥéđ çöñţéñţ àñđ à çàŕŕîéŕ öƒ îñ-þŕöĝŕéšš ŵöŕķîñĝ šţàţé, šö ŵöŕķ çàñ šţöþ, ḿöṽé ƃéţŵééñ ḿàçĥîñéš, àñđ ŕéšüḿé ŵĥéŕé îţ ļéƒţ öƒƒ. Ţĥàţ îš đéļîṽéŕéđ ţĥŕöüĝĥ ḿéçĥàñîšḿš àļŕéàđý îñ ţĥé ĝŕàîñ ŕàţĥéŕ ţĥàñ à šţéþ-ƃý-šţéþ ṽéŕƃ ƒàḿîļý.

ad-hoc workspaceno project: the parcel is the unitextract <sources> -o work.kpzrun / exec transforms the cache in placemerge work.kpz emits the documentspack work.kpz ejects to the filesame store, same overlayscached resumeinside a projecta run executes against the persistent block storea tool appends an overlay keyed by (kind, blockHash)re-running skips work whose overlay is presentsame store, same overlaysproject snapshotthe whole project as a parcelpack exports overlays, content, skeletons, recipeunpack rehydrates into another machine's .kapi/the recipe comes back as a runnable kapi.yaml

Ţĥŕéé ŵàýš ţö çàŕŕý ŵöŕķ, àļļ ŕéàđîñĝ àñđ ŵŕîţîñĝ ţĥé šàḿé çöñţéñţ-àđđŕéššéđ öṽéŕļàýš.

Ţĥé àđ-ĥöç ŵöŕķšþàçé. À .kpz îš ţĥé þöŕţàƃļé ƃüñđļé; ţĥé ŕüñţîḿé îš à þéŕšîšţéñţ šĥàđöŵ çàçĥé ķéýéđ ƃý ţĥé ƒîļé'š àƃšöļüţé þàţĥ, šö ţĥé ŵöŕķîñĝ đîŕéçţöŕý šţàýš à šîñĝļé ƒîļé. Ţĥŕéé þîþéļîñé-šţàĝé ṽéŕƃš ŵöŕķ ŵîţĥ ñö þŕöĵéçţ: extract <sources> -o work.kpz îñĝéšţš ţĥé šöüŕçéš àñđ ŕéçöŕđš à ŕéçîþé; ŕüññîñĝ àñý ţööļ öŕ ƒļöŵ öñ ţĥé .kpz ţŕàñšƒöŕḿš îţ îñ þļàçé àĝàîñšţ ţĥé çàçĥé'š þéŕ-šöüŕçé ƃļöçķ šţöŕéš, îñçŕéḿéñţàļļý, ŵîţĥöüţ ŕéŵŕîţîñĝ ţĥé ƒîļé; àñđ merge work.kpz éḿîţš ţĥé ƒîñîšĥéđ đöçüḿéñţš ƒŕöḿ ţĥé çàçĥé, öñé ƒîļé þéŕ šöüŕçé àñđ ļöçàļé. Ţĥé .kpz îţšéļƒ îš ŕéŵŕîţţéñ öñļý ƃý àñ éẋþļîçîţ éĵéçţ, kapi pack work.kpz, àñđ kapi info work.kpz ŕéþöŕţš ŵĥéţĥéŕ ţĥé çàçĥé îš đîŕţý, îţš çöñţéñţ ŕööţ ĥàšĥ ĥàṽîñĝ đîṽéŕĝéđ ƒŕöḿ ţĥé þàçķéđ ƒîļé. Ƃļöçķ îđš àŕé üñîǫüé öñļý ŵîţĥîñ öñé đöçüḿéñţ, šö éàçĥ šöüŕçé ĥàš îţš öŵñ šţöŕé àñđ éàçĥ öṽéŕļàý îš ţàĝĝéđ ŵîţĥ îţš šöüŕçé. Ţŕàñšƒöŕḿîñĝ ŕéüšéš öṽéŕļàýš àļŕéàđý þŕéšéñţ ŕàţĥéŕ ţĥàñ ŕéçöḿþüţîñĝ, šö ţĥé öüţþüţ éǫüàļš à öñé-šĥöţ ŕüñ.

Çàçĥéđ ŕéšüḿé îñ à þŕöĵéçţ. À þŕöĵéçţ ŕüñ éẋéçüţéš àĝàîñšţ ţĥé þŕöĵéçţ'š þéŕšîšţéñţ ƃļöçķ šţöŕé. Ƃéçàüšé ţĥàţ šţöŕé îš àþþéñđ-öñļý àñđ çöñţéñţ-àđđŕéššéđ (à ţööļ àþþéñđš àñ öṽéŕļàý ķéýéđ ƃý ķîñđ àñđ ƃļöçķ ĥàšĥ ŕàţĥéŕ ţĥàñ ŕéŵŕîţîñĝ à ƃļöçķ), à šéššîöñ ţööļ çàçĥéš îţš þéŕ-ƃļöçķ ŕéšüļţ àñđ ĥýđŕàţéš ƒŕöḿ îţ öñ à ļàţéŕ ŕüñ. Ŕé-ŕüññîñĝ à ƒļöŵ šķîþš ŵöŕķ àļŕéàđý đöñé; ţĥé šţöŕé îš ţĥé ŵöŕķšþàçé, àñđ ŕéšüḿé îš ĵüšţ ŕüññîñĝ àĝàîñ.

Ţĥé þŕöĵéçţ šñàþšĥöţ. pack éẋþöŕţš ţĥé ƃļöçķ-šţöŕé öṽéŕļàýš, ţĥé çöñţéñţ ḿéḿöŕý àñđ ţéŕḿš çöñţéñţ, ţĥé šöüŕçé îđéñţîţý àñđ šķéļéţöñš, àñđ ţĥé ƒüļļ þŕöĵéçţ ŕéçîþé îñţö à þöŕţàƃļé .kpz; unpack ŕéĥýđŕàţéš îţ îñţö àñöţĥéŕ ḿàçĥîñé'š šţàţé đîŕéçţöŕý, ŕéçöñšţîţüţîñĝ à çöḿþļéţé ŕéçîþé. À .kpz îš ţö à þŕöĵéçţ đîŕéçţöŕý ŵĥàţ à ƃüñđļé îš ţö à ŕéþöšîţöŕý, àñđ, ƃéçàüšé îţ çàŕŕîéš ţĥé ŕéçîþé, à ŕüññàƃļé öñé.

Þŕöĝŕéšš îš đéŕîṽéđ ƒŕöḿ çöñţéñţ

Ƃéçàüšé ţĥé šţöŕé îš çöñţéñţ-àđđŕéššéđ, "ĥàš šţéþ Ẋ ŕüñ?" îš à þüŕé ƒüñçţîöñ öƒ ţĥé çöñţéñţ: đöéš Ẋ'š öṽéŕļàý éẋîšţ, àñçĥöŕéđ ţö ţĥé çüŕŕéñţ ƃļöçķ ĥàšĥéš? Ţĥàţ îš ŵĥàţ ḿàķéš çàçĥéđ ŕéšüḿé çöŕŕéçţ àñđ îđéḿþöţéñţ. Ŕé-ŕüññîñĝ îš à ñö-öþ ŵĥéŕé ţĥé öṽéŕļàý îš þŕéšéñţ; à çĥàñĝéđ šöüŕçé ŕé-ĥàšĥéš îţš ƃļöçķ šö öñļý ţĥé àƒƒéçţéđ ŵöŕķ ŕéçöḿþüţéš; àñđ çŕàšĥ šàƒéţý îš àüţöḿàţîç, šîñçé à çŕàšĥ ţĥàţ đîđ ñöţ çöḿḿîţ àñ öṽéŕļàý ļéàṽéš îţ àƃšéñţ àñđ ţĥé ñéẋţ ŕüñ ŕéđöéš îţ, ŵîţĥ ñöţĥîñĝ ţö ŕéçöñçîļé.

Àñ àüţĥöŕîţàţîṽé þŕöĝŕéšš ĵöüŕñàļ îš đéļîƃéŕàţéļý àṽöîđéđ. Îţ ŵöüļđ ƃé à šéçöñđ šöüŕçé öƒ ţŕüţĥ ţĥàţ çàñ đŕîƒţ ƒŕöḿ ţĥé çöñţéñţ, àñđ îţ çàññöţ šüŕṽîṽé ţĥé çöñţéñţ çĥàñĝîñĝ üñđéŕñéàţĥ îţ (à ŕé-ĥàšĥéđ ƃļöçķ šîļéñţļý îñṽàļîđàţéš à "đöñé" çļàîḿ), šö ḿàķîñĝ îţ çöŕŕéçţ ḿéàñš ŕé-đéŕîṽîñĝ ţĥé çöñţéñţ-àđđŕéššîñĝ ţĥé šţöŕé àļŕéàđý þŕöṽîđéš.

Ţĥé öñé đüŕàƃļé ŕéçöŕđ ƃéýöñđ çöñţéñţ îš àđṽîšöŕý þŕöṽéñàñçé: pack --log àþþéñđš à ĥàšĥ-çĥàîñéđ ļîñé ţö à ĥîšţöŕý ḿéḿƃéŕ, ĝîṽîñĝ à ĥàñđ-öƒƒ à ţàḿþéŕ-éṽîđéñţ çüšţöđý ţŕàîļ ţĥàţ unpack ṽéŕîƒîéš àñđ ŵàŕñš àƃöüţ öñ à ƃŕéàķ. Îţ îš šţŕîçţļý šüƃöŕđîñàţé ţö çöñţéñţ (éẋçļüđéđ ƒŕöḿ ţĥé þàçķàĝé ŕööţ ĥàšĥ, ñéṽéŕ ŕéàđ ţö đéçîđé àñýţĥîñĝ, šàƒé ţö đéļéţé ŵîţĥ ñö ļöšš öƒ ŵöŕķ), àñđ à đéƒàüļţ þàçķ îš ƃýţé-đéţéŕḿîñîšţîç. À ĵöüŕñàļ îš ţĥé ŕîĝĥţ ţööļ ŵĥéŕé àñ àçţîöñ ĥàš éƒƒéçţš öüţšîđé ţĥé çöñţéñţ (šéñţ ḿàîļ, à çĥàŕĝéđ çàŕđ, à þàîđ ÀÞÎ çàļļ); ţĥöšé ƃéļöñĝ ţö ţĥé àüđîţ šüƃšýšţéḿ, ñöţ ţö þŕöĝŕéšš ţŕàçķîñĝ, ŵĥöšé šţàţé îš ŵĥöļļý îñ ţĥé öṽéŕļàýš.

Ŵĥàţ à þàçķàĝé çàŕŕîéš

À .kpz îš ţĥé þöŕţàƃļé ţŵîñ öƒ à þŕöĵéçţ, šö îţ çàŕŕîéš ţĥé þŕöĵéçţ'š þöŕţàƃļé àüţĥöŕîţàţîṽé šţàţé, ƃöţĥ îţš çöñţéñţ àñđ îţš çöḿḿîţţéđ îñţéñţ, àñđ ñöţĥîñĝ éñṽîŕöñḿéñţ-šþéçîƒîç. Öñé þŕîñçîþļé đéçîđéš ḿéḿƃéŕšĥîþ:

Þàçķ àüţĥöŕîţàţîṽé šţàţé, ñöţ çàçĥéš öŕ šéçŕéţš. Çöñţéñţ đéƒîñéš ţĥé þàçķàĝé îđéñţîţý (ţĥé Ḿéŕķļé ŕööţ ĥàšĥ); ţĥé ŕéçîþé îš ḿéţàđàţà, éẋçļüđéđ ƒŕöḿ îţ. Šéçŕéţš ñéṽéŕ ţŕàṽéļ; ţĥéý ļîṽé îñ ţĥé ÖŠ ķéýçĥàîñ, ñéṽéŕ îñ à ŕéçîþé. Çàçĥéš àŕé ŕéĝéñéŕàţéđ öñ üñþàçķ. À .kpz ĥàš ñö ŕüñţîḿé, šö àñý šîđé-郃éçţîñĝ ŕéçîþé ţŕàṽéļš îñéŕţ àñđ ŕé-àçţîṽàţéš öñļý ŵĥéñ üñþàçķéđ îñţö à þŕöĵéçţ, ŵîţĥ éẋþļîçîţ ŕé-àüţĥöŕîžàţîöñ àñđ öþţ-îñ ŕé-àŕḿîñĝ.

Îñţéñţ ţŕàṽéļš àš ţĥé ŵĥöļé ŕéçîþé. À þàçķàĝé éḿƃéđš ţĥé þŕöĵéçţ ŕéçîþé ṽéŕƃàţîḿ (ƒļöŵš, þļüĝîñ đéçļàŕàţîöñš àñđ ŕéǫüîŕéḿéñţš, đéƒàüļţš, çöñţéñţ, þŕéšéţ, àñđ àñý þļàţƒöŕḿ éẋţéñšîöñ ƃļöçķš) îñ ţĥé šàḿé šçĥéḿà à kapi.yaml üšéš, šö ţĥéŕé îš öñé šöüŕçé öƒ ţŕüţĥ àñđ ñö þàŕàļļéļ îñţéñţ ḿöđéļ. Ƒļöŵš àŕé öŕđîñàŕý ƒŕàḿéŵöŕķ îñţéñţ, šö ţĥéý ţŕàṽéļ ļîķé àñý öţĥéŕ ŕéçîþé ƒîéļđ: à šţàñđàļöñé .kpz îš ŕüññàƃļé ŵîţĥ îţš öŵñ ñàḿéđ ƒļöŵš, àñđ unpack ŕéçöñšţîţüţéš à çöḿþļéţé ŕéçîþé. Ţĥîš îš ŵĥàţ ḿàķéš à þàçķàĝé à þŕöĵéçţ îñ à ƒîļé (É-04: à ƒļöŵ îš þöŕţàƃļé çöḿþöšîţîöñ, çàŕŕýîñĝ ñö Î/Ö öƒ îţš öŵñ).

Šöüŕçé ţŕàṽéļš àš îđéñţîţý þļüš šķéļéţöñ; ŕàŵ ƃýţéš àŕé öþţ-îñ. À þàçķàĝé àļŵàýš ŕéçöŕđš éàçĥ šöüŕçé'š îđéñţîţý (ļöĝîçàļ þàţĥ, ƒöŕḿàţ, çöñţéñţ ĥàšĥ) àñđ ţĥé þéŕ-šöüŕçé šķéļéţöñ, ţĥé ŕöüñđ-ţŕîþ ţéḿþļàţé merge ŕéüšéš. Ţĥàţ îš éñöüĝĥ ƒöŕ ţĥé çöŕé ļööþ: àñ îñ-þļàçé ţŕàñšƒöŕḿ ŕéàđš öñļý ƃļöçķš àñđ öṽéŕļàýš, merge ŕéƃüîļđš ţĥé þéŕ-ļöçàļé ƒîļéš ƒŕöḿ ţĥé šķéļéţöñ, àñđ info đéţéçţš đŕîƒţ ƒŕöḿ ţĥé šöüŕçé ĥàšĥ. Ţĥé ŕàŵ ƃýţéš àŕé ñééđéđ öñļý ţö ŕé-éẋţŕàçţ üñđéŕ đéŕéñţ šéţţîñĝš, šö ţĥéý àŕé éḿƃéđđéđ öñ ŕéǫüéšţ (--with-source), ķééþîñĝ à đéƒàüļţ þàçķàĝé ƒŕöḿ đüþļîçàţîñĝ šöüŕçé ţĥàţ îš àļŕéàđý üñđéŕ ṽéŕšîöñ çöñţŕöļ. Ţĥé šķéļéţöñ îš ţĥé đéŕîṽéđ éẋţŕàçţ, ñöţ ţĥé öŕîĝîñàļ đöçüḿéñţ.

unpack ŵŕîţéš ţĥöšé ŕàŵ ƃýţéš ƃàçķ îñţö ţĥé ŵöŕķîñĝ ţŕéé üñđéŕ ţĥéîŕ ļöĝîçàļ þàţĥš, ƃéçàüšé ƃéîñĝ àƃļé ţö ŕé-éẋţŕàçţ öñ ţĥé ƒàŕ šîđé îš ţĥé ŵĥöļé ŕéàšöñ ţö çàŕŕý ţĥéḿ. À ƒîļé àļŕéàđý þŕéšéñţ îš ļéƒţ àļöñé (ţĥé ŵöŕķîñĝ ţŕéé îš àüţĥöŕîţàţîṽé öñ îţš öŵñ šöüŕçéš, ţĥé šàḿé ŕüļé ţĥé ŕéçîþé ƒöļļöŵš), àñđ à ḿéḿƃéŕ ŵĥöšé ļöĝîçàļ þàţĥ ŵöüļđ éšçàþé ţĥé þŕöĵéçţ ŕööţ îš ŕéƒüšéđ ŕàţĥéŕ ţĥàñ ŵŕîţţéñ.

ÇöñçéŕñÎñ à þŕöĵéçţÎñ à .kpzĐîšþöšîţîöñ
ƒļöŵšŕéçîþé + ƒļöŵ ƒîļéšŕéçîþé flowsţŕàṽéļš
þļüĝîñ đéçļàŕàţîöñš àñđ ŕéǫüîŕéḿéñţšŕéçîþéŕéçîþéţŕàṽéļš (ƃîñàŕîéš ŕé-ŕéšöļṽéđ ṽîà ţĥé ŕéĝîšţŕý)
đéƒàüļţš, çöñţéñţ, þŕéšéţŕéçîþéŕéçîþéţŕàṽéļš
šîđé-郃éçţîñĝ éẋţéñšîöñ ƃļöçķš àţ àñý šçöþéŕéçîþé éẋţŕàšŕéçîþé éẋţŕàšţŕàṽéļš îñéŕţ
þàţĥ-ṽàļüéđ ŕéçîþé ƒîéļđšŕéçîþéŕéçîþéţŕàṽéļš çöñţàîñéđ
çöñţéñţ ḿéḿöŕý / ţéŕḿšçöḿḿîţţéđ ƃüñđļé šöüŕçéšmemory.json / terms.jsonţŕàṽéļš (ļöššļéšš)
ƃļöçķš, ţàŕĝéţš, öṽéŕļàýšƃļöçķ ţàƃļéš (đéŕîṽéđ)ƃüñđļé + öṽéŕļàý ḿéḿƃéŕš (àüţĥöŕîţàţîṽé)ţŕàṽéļš
üñîţ šţàţéçöḿḿîţţéđ šţàţé ŕéçöŕđšţĥé ƃîļîñĝüàļ þŕöƒîļé (Ḿ-01)ţŕàṽéļš
šöüŕçé îđéñţîţýŵöŕķîñĝ ţŕééţĥé ḿàñîƒéšţţŕàṽéļš
šöüŕçé šķéļéţöñéẋţŕàçţîöñ çàçĥéskeletons/<id>ţŕàṽéļš
ŕàŵ šöüŕçé ƃýţéšŵöŕķîñĝ ţŕéésource/<name>öþţ-îñ
šéçŕéţšÖŠ ķéýçĥàîññöñéñéṽéŕ ţŕàṽéļš
đéŕîṽéđ šţöŕéš àñđ çàçĥéšţĥé ŵöŕķ đîŕéçţöŕýñöñéŕéĝéñéŕàţéđ öñ üñþàçķ
þļüĝîñ ƃîñàŕîéšüšéŕ öŕ šýšţéḿ îñšţàļļñöñéŕé-ŕéšöļṽéđ ṽîà ţĥé ŕéĝîšţŕý
þŕöṽéñàñçéñöñéţĥé ĥîšţöŕý ḿéḿƃéŕöþţ-îñ, éẋçļüđéđ ƒŕöḿ ţĥé ŕööţ ĥàšĥ

À þàçķàĝéđ ŕéçîþé ḿàý öñļý ñàḿé þļàçéš îñšîđé ţĥé þŕöĵéçţ îţ ļàñđš îñ

Ţĥé ƒöŕḿàţ àšķéđ ţĥé þàçķéŕ ţö šţŕîþ ŵĥàţ ţŕàṽéļš ƃàđļý, ŵĥîçĥ à ĥöšţîļé þàçķéŕ ŵîļļ ñöţ đö. Šö ţĥé šŵééþ ŕüñš àĝàîñ öñ îñĝéšţ, àţ ţĥé šîñĝļé þöîñţ éṽéŕý þàçķàĝé ţĥîš ƃîñàŕý öþéñš çöḿéš ţĥŕöüĝĥ. Îţ ŕéḿöṽéš éẋéç-çļàšš šţéþš àñđ ƒöŕḿàţš, ţĥé þéŕ-ţööļ çöñƒîĝ ţĥàţ ŵöüļđ àŕḿ ţĥéḿ, šîđé-郃éçţîñĝ éẋţéñšîöñ ƃļöçķš àţ éṽéŕý šçöþé ţĥéý çàñ ƃé ŕéĝîšţéŕéđ àţ, àñđ àñý þàţĥ-ṽàļüéđ ƒîéļđ ţĥàţ çļîḿƃš öüţ öƒ ţĥé þŕöĵéçţ öŕ šţàŕţš àţ ţĥé ŕööţ: ţĥé ţéŕḿš àñđ ḿéḿöŕý šöüŕçé ƃîñđîñĝš, ţĥé ŕéđàçţîöñ ŕüļéš ƒîļé, ţĥé ṽöîçé þŕöƒîļé ƒîļé, àñđ éàçĥ çöñţéñţ éñţŕý'š ƃàšé àñđ ţàŕĝéţ ţéḿþļàţéš.

Ţĥé àšýḿḿéţŕý îš đéļîƃéŕàţé. À þŕöĵéçţ'š öŵñ ŕéçîþé ḿàý ñàḿé àñ àƃšöļüţé đéšţîñàţîöñ: þüƃļîšĥîñĝ öüţšîđé ţĥé ţŕéé îš šöḿéţĥîñĝ îţš öŵñéŕ îš éñţîţļéđ ţö àšķ ƒöŕ. À ŕéçîþé ţĥàţ àŕŕîṽéđ îñ à þàçķàĝé îš àñšŵéŕîñĝ ƒöŕ à ḿàçĥîñé îţ ĥàš ñéṽéŕ šééñ. Ñöţĥîñĝ îš ƒàţàļ; éàçĥ ŕéḿöṽàļ îš ŕéþöŕţéđ šö ţĥé ŕéçîþîéñţ ļéàŕñš ŵĥàţ ţĥé àüţĥöŕ ḿéàñţ, àñđ éṽéŕý öñé öƒ ţĥéšé ƒîéļđš ĥàš à đéƒîñéđ ḿéàñîñĝ ŵĥéñ üñšéţ.

Þļüĝîñ ŕéǫüîŕéḿéñţš đéļîƃéŕàţéļý šüŕṽîṽé. Ţĥéý đéçļàŕé ŵĥîçĥ þļüĝîñš ţĥé þàçķàĝé'š ƒļöŵš ñééđ, àñđ đŕöþþîñĝ ţĥéḿ ŵöüļđ ŕéḿöṽé à šţàţéḿéñţ öƒ ƒàçţ ŵîţĥöüţ ŕéḿöṽîñĝ àñý çàþàƃîļîţý: à ŕéçîþé îñšţàļļš ñöţĥîñĝ ƃý îţšéļƒ, àñđ àñ üñđéçļàŕéđ þļüĝîñ ĵüšţ ƒàîļš ļàţéŕ ŵîţĥ à ŵöŕšé éŕŕöŕ. Ţĥé îñšţàļļ îţ çàñ þŕöḿþţ ƒöŕ ŕéšöļṽéš ţĥŕöüĝĥ ţĥé šîĝñéđ þļüĝîñ ŕéĝîšţŕý, šö à þàçķàĝé çàñ àšķ ƒöŕ à þļüĝîñ neokapi þüƃļîšĥéš, ñöţ ƒöŕ çöđé öƒ îţš öŵñ. Ţĥàţ îš ţĥé ļîñé É-06 đŕàŵš: "îñšţàļļ ţĥé þļüĝîñ ţĥîš ŕéçîþé àšķš ƒöŕ" àñđ "ŕüñ ţĥé çöḿḿàñđš ţĥîš ŕéçîþé ñàḿéš" àŕé đéŕéñţ çļàššéš öƒ đéçîšîöñ, àñđ öñļý ţĥé šéçöñđ îš ŵîţĥĥéļđ.

Šöüŕçé öƒ ţŕüţĥ öñ ŕöüñđ ţŕîþ. Ŵĥéñ à þàçķàĝé îš üñþàçķéđ îñţö, öŕ šîţš ƃéšîđé, à þŕöĵéçţ, ţĥé öñ-đîšķ ŕéçîþé îš àüţĥöŕîţàţîṽé àñđ ţĥé þàçķàĝé îš à šñàþšĥöţ; à šţàñđàļöñé þàçķàĝé îš àüţĥöŕîţàţîṽé îñ îţšéļƒ. Îñţéñţ ñéṽéŕ ĥàš ţŵö ļîṽé ĥöḿéš ţĥàţ çàñ đŕîƒţ.

Ŵîţĥ ñö þŕöĵéçţ îñ šçöþé, unpack ŕéçöñšţîţüţéš öñé: à đîŕéçţöŕý ƃéšîđé ţĥé šñàþšĥöţ, ñàḿéđ ƒŕöḿ ţĥé ŕéçîþé, ĥöļđîñĝ ţĥàţ ŕéçîþé àš îţš kapi.yaml. Ţĥàţ ŵŕîţé îš ţĥé öñļý ḿöḿéñţ üñþàçķ ţüŕñš à þàçķàĝé îñţö îñţéñţ, šö îţ îš ţĥé ḿöḿéñţ îţ àšķš; àđöþţîñĝ ḿéàñš à ļàţéŕ ŕüñ ĥéŕé éẋéçüţéš ƒļöŵš šöḿéöñé éļšé ŵŕöţé. Đéçļîñîñĝ ļéàṽéš ñöţĥîñĝ ƃéĥîñđ àñđ šàýš šö, ƃéçàüšé ŵîţĥöüţ à ŕéçîþé ţĥéŕé îš ñö þŕöĵéçţ ƒöŕ ţĥé çöñţéñţ ţö ļàñđ îñ. Üñþàçķîñĝ ţĥé šàḿé šñàþšĥöţ àĝàîñ ƒîñđš ţĥé þŕöĵéçţ îţ ḿàđé àñđ ŕéƒŕéšĥéš ţĥé šţàţé ŵîţĥöüţ àšķîñĝ.

Çöñšéǫüéñçéš

  • À þŕöĵéçţ'š ƒüļļ çöñţéñţ šéŕîàļîžéš ļöššļéššļý àñđ ŕéĥýđŕàţéš îñţö ƒŕéšĥ šţöŕéš. Ţĥé ĝüàŕàñţéé îš éñƒöŕçéđ ƃý à ŕöüñđ-ţŕîþ ţéšţ: þöþüļàţé ŕéàļ šţöŕéš, þàçķ, üñþàçķ îñţö ƒŕéšĥ šţöŕéš, ŕé-þàçķ, àššéŕţ ƃýţé-îđéñţîçàļ.
  • ŢḾẊ àñđ ŢƂẊ ķééþ ţĥéîŕ ŕöļé àš îñđüšţŕý îñţéŕçĥàñĝé, àñđ ţĥéîŕ ļöššîñéšš îš à đöçüḿéñţéđ, îñţéñţîöñàļ þŕöþéŕţý.
  • Éṽéŕý ḿéḿƃéŕ îš đéţéŕḿîñîšţîç àñđ ĥàšĥàƃļé, šö à þàçķàĝé, àñđ éàçĥ ḿéḿƃéŕ, ĥàš à šţàƃļé çöñţéñţ ĥàšĥ, àñđ ţĥé šàḿé Ḿéŕķļé đ ţĥé šýñç éñĝîñé ŕüñš öṽéŕ ţĥé ŵîŕé àþþļîéš ţö þàçķàĝéš àţ ŕéšţ.
  • Ţĥé çöñţéñţ ƃüñđļé ƒöŕḿàţ îš üñçĥàñĝéđ: ţĥé ƒàḿîļý çöḿþöšéš àŕöüñđ îţ ŕàţĥéŕ ţĥàñ ĝŕöŵîñĝ îţ.
  • Ŵöŕķîñĝ šţàţé çàñ ƃé ĥàñđéđ öƒƒ àñđ à ƒļöŵ ŕéšüḿéđ àĝàîñšţ à ŵàŕḿ šţöŕé, ŵîţĥ þŕöĝŕéšš đéŕîṽéđ ƒŕöḿ çöñţéñţ ŕàţĥéŕ ţĥàñ à ĵöüŕñàļ. Šîđé-郃éçţîñĝ ŕéçîþé ţŕàṽéļš îñéŕţ, šö ŕéçéîṽîñĝ à þàçķàĝé çàññöţ ţŕîĝĝéŕ à ñéţŵöŕķ çàļļ, à ĥööķ, öŕ àñ àüţöḿàţîöñ üñţîļ îţ îš àđöþţéđ îñţö à þŕöĵéçţ.

Ŕéļàţéđ