Skip to content

Commit 9a1c708

Browse files
authored
Merge branch 'develop' into renovate/rollup-plugin-node-resolve-16.x
2 parents 667a3e0 + 1a8196b commit 9a1c708

File tree

389 files changed

+20902
-9753
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

389 files changed

+20902
-9753
lines changed

.circleci/ats.sh

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,29 @@ uv run --frozen codecovcli static-analysis --token ${CODECOV_STATIC_TOKEN} --fol
1515
ATS_COLLECT_ARGS="${ATS_COLLECT_ARGS}${DEFAULT_TESTS},"
1616
echo "Label analysis with base sha: ${BASE_SHA} and default tests: ${ATS_COLLECT_ARGS}"
1717
runner_param="collect_tests_options=${ATS_COLLECT_ARGS}"
18-
response=$(uv run --frozen codecovcli label-analysis --token ${CODECOV_STATIC_TOKEN} --base-sha=$BASE_SHA --dry-run --dry-run-format="json" --runner-param "$runner_param")
18+
19+
# Always get last 10 commits as fallback options, starting with BASE_SHA if provided
20+
base_commit_candidates=($(git log --format=%H | sed -n "1,10p"))
21+
if [[ -n ${BASE_SHA} ]]; then
22+
# Prepend BASE_SHA to the candidates list if it's provided
23+
base_commit_candidates=("${BASE_SHA}" "${base_commit_candidates[@]}")
24+
fi
25+
26+
for base_commit in ${base_commit_candidates[@]}
27+
do
28+
echo "Attempting label analysis with base commit: $base_commit"
29+
response=$(uv run --frozen codecovcli label-analysis --token ${CODECOV_STATIC_TOKEN} --base-sha=$base_commit --dry-run --dry-run-format="json" --runner-param "$runner_param" --max-wait-time=30 || true)
30+
if [[ -n $response ]]; then
31+
break
32+
else
33+
echo "-> Attempt failed"
34+
fi
35+
done
36+
37+
if [[ -z $response ]]; then
38+
echo "Failed to run label analysis with any base commit."
39+
fi
40+
1941
mkdir codecov_ats
2042
jq <<< "$response" '.runner_options + .ats_tests_to_run | .[1:] | map(gsub("\""; "")) | join(" ")' --raw-output > codecov_ats/tests_to_run.txt
2143
jq <<< "$response" '.runner_options + .ats_tests_to_skip | .[1:] | map(gsub("\""; "")) | join(" ")' --raw-output > codecov_ats/tests_to_skip.txt

.circleci/config.yml

Lines changed: 16 additions & 231 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,12 @@ executors:
1717
machine:
1818
image: ubuntu-2404:current
1919
orbs:
20-
aws-cli: circleci/[email protected].2
20+
aws-cli: circleci/[email protected].3
2121
codecov: codecov/[email protected]
22-
node: circleci/node@7.0.0
22+
node: circleci/node@7.1.0
2323
github-cli: circleci/[email protected]
2424
slack: circleci/[email protected]
2525

26-
27-
28-
29-
30-
3126
commands:
3227
install-lfs:
3328
steps:
@@ -66,33 +61,12 @@ commands:
6661
paths:
6762
- $GITHUB_WORKSPACE
6863
key: repos-<<parameters.extra_repos>>
69-
fetch-verified-codemods:
70-
steps:
71-
- run:
72-
command: |
73-
uv run --frozen python -m tests.shared.codemod.commands fetch-verified-codemods --cli-api-key ${PROD_CLI_API_KEY}
74-
cache-verified-codemod-repos:
75-
steps:
76-
- restore_cache:
77-
keys:
78-
- v1-verified-codemod-repos-{{ checksum "tests/integration/verified_codemods/codemod_data/repo_commits.json" }}-{{.Environment.CIRCLE_NODE_INDEX}}-{{.Environment.CIRCLE_NODE_TOTAL}}
79-
- run:
80-
command: |
81-
uv run --frozen python -m tests.shared.codemod.commands clone-repos --verified-codemod-repos --token ${CODEGEN_BOT_GHE_TOKEN}
82-
- save_cache:
83-
paths:
84-
- $GITHUB_WORKSPACE
85-
key: v1-verified-codemod-repos-{{ checksum "tests/integration/verified_codemods/codemod_data/repo_commits.json" }}-{{.Environment.CIRCLE_NODE_INDEX}}-{{.Environment.CIRCLE_NODE_TOTAL}}
8664
build-wheels:
87-
parameters:
88-
base_packages:
89-
type: boolean
90-
default: false
9165
steps:
9266
- install-uv
9367
- restore_cache:
9468
keys:
95-
- cibuildwheel-cache-<<pipeline.parameters.python_version>>-{{ .Environment.CIRCLE_JOB }}-{{ checksum "uv.lock" }}--{{ checksum "pyproject.toml" }}
69+
- cibuildwheel-cache-<<pipeline.parameters.python_version>>-{{ .Environment.CIRCLE_JOB }}-{{ checksum "uv.lock" }}--{{ checksum "pyproject.toml" }}-{{ arch }}
9670
- run:
9771
command: |
9872
uv run --frozen cibuildwheel --output-dir dist
@@ -102,7 +76,7 @@ commands:
10276
- save_cache:
10377
paths:
10478
- /home/circleci/.cache/cibuildwheel
105-
key: cibuildwheel-cache-<<pipeline.parameters.python_version>>-{{ .Environment.CIRCLE_JOB }}-{{ checksum "uv.lock" }}--{{ checksum "pyproject.toml" }}
79+
key: cibuildwheel-cache-<<pipeline.parameters.python_version>>-{{ .Environment.CIRCLE_JOB }}-{{ checksum "uv.lock" }}--{{ checksum "pyproject.toml" }}-{{ arch }}
10680
setup-uv:
10781
steps:
10882
- install-lfs
@@ -121,27 +95,14 @@ commands:
12195
- ~/.cache/uv
12296
key: uv-cache-1-<<pipeline.parameters.python_version>>-{{ .Environment.CIRCLE_WORKING_DIRECTORY }}-{{ arch }}-{{ checksum "uv.lock" }}
12397
- setup-lfs
124-
setup-pre-commit:
125-
steps:
126-
- restore_cache:
127-
keys:
128-
- pre-commit-cache-<<pipeline.parameters.python_version>>-{{ checksum ".pre-commit-config.yaml" }}
129-
- run:
130-
command: uv run --frozen pre-commit install-hooks
131-
name: Install pre-commit hooks
132-
- save_cache:
133-
paths:
134-
- ~/.cache/pre-commit
135-
- ~/.cache/uv
136-
key: pre-commit-cache-<<pipeline.parameters.python_version>>-{{ checksum ".pre-commit-config.yaml" }}
13798
upload-tests:
13899
steps:
139100
- store_test_results:
140101
path: build/test-results/test/TEST.xml
141-
# - codecov/upload:
142-
# binary: ../root/.local/bin/codecovcli
143-
# files: build/test-results/test/TEST.xml
144-
# report_type: test_results
102+
- codecov/upload:
103+
binary: ../root/.local/bin/codecovcli
104+
files: build/test-results/test/TEST.xml
105+
report_type: test_results
145106
run_ats:
146107
parameters:
147108
default_tests:
@@ -181,7 +142,7 @@ commands:
181142
TESTS_TO_RUN=$(cat codecov_ats/tests_to_run.txt)
182143
echo $TESTS_TO_RUN
183144
echo $TESTS_TO_RUN | circleci tests run --command "xargs uv run --frozen pytest --cov \
184-
-o junit_suite_name="${CIRCLE_JOB}" \
145+
-o junit_suite_name="${CIRCLE_JOB}-${CIRCLE_NODE_INDEX}" \
185146
-n auto \
186147
-vv \
187148
--cov \
@@ -197,65 +158,18 @@ commands:
197158
cat codecov_ats/tests_to_run.txt | xargs uv run --frozen pytest \
198159
--cov \
199160
-vv \
200-
-o junit_suite_name="${CIRCLE_JOB}" \
161+
-o junit_suite_name="${CIRCLE_JOB}-${CIRCLE_NODE_INDEX}" \
201162
-n auto \
202163
--cov-append \
203164
<<parameters.collect_args>>
204165
- upload-tests
205166
- codecov/upload:
206167
flags: <<parameters.codecov_flags>>
207168
plugins: pycoverage,compress-pycoverage
169+
files: coverage.codecov.json
208170
# Define a job to be invoked later in a workflow.
209171
# See: https://circleci.com/docs/jobs-steps/#jobs-overview & https://circleci.com/docs/configuration-reference/#jobs
210172
jobs:
211-
unit-tests:
212-
parallelism: 3
213-
executor: default_image
214-
resource_class: "2xlarge"
215-
steps:
216-
- setup-uv
217-
- node/install:
218-
use-nvm-cache: true
219-
- run_ats:
220-
default_tests: "tests/unit"
221-
collect_args: --timeout 50
222-
integration-tests:
223-
executor: default_image
224-
resource_class: "large"
225-
steps:
226-
- setup-uv
227-
- run:
228-
command: |
229-
uv run --frozen pytest -o junit_suite_name="${CIRCLE_JOB}" -n auto tests/integration/codegen
230-
- upload-tests
231-
doctests:
232-
executor: default_image
233-
steps:
234-
- setup-uv
235-
- run:
236-
command: |
237-
uv run --frozen pytest -o junit_suite_name="${CIRCLE_JOB}" -n auto docs
238-
- upload-tests
239-
codemod-tests:
240-
parallelism: 8
241-
executor: default_vm
242-
resource_class: "2xlarge+"
243-
steps:
244-
- install-uv
245-
- setup-uv
246-
- fetch-verified-codemods
247-
- cache-verified-codemod-repos
248-
- run_ats:
249-
default_tests: "tests/integration/codemod/test_verified_codemods.py"
250-
codecov_flags: "smart-tests-codemod"
251-
collect_args: --cli-api-key ${PROD_CLI_API_KEY} --token ${CODEGEN_BOT_GHE_TOKEN}
252-
ats_collect_args: --cli-api-key=${PROD_CLI_API_KEY},--token=${CODEGEN_BOT_GHE_TOKEN},
253-
split_tests: false
254-
- slack/notify:
255-
event: fail
256-
branch_pattern: "develop"
257-
channel: "alerts-codemod-tests"
258-
template: basic_fail_1
259173
oss-codemod-tests:
260174
parameters:
261175
sync_graph:
@@ -322,34 +236,19 @@ jobs:
322236
channel: "alerts-parse-tests"
323237
template: basic_fail_1
324238

325-
pre-commit:
326-
executor: default_image
327-
resource_class: 2xlarge
328-
steps:
329-
- setup-uv
330-
- node/install:
331-
use-nvm-cache: true
332-
- setup-pre-commit
333-
- run:
334-
command: uv run --frozen pre-commit run --all-files --show-diff-on-failure --color=always
335-
name: run pre-commit
336239
linux-wheels:
337240
parameters:
338241
resource_class:
339242
type: string
340243
default: "large"
341-
base_packages:
342-
type: boolean
343-
default: false
344244
working_directory: ~/linux-wheels
345245
machine:
346246
image: ubuntu-2404:2024.05.1
347247
docker_layer_caching: true
348248
resource_class: <<parameters.resource_class>>
349249
steps:
350250
- checkout
351-
- build-wheels:
352-
base_packages: << parameters.base_packages >>
251+
- build-wheels
353252
- persist_to_workspace:
354253
root: .
355254
paths:
@@ -366,21 +265,6 @@ jobs:
366265
root: .
367266
paths:
368267
- dist/
369-
release-aws:
370-
executor: default_image
371-
steps:
372-
- checkout
373-
- attach_workspace:
374-
at: .
375-
- aws-cli/setup:
376-
role_arn: $AWS_OIDC_ARN
377-
- run:
378-
name: Release
379-
command: |
380-
uv tool install keyring --with keyrings.codeartifact
381-
export UV_PUBLISH_PASSWORD="$(aws codeartifact get-authorization-token --domain codegen --domain-owner 922078275900 --region us-east-1 --query authorizationToken --output text)"
382-
export UV_PUBLISH_USERNAME=aws
383-
uv publish
384268
release-pypi:
385269
executor: default_image
386270
steps:
@@ -403,119 +287,20 @@ jobs:
403287
channel: "release"
404288
template: success_tagged_deploy_1
405289
workflows:
406-
develop-checks:
407-
jobs:
408-
- hold-parse-tests:
409-
type: approval
410-
filters:
411-
branches:
412-
ignore: develop
413-
- parse-tests:
414-
name: Manual-Parse-Tests
415-
filters:
416-
branches:
417-
ignore: develop
418-
context:
419-
- GHE
420-
requires:
421-
- hold-parse-tests
422-
matrix:
423-
parameters:
424-
extra_repos: [true, false]
425-
# - parse-tests:
426-
# context:
427-
# - GHE
428-
# - slack
429-
# filters:
430-
# branches:
431-
# only: develop
432-
# extra_repos: true
433-
- parse-tests:
434-
name: oss-parse-tests
435-
context:
436-
- GHE
437-
- slack
438-
filters:
439-
branches:
440-
only: develop
441-
extra_repos: false
442-
- oss-codemod-tests:
443-
name: oss-codemod-tests
444-
context:
445-
- GHE
446-
- slack
447-
filters:
448-
branches:
449-
only: develop
450-
matrix:
451-
parameters:
452-
sync_graph: [true, false]
453-
size: [small, large]
454-
pr_checks:
455-
jobs:
456-
- unit-tests
457-
- integration-tests
458-
- hold-codemod-tests:
459-
type: approval
460-
filters:
461-
branches:
462-
ignore: develop
463-
- hold-large-oss-codemod-tests:
464-
type: approval
465-
filters:
466-
branches:
467-
ignore: develop
468-
- codemod-tests:
469-
context:
470-
- GHE
471-
- Codemod
472-
- slack
473-
requires:
474-
- hold-codemod-tests
475-
- pre-commit
476-
- doctests
477-
# - oss-codemod-tests:
478-
# filters:
479-
# branches:
480-
# ignore: develop
481-
# context:
482-
# - GHE
483-
# - slack
484-
# matrix:
485-
# parameters:
486-
# sync_graph: [true, false]
487-
# size: [small]
488-
- oss-codemod-tests:
489-
name: large-oss-codemod-tests
490-
context:
491-
- GHE
492-
- slack
493-
matrix:
494-
parameters:
495-
sync_graph: [true, false]
496-
size: [large]
497-
requires:
498-
- hold-large-oss-codemod-tests
499290
publish-packages:
500291
jobs:
501292
- linux-wheels:
502293
filters:
503294
tags:
504295
only: /^v.*/
505-
base_packages: true
296+
matrix:
297+
parameters:
298+
resource_class: [large, arm.large]
299+
506300
- osx-wheels:
507301
filters:
508302
tags:
509303
only: /^v.*/
510-
- release-aws:
511-
filters:
512-
tags:
513-
only: /^v.*/
514-
context:
515-
- AWS
516-
requires:
517-
- linux-wheels
518-
- osx-wheels
519304
- release-pypi:
520305
filters:
521306
tags:

.gitattributes

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
**/expected_diff.txt filter=lfs diff=lfs merge=lfs -text
21
tests/integration/codemod/repos/extra/*.json filter=lfs diff=lfs merge=lfs -text
3-
**/expected_diff.patch filter=lfs diff=lfs merge=lfs -text
2+
**/test_codegen/expected_diff.patch filter=lfs diff=lfs merge=lfs -text
3+
**/test_codegen/expected_diff.patch.skip filter=lfs diff=lfs merge=lfs -text
4+
**/test_codegen_frontend/expected_diff.patch filter=lfs diff=lfs merge=lfs -text
45
tests/integration/codemod/repos/repos.json filter=lfs diff=lfs merge=lfs -text
56
tests/integration/verified_codemods/** filter=lfs diff=lfs merge=lfs -text
67
.github/disallowed-words.txt filter=lfs diff=lfs merge=lfs -text

0 commit comments

Comments
 (0)