Skip to content

Commit 6d4486a

Browse files
authored
Merge pull request #2470 from newrelic/dynamodb-range
Optimize verification ranges for AWS DynamoDB and S3 SDKs
2 parents e6cdd8a + 4175a6e commit 6d4486a

File tree

2 files changed

+118
-38
lines changed

2 files changed

+118
-38
lines changed

instrumentation/aws-java-sdk-dynamodb-2.15.34/build.gradle

Lines changed: 59 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,65 @@ jar {
2424
}
2525

2626
verifyInstrumentation {
27-
passes 'software.amazon.awssdk:dynamodb:[2.1.0,)'
28-
exclude 'software.amazon.awssdk:dynamodb:2.17.200' // this version failed the test, but the next one works again.
27+
/*
28+
This is the original verifier range prior to this update.
29+
Previously it was simply "passes"; this changes it to
30+
the standard "passOnly" method.
31+
*/
32+
passesOnly 'software.amazon.awssdk:dynamodb:[2.1.0,)'
33+
34+
/*
35+
Now, exclude the ranges we know have passed verification
36+
previously. We set the range such that the last revision
37+
of each minor version will still get verified.
38+
39+
For the last known minor version, we leave the verify
40+
range open ended to catch any new versions released
41+
(including any new major/minor versions). The verify
42+
ranges will probably need to be manually inspected
43+
every so often to keep the task runtime in check.
44+
45+
This dramatically reduces the runtime of the verification
46+
task. For this module, there were over 1500 artifacts that
47+
were being downloaded for each verification - AWS seems to
48+
enjoy releasing new revisions of SDK artifacts every few days.
49+
50+
This pattern can be applied to any module that suffers from
51+
large numbers of artifacts (looking at anything AWS related).
52+
*/
53+
excludeRegex ".*preview.*"
54+
exclude 'software.amazon.awssdk:dynamodb:[2.1.0,2.1.3]'
55+
exclude 'software.amazon.awssdk:dynamodb:[2.3.0,2.3.8]'
56+
exclude 'software.amazon.awssdk:dynamodb:[2.4.0,2.4.16]'
57+
exclude 'software.amazon.awssdk:dynamodb:[2.5.0,2.5.70]'
58+
exclude 'software.amazon.awssdk:dynamodb:[2.6.0,2.6.4]'
59+
exclude 'software.amazon.awssdk:dynamodb:[2.7.0,2.7.35]'
60+
exclude 'software.amazon.awssdk:dynamodb:[2.8.0,2.8.6]'
61+
exclude 'software.amazon.awssdk:dynamodb:[2.9.0,2.9.25]'
62+
exclude 'software.amazon.awssdk:dynamodb:[2.10.0,2.10.90]'
63+
exclude 'software.amazon.awssdk:dynamodb:[2.11.0,2.11.13]'
64+
exclude 'software.amazon.awssdk:dynamodb:[2.13.0,2.13.75]'
65+
exclude 'software.amazon.awssdk:dynamodb:[2.14.0,2.14.27]'
66+
exclude 'software.amazon.awssdk:dynamodb:[2.15.0,2.15.81]'
67+
exclude 'software.amazon.awssdk:dynamodb:[2.16.0,2.16.103]'
68+
exclude 'software.amazon.awssdk:dynamodb:[2.17.0,2.17.294]'
69+
exclude 'software.amazon.awssdk:dynamodb:[2.18.0,2.18.40]'
70+
exclude 'software.amazon.awssdk:dynamodb:[2.19.0,2.19.32]'
71+
exclude 'software.amazon.awssdk:dynamodb:[2.20.0,2.20.161]'
72+
exclude 'software.amazon.awssdk:dynamodb:[2.21.0,2.21.45]'
73+
exclude 'software.amazon.awssdk:dynamodb:[2.22.0,2.22.12]'
74+
exclude 'software.amazon.awssdk:dynamodb:[2.23.0,2.23.20]'
75+
exclude 'software.amazon.awssdk:dynamodb:[2.24.0,2.24.12]'
76+
exclude 'software.amazon.awssdk:dynamodb:[2.25.0,2.25.69]'
77+
exclude 'software.amazon.awssdk:dynamodb:[2.26.0,2.26.30]'
78+
exclude 'software.amazon.awssdk:dynamodb:[2.27.0,2.27.23]'
79+
exclude 'software.amazon.awssdk:dynamodb:[2.28.0,2.28.28]'
80+
exclude 'software.amazon.awssdk:dynamodb:[2.29.0,2.29.51]'
81+
exclude 'software.amazon.awssdk:dynamodb:[2.30.0,2.30.37]'
82+
exclude 'software.amazon.awssdk:dynamodb:[2.31.0,2.31.77]'
83+
84+
// The next excludes will be 2.32.x -- Leaving this out so the verifier actually
85+
// has something to run against.
2986
}
3087

3188
task copyNativeDeps(type: Copy) {

instrumentation/aws-java-sdk-s3-2.0/build.gradle

Lines changed: 59 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -13,44 +13,67 @@ dependencies {
1313

1414
}
1515

16-
// This long list of "passes" versions is designed to only verify the last revision
17-
// for each minor version. This was required since some minor versions had hundreds
18-
// of revisions which was causing the verification task to take hours.
19-
// The only uncapped verification is the most recent minor version. This may need
20-
// to be revisited as AWS release more minor versions.
2116
verifyInstrumentation {
22-
passes 'software.amazon.awssdk:s3:2.1.4'
23-
passes 'software.amazon.awssdk:s3:2.2.0'
24-
passes 'software.amazon.awssdk:s3:2.3.9'
25-
passes 'software.amazon.awssdk:s3:2.4.17'
26-
passes 'software.amazon.awssdk:s3:2.5.71'
27-
passes 'software.amazon.awssdk:s3:2.6.5'
28-
passes 'software.amazon.awssdk:s3:2.7.36'
29-
passes 'software.amazon.awssdk:s3:2.8.6'
30-
passes 'software.amazon.awssdk:s3:2.9.26'
31-
passes 'software.amazon.awssdk:s3:2.10.91'
32-
passes 'software.amazon.awssdk:s3:2.11.14'
33-
passes 'software.amazon.awssdk:s3:2.12.0'
34-
passes 'software.amazon.awssdk:s3:2.13.76'
35-
passes 'software.amazon.awssdk:s3:2.14.28'
36-
passes 'software.amazon.awssdk:s3:2.15.82'
37-
passes 'software.amazon.awssdk:s3:2.16.104'
38-
passes 'software.amazon.awssdk:s3:2.17.295'
39-
passes 'software.amazon.awssdk:s3:2.18.41'
40-
passes 'software.amazon.awssdk:s3:2.19.31'
41-
passes 'software.amazon.awssdk:s3:2.20.162'
42-
passes 'software.amazon.awssdk:s3:2.21.46'
43-
passes 'software.amazon.awssdk:s3:2.22.13'
44-
passes 'software.amazon.awssdk:s3:2.23.21'
45-
passes 'software.amazon.awssdk:s3:2.24.13'
46-
passes 'software.amazon.awssdk:s3:2.25.70'
47-
passes 'software.amazon.awssdk:s3:2.26.31'
48-
passes 'software.amazon.awssdk:s3:2.27.24'
49-
passes 'software.amazon.awssdk:s3:2.28.29'
50-
passes 'software.amazon.awssdk:s3:2.29.52'
51-
passes 'software.amazon.awssdk:s3:2.30.38'
52-
passes 'software.amazon.awssdk:s3:[2.31.0,)'
17+
/*
18+
This is the original verifier range prior to this update.
19+
Previously it was simply "passes"; this changes it to
20+
the standard "passOnly" method.
21+
*/
22+
passesOnly 'software.amazon.awssdk:s3:[2.1.0,)'
23+
24+
/*
25+
Now, exclude the ranges we know have passed verification
26+
previously. We set the range such that the last revision
27+
of each minor version will still get verified.
28+
29+
30+
For the last known minor version, we leave the verify
31+
range open ended to catch any new versions released
32+
(including any new major/minor versions). The verify
33+
ranges will probably need to be manually inspected
34+
every so often to keep the task runtime in check.
35+
36+
This dramatically reduces the runtime of the verification
37+
task. For this module, there were over 1500 artifacts that
38+
were being downloaded for each verification - AWS seems to
39+
enjoy releasing new revisions of SDK artifacts every few days.
40+
41+
This pattern can be applied to any module that suffers from
42+
large numbers of artifacts (looking at anything AWS related).
43+
*/
5344
excludeRegex ".*preview.*"
45+
exclude 'software.amazon.awssdk:s3:[2.1.0,2.1.3]'
46+
exclude 'software.amazon.awssdk:s3:[2.3.0,2.3.8]'
47+
exclude 'software.amazon.awssdk:s3:[2.4.0,2.4.16]'
48+
exclude 'software.amazon.awssdk:s3:[2.5.0,2.5.70]'
49+
exclude 'software.amazon.awssdk:s3:[2.6.0,2.6.4]'
50+
exclude 'software.amazon.awssdk:s3:[2.7.0,2.7.35]'
51+
exclude 'software.amazon.awssdk:s3:[2.8.0,2.8.5]'
52+
exclude 'software.amazon.awssdk:s3:[2.9.0,2.9.25]'
53+
exclude 'software.amazon.awssdk:s3:[2.10.0,2.10.90]'
54+
exclude 'software.amazon.awssdk:s3:[2.11.0,2.11.13]'
55+
exclude 'software.amazon.awssdk:s3:[2.13.0,2.13.75]'
56+
exclude 'software.amazon.awssdk:s3:[2.14.0,2.14.27]'
57+
exclude 'software.amazon.awssdk:s3:[2.15.0,2.15.81]'
58+
exclude 'software.amazon.awssdk:s3:[2.16.0,2.16.103]'
59+
exclude 'software.amazon.awssdk:s3:[2.17.0,2.17.294]'
60+
exclude 'software.amazon.awssdk:s3:[2.18.0,2.18.40]'
61+
exclude 'software.amazon.awssdk:s3:[2.19.0,2.19.30]'
62+
exclude 'software.amazon.awssdk:s3:[2.20.0,2.20.161]'
63+
exclude 'software.amazon.awssdk:s3:[2.21.0,2.21.45]'
64+
exclude 'software.amazon.awssdk:s3:[2.22.0,2.22.12]'
65+
exclude 'software.amazon.awssdk:s3:[2.23.0,2.23.20]'
66+
exclude 'software.amazon.awssdk:s3:[2.24.0,2.24.12]'
67+
exclude 'software.amazon.awssdk:s3:[2.25.0,2.25.69]'
68+
exclude 'software.amazon.awssdk:s3:[2.26.0,2.26.30]'
69+
exclude 'software.amazon.awssdk:s3:[2.27.0,2.27.23]'
70+
exclude 'software.amazon.awssdk:s3:[2.28.0,2.28.28]'
71+
exclude 'software.amazon.awssdk:s3:[2.29.0,2.29.51]'
72+
exclude 'software.amazon.awssdk:s3:[2.30.0,2.30.37]'
73+
exclude 'software.amazon.awssdk:s3:[2.31.0,2.31.77]'
74+
75+
// The next excludes will be 2.32.x -- Leaving this out so the verifier actually
76+
// has something to run against.
5477
}
5578

5679
site {

0 commit comments

Comments
 (0)