Skip to content

Commit 37634c5

Browse files
[treescript] Add android_l10n_import and android_l10n_sync actions (#862)
* move check_treestatus into util * add source_repo parameter to checkout_repo * [treescript] Add android_l10n_import and android_l10n_sync actions * use run_command instead of subprocess * address review comments
1 parent 7d4591e commit 37634c5

16 files changed

+625
-60
lines changed

treescript/requirements/base.in

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
compare-locales
12
mercurial
23
mozilla-version
34
scriptworker # required for docker, even if treescript doesn't import it

treescript/requirements/base.py38.txt

+21-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SHA1:5bd38a9e4688c17608e779dbb340066592215acf
1+
# SHA1:76dd9dadb8b39e24aa22a3259b12d61d75994a1f
22
#
33
# This file is autogenerated by pip-compile-multi
44
# To update, run:
@@ -356,7 +356,13 @@ charset-normalizer==3.3.2 \
356356
--hash=sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33 \
357357
--hash=sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519 \
358358
--hash=sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561
359-
# via requests
359+
# via
360+
# aiohttp
361+
# requests
362+
compare-locales==9.0.2 \
363+
--hash=sha256:588780f837942926760847f43b223056e6cf97f0b3029f51d41d6b9edc0269eb \
364+
--hash=sha256:8ec46e2333718ba81a8c23f120e1b2380bd944f58bd69dac15de40e619e8904b
365+
# via -r requirements/base.in
360366
cryptography==41.0.5 \
361367
--hash=sha256:0c327cac00f082013c7c9fb6c46b7cc9fa3c288ca702c74773968173bda421bf \
362368
--hash=sha256:0d2a6a598847c46e3e321a7aef8af1436f11c27f1254933746304ff014664d84 \
@@ -388,6 +394,10 @@ dictdiffer==0.9.0 \
388394
--hash=sha256:17bacf5fbfe613ccf1b6d512bd766e6b21fb798822a133aa86098b8ac9997578 \
389395
--hash=sha256:442bfc693cfcadaf46674575d2eba1c53b42f5e404218ca2c2ff549f2df56595
390396
# via scriptworker
397+
fluent-syntax==0.19.0 \
398+
--hash=sha256:920326d7f46864b9758f0044e9968e3112198bc826acee16ddd8f11d359004fd \
399+
--hash=sha256:b352b3475fac6c6ed5f06527921f432aac073d764445508ee5218aeccc7cc5c4
400+
# via compare-locales
391401
frozenlist==1.4.0 \
392402
--hash=sha256:007df07a6e3eb3e33e9a1fe6a9db7af152bbd8a185f9aaa6ece10a3529e3e1c6 \
393403
--hash=sha256:008eb8b31b3ea6896da16c38c1b136cb9fec9e249e77f6211d479db79a4eaf01 \
@@ -836,6 +846,7 @@ six==1.16.0 \
836846
--hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \
837847
--hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254
838848
# via
849+
# compare-locales
839850
# mohawk
840851
# python-dateutil
841852
slugid==2.0.0 \
@@ -853,10 +864,18 @@ taskcluster-urls==13.0.1 \
853864
--hash=sha256:b25e122ecec249c4299ac7b20b08db76e3e2025bdaeb699a9d444556de5fd367 \
854865
--hash=sha256:f66dcbd6572a6216ab65949f0fa0b91f2df647918028436c384e6af5cd12ae2b
855866
# via taskcluster
867+
toml==0.10.2 \
868+
--hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \
869+
--hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f
870+
# via compare-locales
856871
types-python-dateutil==2.8.19.14 \
857872
--hash=sha256:1f4f10ac98bb8b16ade9dbee3518d9ace017821d94b057a425b069f834737f4b \
858873
--hash=sha256:f977b8de27787639986b4e28963263fd0e5158942b3ecef91b9335c130cb1ce9
859874
# via arrow
875+
typing-extensions==4.8.0 \
876+
--hash=sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0 \
877+
--hash=sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef
878+
# via fluent-syntax
860879
uritemplate==4.1.1 \
861880
--hash=sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0 \
862881
--hash=sha256:830c08b8d99bdd312ea4ead05994a38e8936266f84b9a7878232db50b044e02e

treescript/requirements/base.txt

+21-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SHA1:5bd38a9e4688c17608e779dbb340066592215acf
1+
# SHA1:76dd9dadb8b39e24aa22a3259b12d61d75994a1f
22
#
33
# This file is autogenerated by pip-compile-multi
44
# To update, run:
@@ -356,7 +356,13 @@ charset-normalizer==3.3.2 \
356356
--hash=sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33 \
357357
--hash=sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519 \
358358
--hash=sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561
359-
# via requests
359+
# via
360+
# aiohttp
361+
# requests
362+
compare-locales==9.0.2 \
363+
--hash=sha256:588780f837942926760847f43b223056e6cf97f0b3029f51d41d6b9edc0269eb \
364+
--hash=sha256:8ec46e2333718ba81a8c23f120e1b2380bd944f58bd69dac15de40e619e8904b
365+
# via -r requirements/base.in
360366
cryptography==41.0.5 \
361367
--hash=sha256:0c327cac00f082013c7c9fb6c46b7cc9fa3c288ca702c74773968173bda421bf \
362368
--hash=sha256:0d2a6a598847c46e3e321a7aef8af1436f11c27f1254933746304ff014664d84 \
@@ -388,6 +394,10 @@ dictdiffer==0.9.0 \
388394
--hash=sha256:17bacf5fbfe613ccf1b6d512bd766e6b21fb798822a133aa86098b8ac9997578 \
389395
--hash=sha256:442bfc693cfcadaf46674575d2eba1c53b42f5e404218ca2c2ff549f2df56595
390396
# via scriptworker
397+
fluent-syntax==0.19.0 \
398+
--hash=sha256:920326d7f46864b9758f0044e9968e3112198bc826acee16ddd8f11d359004fd \
399+
--hash=sha256:b352b3475fac6c6ed5f06527921f432aac073d764445508ee5218aeccc7cc5c4
400+
# via compare-locales
391401
frozenlist==1.4.0 \
392402
--hash=sha256:007df07a6e3eb3e33e9a1fe6a9db7af152bbd8a185f9aaa6ece10a3529e3e1c6 \
393403
--hash=sha256:008eb8b31b3ea6896da16c38c1b136cb9fec9e249e77f6211d479db79a4eaf01 \
@@ -826,6 +836,7 @@ six==1.16.0 \
826836
--hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \
827837
--hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254
828838
# via
839+
# compare-locales
829840
# mohawk
830841
# python-dateutil
831842
slugid==2.0.0 \
@@ -843,10 +854,18 @@ taskcluster-urls==13.0.1 \
843854
--hash=sha256:b25e122ecec249c4299ac7b20b08db76e3e2025bdaeb699a9d444556de5fd367 \
844855
--hash=sha256:f66dcbd6572a6216ab65949f0fa0b91f2df647918028436c384e6af5cd12ae2b
845856
# via taskcluster
857+
toml==0.10.2 \
858+
--hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \
859+
--hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f
860+
# via compare-locales
846861
types-python-dateutil==2.8.19.14 \
847862
--hash=sha256:1f4f10ac98bb8b16ade9dbee3518d9ace017821d94b057a425b069f834737f4b \
848863
--hash=sha256:f977b8de27787639986b4e28963263fd0e5158942b3ecef91b9335c130cb1ce9
849864
# via arrow
865+
typing-extensions==4.8.0 \
866+
--hash=sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0 \
867+
--hash=sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef
868+
# via fluent-syntax
850869
uritemplate==4.1.1 \
851870
--hash=sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0 \
852871
--hash=sha256:830c08b8d99bdd312ea4ead05994a38e8936266f84b9a7878232db50b044e02e

treescript/requirements/test.py38.txt

-4
Original file line numberDiff line numberDiff line change
@@ -290,10 +290,6 @@ snowballstemmer==2.2.0 \
290290
--hash=sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1 \
291291
--hash=sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a
292292
# via pydocstyle
293-
toml==0.10.2 \
294-
--hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \
295-
--hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f
296-
# via pytest-black
297293
tomli==2.0.1 \
298294
--hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc \
299295
--hash=sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f

treescript/requirements/test.txt

-4
Original file line numberDiff line numberDiff line change
@@ -290,10 +290,6 @@ snowballstemmer==2.2.0 \
290290
--hash=sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1 \
291291
--hash=sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a
292292
# via pydocstyle
293-
toml==0.10.2 \
294-
--hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \
295-
--hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f
296-
# via pytest-black
297293
tomli==2.0.1 \
298294
--hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc \
299295
--hash=sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f

treescript/src/treescript/data/treescript_task_schema.json

+62
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,66 @@
186186
"files"
187187
]
188188
},
189+
"android_l10n_import_info": {
190+
"type": "object",
191+
"properties": {
192+
"from_repo_url": {
193+
"type": "string"
194+
},
195+
"toml_info": {
196+
"type": "array",
197+
"minItems": 1,
198+
"uniqueItems": true,
199+
"items": {
200+
"type": "object",
201+
"properties": {
202+
"toml_path": {
203+
"type": "string"
204+
},
205+
"dest_path": {
206+
"type": "string"
207+
}
208+
},
209+
"required": [
210+
"toml_path",
211+
"dest_path"
212+
]
213+
}
214+
}
215+
},
216+
"required": [
217+
"from_repo_url",
218+
"toml_info"
219+
]
220+
},
221+
"android_l10n_sync_info": {
222+
"type": "object",
223+
"properties": {
224+
"from_repo_url": {
225+
"type": "string"
226+
},
227+
"toml_info": {
228+
"type": "array",
229+
"minItems": 1,
230+
"uniqueItems": true,
231+
"items": {
232+
"type": "object",
233+
"properties": {
234+
"toml_path": {
235+
"type": "string"
236+
}
237+
},
238+
"required": [
239+
"toml_path"
240+
]
241+
}
242+
}
243+
},
244+
"required": [
245+
"from_repo_url",
246+
"toml_info"
247+
]
248+
},
189249
"l10n_bump_info": {
190250
"type": "array",
191251
"minItems": 1,
@@ -258,6 +318,8 @@
258318
"version_bump",
259319
"l10n_bump",
260320
"merge_day",
321+
"android_l10n_import",
322+
"android_l10n_sync",
261323
"push"
262324
]
263325
}

treescript/src/treescript/gecko/__init__.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import os
33

44
from treescript.gecko import mercurial as vcs
5+
from treescript.gecko.android_l10n import android_l10n_import, android_l10n_sync
56
from treescript.gecko.l10n import l10n_bump
67
from treescript.gecko.merges import do_merge
78
from treescript.gecko.versionmanip import bump_version
@@ -51,7 +52,7 @@ async def do_actions(config, task):
5152
if not await vcs.validate_robustcheckout_works(config):
5253
raise TreeScriptError("Robustcheckout can't run on our version of hg, aborting")
5354

54-
await vcs.checkout_repo(config, task, repo_path)
55+
await vcs.checkout_repo(config, task, get_source_repo(task), repo_path)
5556

5657
# Split the action selection up due to complexity in do_actions
5758
# caused by different push behaviour, and action return values.
@@ -66,6 +67,10 @@ async def do_actions(config, task):
6667
num_changes += await bump_version(config, task, repo_path)
6768
if "l10n_bump" in actions:
6869
num_changes += await l10n_bump(config, task, repo_path)
70+
if "android_l10n_import" in actions:
71+
num_changes += await android_l10n_import(config, task, repo_path)
72+
if "android_l10n_sync" in actions:
73+
num_changes += await android_l10n_sync(config, task, repo_path)
6974

7075
num_outgoing = await vcs.log_outgoing(config, task, repo_path)
7176
if num_outgoing != num_changes:

0 commit comments

Comments
 (0)