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

Àüţöḿàţîöñ

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

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

Šéŕṽéŕ-šîđé àüţöḿàţîöñ​

Šéŕṽéŕ-šîđé àüţöḿàţîöñš àŕé éṽéñţ-đŕîṽéñ ŕüļéš çöñƒîĝüŕéđ îñ ţĥé Ƃöŵŕàîñ ŵéƃ àþþ üñđéŕ Þŕöĵéçţ > Àüţöḿàţîöñš. Ţĥéý ŕéšþöñđ ţö éṽéñţš öñ ţĥé šéŕṽéŕ àñđ ţŕîĝĝéŕ àçţîöñš šüçĥ àš ŕüññîñĝ ƒļöŵš öŕ šéñđîñĝ ñöţîƒîçàţîöñš. Ƃéçàüšé ţĥéý ŕéàçţ ţö éṽéñţš öñ ţĥé šéŕṽéŕ, ţĥéý àþþļý ţö çöñţéñţ ƒŕöḿ àñý çöññéçţöŕ.

Ţĥé Àüţöḿàţîöñš þàĝé ĥàš ţĥŕéé ţàƃš: Ŕüñš (ŕüñ ĥîšţöŕý), Ŕüļéš (ţŕîĝĝéŕ, çöñđîţîöñš àñđ àçţîöñš) àñđ Ƒļöŵš (ţĥé ƒļöŵ çàñṽàš; šéé Šéŕṽéŕ-šîđé ƒļöŵš). Ţĥé Ƒļöŵš àñđ Ŕüļéš ţàƃš šĥàŕé öñé éđîţöŕ, šö ýöü ŵŕîţé à run_flow àçţîöñ àñđ ţĥé ƒļöŵ îţ ŕüñš îñ öñé þļàçé.

Ţĥé Àüţöḿàţîöñš þàĝé ŵîţĥ ţĥé Ŕüñš, Ŕüļéš àñđ Ƒļöŵš ţàƃšŢĥé Àüţöḿàţîöñš þàĝé ŵîţĥ ţĥé Ŕüñš, Ŕüļéš àñđ Ƒļöŵš ţàƃš

Ţŕîĝĝéŕš​

À ŕüļé ƒîŕéš öñ öñé öƒ ţĥéšé éṽéñţš:

ŢŕîĝĝéŕƑîŕéš ŵĥéñ
connector.push.completedÇöñţéñţ îš þüšĥéđ, ƒŕöḿ à çĥéçķöüţ öŕ à ŕéþöšîţöŕý
project.updatedÞŕöĵéçţ šéţţîñĝš çĥàñĝé
quality.gate.failÀ ļàñĝüàĝé šţöþš ḿééţîñĝ à šĥîþ ĝàţé
push.automations.completedÉṽéŕý àüţöḿàţîöñ ƒöŕ à þüšĥ ĥàš çöḿþļéţéđ
source.review.completedÀ šöüŕçé ŕéṽîéŵ ţàšķ îš çöḿþļéţéđ

À çöññéçţöŕ ƒéţçĥ éḿîţš ñö éṽéñţ, šö à ŕüļé çàññöţ ŕéàçţ ţö çöñţéñţ ƒéţçĥéđ ƒŕöḿ à çöñţéñţ þļàţƒöŕḿ. Šţàŕţ à ŕüñ ţö çàţçĥ ţĥàţ çöñţéñţ üþ. Ñö éṽéñţ ƒîŕéš ŵĥéñ à ƒļöŵ ƒîñîšĥéš, šö à ŕüļé çàññöţ çĥàîñ öñ à ƒļöŵ'š çöḿþļéţîöñ.

Çŕéàţîñĝ ŕüļéš​

  1. Ñàṽîĝàţé ţö Þŕöĵéçţ > Àüţöḿàţîöñš > Ŕüļéš
  2. Çļîçķ Ñéŵ Ŕüļé
  3. Šéļéçţ à ţŕîĝĝéŕ éṽéñţ
  4. Àđđ öþţîöñàļ çöñđîţîöñš (ƒîļţéŕ ƃý þŕöĵéçţ, ļöçàļé, öŕ éṽéñţ đàţà)
  5. Àđđ öñé öŕ ḿöŕé àçţîöñš. À run_flow àçţîöñ þîçķš à ƒļöŵ ƒŕöḿ ţĥé þŕöĵéçţ'š ƒļöŵ ŕéĝîšţŕý (ţĥé ƃüîļţ-îñ çàţàļöĝ þļüš àñý þŕöĵéçţ ƒļöŵš àüţĥöŕéđ öñ ţĥé Ƒļöŵš ţàƃ); ţĥé šàḿé ƒļöŵ àþþļîéš ţö çöñţéñţ ƒŕöḿ àñý çöññéçţöŕ
  6. Šàṽé àñđ éñàƃļé ţĥé ŕüļé

Ŕüļéš àñđ ţĥé ƒļöŵ đéƒîñîţîöñš ţĥéý ŕéƒéŕéñçé àŕé þéŕšîšţéđ ţĥŕöüĝĥ ţĥé þŕöĵéçţ-šçöþéđ ŔÉŠŢ ÀÞÎ: /api/v1/:ws/:id/automations ƒöŕ ŕüļéš àñđ /api/v1/:ws/:id/flows ƒöŕ ƒļöŵ đéƒîñîţîöñš. Ŕüļéš çàñ ƃé ŕéöŕđéŕéđ, đîšàƃļéđ, àñđ đüþļîçàţéđ ƒŕöḿ ţĥé éđîţöŕ. Ƃöŵŕàîñ çĥéçķš à ŕüļé ŵĥéñ ýöü šàṽé îţ: éṽéŕý àçţîöñ ḿüšţ ƃé öñé ţĥé šéŕṽéŕ ŕüñš, àñđ à run_flow àçţîöñ ḿüšţ ñàḿé à ƒļöŵ ţĥé þŕöĵéçţ çàñ šéé. À ŕüļé ţĥàţ šàṽéš ŵîļļ ƒîŕé.

Àçţîöñš​

ÀçţîöñŴĥàţ îţ đöéš
run_flowŔüñš à ƒļöŵ öṽéŕ ţĥé þŕöĵéçţ'š šţöŕéđ çöñţéñţ àñđ ŵŕîţéš ţĥé ŕéšüļţš ƃàçķ
auto_translateŠţàŕţš ţŕàñšļàţîöñ ĵöƃš ƒöŕ ţĥé þüšĥéđ îţéḿš îñ éṽéŕý ţàŕĝéţ ļàñĝüàĝé
create_review_tasksÖþéñš à ŕéṽîéŵ ţàšķ þéŕ ţàŕĝéţ ļàñĝüàĝé ƒöŕ ţĥé þŕöĵéçţ'š ŕéṽîéŵéŕš
create_source_reviewÖþéñš à šöüŕçé ŕéṽîéŵ ţàšķ
notifyŠéñđš àñ îñ-àþþ ñöţîƒîçàţîöñ

À run_flow àçţîöñ ţàķéš ţĥéšé þàŕàḿéţéŕš:

ÞàŕàḿéţéŕḾéàñîñĝ
flowŢĥé ƒļöŵ ţö ŕüñ: à ƃüîļţ-îñ ƒļöŵ öŕ öñé àüţĥöŕéđ öñ ţĥé þŕöĵéçţ'š Ƒļöŵš ţàƃ. Ŕéǫüîŕéđ.
streamŢĥé šţŕéàḿ ţö ŕéàđ àñđ ŵŕîţé. Đéƒàüļţš ţö ţĥé šţŕéàḿ ţĥé éṽéñţ ñàḿéš, öŕ main.
itemsÇöḿḿà-šéþàŕàţéđ îţéḿ ñàḿéš. Đéƒàüļţš ţö ţĥé îţéḿš ţĥé éṽéñţ ñàḿéš (à þüšĥ'š ƒîļéš), öŕ éṽéŕý îţéḿ.
target_localesÇöḿḿà-šéþàŕàţéđ ţàŕĝéţ ļöçàļéš, öñé þàšš éàçĥ. Đéƒàüļţš ţö ţĥé þŕöĵéçţ'š ţàŕĝéţ ļàñĝüàĝéš.

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

Ŕüñ ĥîšţöŕý​

Éṽéŕý šéŕṽéŕ-šîđé àüţöḿàţîöñ ŕüñ îš ŕéçöŕđéđ üñđéŕ Þŕöĵéçţ > Àüţöḿàţîöñš > Ŕüñš, ŵîţĥ îţš ţŕîĝĝéŕ, îţš šţéþš, ţĥé öüţçöḿé öƒ éàçĥ šţéþ, àñđ þéŕ-šţéþ ļöĝš. À ŕüñ îñ þŕöĝŕéšš üþđàţéš îñ þļàçé àš éàçĥ šţéþ šţàŕţš àñđ ƒîñîšĥéš. Çĥéçķ îţ ŵĥéñ à ŕüļé đîđ ñöţ đö ŵĥàţ ýöü éẋþéçţéđ.

Ļöçàļ àüţöḿàţîöñ (ÇĻÎ)​

Ļöçàļ àüţöḿàţîöñš ŕüñ îñ ķàþî ŵîţĥ ţĥé ƃöŵŕàîñ þļüĝîñ. Ýöü đéçļàŕé ţĥéḿ àţ ţĥé ţöþ ļéṽéļ öƒ ýöüŕ þŕöĵéçţ'š kapi.yaml ŕéçîþé. Ţĥéý ŕüñ àçţîöñš ƃéƒöŕé öŕ àƒţéŕ þüšĥ, þüļļ àñđ ƒļöŵ ŕüñš, ƒöŕ đéṽéļöþéŕ àñđ ÇÎ ŵöŕķƒļöŵš.

Çöñƒîĝüŕàţîöñ​

Àđđ àñ automations: šéçţîöñ ţö ýöüŕ kapi.yaml ŕéçîþé:

automations:
- name: checks-before-push
trigger: pre-push
actions:
- type: run_flow
config:
flow: qa

- name: sync-on-push
trigger: post-push
actions:
- type: wait_translate
config:
timeout: 5m
- type: pull

Ţŕîĝĝéŕ ţýþéš​

ŢŕîĝĝéŕƑîŕéš ŵĥéñ
pre-pushƂéƒöŕé kapi push šéñđš çöñţéñţ ţö ţĥé šéŕṽéŕ
post-pushÀƒţéŕ kapi push çöḿþļéţéš šüççéššƒüļļý
pre-pullƂéƒöŕé kapi pull ƒéţçĥéš çöñţéñţ ƒŕöḿ ţĥé šéŕṽéŕ
post-pullÀƒţéŕ kapi pull ŵŕîţéš ƒîļéš ļöçàļļý
pre-flowƂéƒöŕé kapi run éẋéçüţéš à ƒļöŵ
post-flowÀƒţéŕ kapi run çöḿþļéţéš

Àçţîöñ ţýþéš​

ÀçţîöñĐéšçŕîþţîöñ
run_flowŔüñ à ƒļöŵ ƃý ñàḿé öṽéŕ ţĥé þŕöĵéçţ'š çöļļéçţîöñš, àš kapi run <flow> đöéš ŵîţĥ ñö --input
wait_translateŴàîţ ƒöŕ ţĥé šéŕṽéŕ-šîđé ŕüñ ţö çöḿþļéţé (ŵîţĥ çöñƒîĝüŕàƃļé ţîḿéöüţ)
pullÞüļļ ŕéšüļţš ƒŕöḿ ţĥé šéŕṽéŕ
pushÞüšĥ ļöçàļ çöñţéñţ ţö ţĥé šéŕṽéŕ

À ļöçàļ run_flow àçţîöñ ţàķéš ţĥéšé þàŕàḿéţéŕš:

ÞàŕàḿéţéŕḾéàñîñĝ
flowŢĥé ƒļöŵ ţö ŕüñ: öñé đéçļàŕéđ üñđéŕ flows: öñ ţĥé ŕéçîþé, öŕ à ƃüîļţ-îñ ƒļöŵ šüçĥ àš qa. Ŕéǫüîŕéđ.
fail_on_errortrue àƃöŕţš ţĥé çöḿḿàñđ ŵĥéñ ţĥé ƒļöŵ'š çĥéçķ šţéþš ŕéþöŕţ ƒîñđîñĝš, öŕ ŵĥéñ îţš çĥéçķš đîđ ñöţ ŕüñ: ţĥé ƒļöŵ ĥöļđš ñö çĥéçķ šţéþ, öŕ îţš çĥéçķ šţéþš ŕéàđ ñö çöñţéñţ. Đéƒàüļţ false: ŕéþöŕţ àñđ çöñţîñüé.

Ţĥé ƒļöŵ ŕüñš àš kapi run <flow> ŕüñš îţ îñšîđé ţĥé þŕöĵéçţ:

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

Îţš öüţþüţ, îñçļüđîñĝ ţĥé ƒîñđîñĝš ţàƃļé ƒŕöḿ îţš çĥéçķ šţéþš, þŕîñţš ŵîţĥ ţĥé öüţþüţ öƒ ţĥé çöḿḿàñđ ţĥàţ ţŕîĝĝéŕéđ îţ. Üñđéŕ --json îţ ĝöéš ţö šţđéŕŕ, šö ţĥé çöḿḿàñđ'š ĴŠÖÑ đöçüḿéñţ šţàýš îñţàçţ. À ƒļöŵ ţĥàţ çàññöţ ŕüñ, ƃéçàüšé ţĥé ñàḿé îš üñķñöŵñ öŕ à ţööļ ƒàîļš, àƃöŕţš ţĥé çöḿḿàñđ ŵĥàţéṽéŕ fail_on_error šàýš.

Éẋàḿþļé: à çĥéçķ ĝàţé ƃéƒöŕé þüšĥ​

Þŕéṽéñţ þüšĥîñĝ çöñţéñţ ţĥàţ ƒàîļš ţĥé çĥéçķš:

automations:
- name: checks-gate
trigger: pre-push
actions:
- type: run_flow
config:
flow: qa
fail_on_error: true

΃ qa ŕéþöŕţš ƒîñđîñĝš àñđ fail_on_error îš true, ţĥé þüšĥ îš àƃöŕţéđ ƃéƒöŕé àñýţĥîñĝ îš šéñţ, ŵîţĥ ţĥé ƒîñđîñĝš šüḿḿàŕý àñđ ţĥé éẋîţ çöđé kapi check üšéš ƒöŕ à ƒàîļéđ ĝàţé. Ŵîţĥöüţ fail_on_error ţĥé ƒîñđîñĝš àŕé ŕéþöŕţéđ àñđ ţĥé þüšĥ ĝöéš àĥéàđ.

À ƒļöŵ çàñ ŕéàçĥ ñö ṽéŕđîçţ îñ ţŵö ŵàýš, àñđ ƃöţĥ çöüñţ àš çĥéçķš ţĥàţ đîđ ñöţ ŕüñ:

  • À çĥéçķ šţéþ öṽéŕ ñö çöñţéñţ ƃļöçķ, ƒöŕ éẋàḿþļé ŵĥéñ éṽéŕý ḿàţçĥéđ ƒîļé îš éḿþţý, ŕéþöŕţš ţĥé çàüšé nothing_to_check.
  • À ƒļöŵ ŵîţĥ ñö çĥéçķ šţéþ, šüçĥ àš pseudo-translate, ŕéþöŕţš ţĥé çàüšé content_not_checked. Ŵîţĥ fail_on_error ţĥé þüšĥ îš àƃöŕţéđ ŵîţĥ ţĥé çàüšé àñđ ţĥé éẋîţ çöđé kapi check üšéš ŵĥéñ à çĥéçķ đîđ ñöţ ŕüñ. Ŵîţĥöüţ îţ, ţĥé çöḿḿàñđ þŕîñţš ţĥé çàüšé àñđ ţĥé þüšĥ ĝöéš àĥéàđ.

Çàţçĥîñĝ üþ öñ éṽéŕý þüšĥ​

Ţĥé þŕöĵéçţ'š bowrain.converge þöļîçý, ñöţ àñ àüţöḿàţîöñ ŕüļé, çàţçĥéš ţĥé þŕöĵéçţ üþ öñ þüšĥ. Ŵîţĥ ţĥé đéƒàüļţ on-push, ţĥé šéŕṽéŕ ŕüñš à ƒüļļ þàšš àƒţéŕ éṽéŕý þüšĥ: ŕéüšé, đŕàƒţîñĝ, çĥéçķš, ţéŕḿš, ĝàţéš àñđ ŕéṽîéŵ ĥöļđš. Éàçĥ þàšš îš ŕéçöŕđéđ àš à ŕüñ àñýöñé çàñ ŵàţçĥ:

# kapi.yaml
bowrain:
url: https://bowrain.example.com/my-team/abc123
converge: on-push # on-push (default) | manual

kapi push ƒŕöḿ ÇÎ öñļý þüšĥéš, àñđ ţĥé šéŕṽéŕ çàţçĥéš ţĥé þŕöĵéçţ üþ öñ îţš öŵñ šçĥéđüļé. kapi up þüšĥéš, ŵàţçĥéš ţĥé ŕüñ, ţĥéñ þüļļš. Šéé Ķééþîñĝ çöñţéñţ çàüĝĥţ üþ ƒöŕ ţĥé ḿöđéļ.

Ţĥé þöļîçý ţŕàṽéļš ŵîţĥ éṽéŕý þüšĥ ţö ţĥé þŕöĵéçţ'š đéƒàüļţ šţŕéàḿ. Šéţţîñĝ converge: manual îñ kapi.yaml ţàķéš éƒƒéçţ öñ ţĥé ñéẋţ šüçĥ þüšĥ ƃý àñýöñé ŵĥö ḿàý þüšĥ ţĥé þŕöĵéçţ, à ÇÎ ţöķéñ îñçļüđéđ. Ŕéţüŕñîñĝ ţö on-push šţàŕţš šéŕṽéŕ ŕüñš àĝàîñ ŵîţĥöüţ àñýöñé àšķîñĝ, šö îţ ţàķéš à þüšĥ ƒŕöḿ à ŵöŕķšþàçé öŵñéŕ öŕ àđḿîñ. Šéé Šéţţîñĝš à þüšĥ çàŕŕîéš.

Éṽéŕý ŕüñ, šţàŕţéđ ƃý à þüšĥ, ƃý kapi up, öŕ ḿàñüàļļý, àþþéàŕš îñ ţĥé þŕöĵéçţ'š Ŕüñš ṽîéŵ îñ ţĥé ŵéƃ àñđ đéšķţöþ àþþ, ŵîţĥ îţš šţàţé (Ŕüññîñĝ, Üþ ţö đàţé, Ŵàîţîñĝ ƒöŕ ŕéṽîéŵ), îţš ţŕîĝĝéŕ, ţĥé þàšš çöüñţ, àñđ à þéŕ-ļöçàļé šüḿḿàŕý šüçĥ àš "3 šĥîþþàƃļé · 1 ŵàîţîñĝ ƒöŕ ŕéṽîéŵ". À Ŕüñ ñöŵ ƃüţţöñ šţàŕţš à ŕüñ ƒŕöḿ ţĥé àþþ, àñđ àñ îñ-ƒļîĝĥţ ŕüñ çàñ ƃé çàñçéļéđ. Ţŕàñšļàţîöñš ŵàîţîñĝ ƒöŕ ŕéṽîéŵ ļàñđ îñ ţĥé ŕéṽîéŵ šéššîöñ.

Ǫüàļîţý ĝàţé éṽéñţš​

Ƃöŵŕàîñ đéŕîṽéš éàçĥ ţàŕĝéţ ļàñĝüàĝé'š šĥîþ šţàţé ƒŕöḿ ţĥéšé ĝàţéš:

ĜàţéŴĥàţ îţ çöṽéŕš
translatedÇöṽéŕàĝé
checksŢĥé çĥéçķš
termsŢéŕḿîñöļöĝý, ŵĥéŕé ţéŕḿš ĝöṽéŕñ ţĥé ļàñĝüàĝé
staleĐéçîšîöñš öñ šöüŕçé ţĥàţ ĥàš çĥàñĝéđ
rejectedŴöŕđîñĝ à ŕéṽîéŵéŕ ŕéĵéçţéđ

Ŵĥéñ à ļàñĝüàĝé šţöþš ḿééţîñĝ à ĝàţé, Ƃöŵŕàîñ þüƃļîšĥéš quality.gate.fail ƒöŕ ţĥàţ ĝàţé àñđ ļàñĝüàĝé. Ŵĥéñ îţ ḿééţš ţĥé ĝàţé àĝàîñ, Ƃöŵŕàîñ þüƃļîšĥéš quality.gate.pass. Àñ üñçĥàñĝéđ ŕéšüļţ þüƃļîšĥéš ñöţĥîñĝ, àñđ à ļàñĝüàĝé ŵĥöšé ƒîŕšţ ŕéšüļţ ḿééţš éṽéŕý ĝàţé þüƃļîšĥéš ñö þàšš. À ƒàîļ ƒöŕ à ĝàţé ţĥàţ îš üñḿéţ ƃéçàüšé à çĥéçķ ĥàš ñö ŕéšüļţ šàýš šö.

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

Ţĥé éṽéñţš ŕéþöŕţ šţàţé àñđ ƃļöçķ ñöţĥîñĝ. À ŕüļé öñ quality.gate.fail çàñ ŕüñ à ƒļöŵ, àñđ à ƒàîļéđ ĝàţé ñöţîƒîéš ţĥé þŕöĵéçţ'š ḿéḿƃéŕš. Ţö šţöþ çöñţéñţ ţĥàţ đöéš ñöţ ḿééţ à ƃàŕ, ĝàţé ŵĥéŕé îţ îš þŕöđüçéđ: kapi check --ship éẋîţš ñöñ-žéŕö ŵĥéñ à šĥîþ ĝàţé îš üñḿéţ, àñđ à ļöçàļ run_flow àçţîöñ ŵîţĥ fail_on_error: true àƃöŕţš ţĥé çöḿḿàñđ öñ ţĥé ƒļöŵ'š ƒîñđîñĝš.

Ŵĥéñ à ĵöƃ ƒàîļš​

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

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

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

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

Ļööþ þŕéṽéñţîöñ​

Ƃöŵŕàîñ ţŕàçķš ŵĥîçĥ éṽéñţ çàüšéđ éàçĥ àüţöḿàţîöñ. ΃ à çĥàîñ öƒ ŕüļéš ĝöéš ḿöŕé ţĥàñ ƒîṽé ļéṽéļš đééþ, Ƃöŵŕàîñ šţöþš îţ àñđ ļöĝš à ŵàŕñîñĝ, šö çîŕçüļàŕ ŕüļéš çàññöţ ŕüñ ƒöŕéṽéŕ.