Skip to content

Commit 2d53b1a

Browse files
authored
Expand dependency conflict resolution to allow different versions if major-version is compatible (#1573)
1 parent f138f73 commit 2d53b1a

63 files changed

Lines changed: 1575 additions & 340 deletions

File tree

Some content is hidden

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

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/weaver_infer/allowed-external-types.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
# the public API. Ideally this can have a few exceptions as possible.
55
allowed_external_types = [
66
"serde_core::ser::Serialize",
7-
"weaver_semconv::group::GroupSpec",
7+
"weaver_semconv::v2::SemConvSpecV2",
88
"weaver_live_check::Sample",
99
]

crates/weaver_infer/src/lib.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -245,11 +245,12 @@ impl AccumulatedSamples {
245245
},
246246
attributes,
247247
entity_associations: vec![],
248+
requirement_level: None,
248249
common: inferred_common_fields(),
249250
}
250251
})
251252
.collect::<Vec<_>>();
252-
spans.sort_by(|left, right| left.r#type.to_string().cmp(&right.r#type.to_string()));
253+
spans.sort_by_key(|left| left.r#type.to_string());
253254

254255
let mut metrics = self
255256
.metrics
@@ -272,11 +273,12 @@ impl AccumulatedSamples {
272273
unit: metric.unit.clone(),
273274
attributes,
274275
entity_associations: vec![],
276+
requirement_level: None,
275277
common: inferred_common_fields(),
276278
}
277279
})
278280
.collect::<Vec<_>>();
279-
metrics.sort_by(|left, right| left.name.to_string().cmp(&right.name.to_string()));
281+
metrics.sort_by_key(|left| left.name.to_string());
280282

281283
let mut merged_events: HashMap<String, Vec<String>> = self
282284
.events
@@ -311,11 +313,12 @@ impl AccumulatedSamples {
311313
.map(|attribute_name| attribute_or_group_ref(&attribute_name))
312314
.collect(),
313315
entity_associations: vec![],
316+
requirement_level: None,
314317
common: inferred_common_fields(),
315318
}
316319
})
317320
.collect::<Vec<_>>();
318-
events.sort_by(|left, right| left.name.to_string().cmp(&right.name.to_string()));
321+
events.sort_by_key(|left| left.name.to_string());
319322

320323
let mut attributes = attribute_defs.into_values().collect::<Vec<_>>();
321324
attributes.sort_by(|left, right| left.key.cmp(&right.key));

crates/weaver_resolver/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ weaver_diff = { path = "../weaver_diff" }
1717
weaver_semconv = { path = "../weaver_semconv" }
1818
weaver_resolved_schema = { path = "../weaver_resolved_schema" }
1919

20+
semver.workspace = true
2021
thiserror.workspace = true
2122
rayon.workspace = true
2223
serde.workspace = true
Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
1-
groups:
1+
file_format: definition/2
2+
attributes:
3+
- key: registry_a.name
4+
type: string
5+
brief: Name from registry A.
6+
stability: stable
7+
examples: ["A"]
8+
9+
attribute_groups:
210
- id: registry_a.example
3-
type: attribute_group
11+
visibility: public
412
brief: Example attributes from registry A.
13+
stability: stable
514
attributes:
6-
- id: registry_a.name
7-
type: string
8-
brief: Name from registry A.
9-
stability: stable
10-
requirement_level: required
11-
examples: "A"
15+
- ref: registry_a.name
16+
requirement_level: required
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
name: registry_a
22
description: Test registry A for circular dependency testing.
3-
semconv_version: 0.1.0
4-
schema_base_url: https://example.com/registry_a/schemas/
3+
schema_url: https://example.com/registry_a/schemas/0.1.0
54
dependencies:
65
- schema_url: https://example.com/registry_b/schemas/1.0.0
76
registry_path: data/circular-registry-test/registry_b
Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
1-
groups:
1+
file_format: definition/2
2+
attributes:
3+
- key: registry_b.name
4+
type: string
5+
brief: Name from registry B.
6+
stability: stable
7+
examples: ["B"]
8+
9+
attribute_groups:
210
- id: registry_b.example
3-
type: attribute_group
11+
visibility: public
412
brief: Example attributes from registry B.
13+
stability: stable
514
attributes:
6-
- id: registry_b.name
7-
type: string
8-
brief: Name from registry B.
9-
stability: stable
10-
requirement_level: required
11-
examples: "B"
15+
- ref: registry_b.name
16+
requirement_level: required

crates/weaver_resolver/data/circular-registry-test/registry_b/registry_manifest.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
name: registry_b
22
description: Test registry B for circular dependency testing.
3-
semconv_version: 0.1.0
4-
schema_base_url: https://example.com/registry_b/schemas/
3+
schema_url: https://example.com/registry_b/schemas/0.1.0
54
dependencies:
65
- name: registry_a
76
# schema_url: is not necessary here, we're using deprecated, but valid for now `name`

crates/weaver_resolver/data/compatible-version-conflict/main/registry_manifest.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
name: main
22
description: Main Registry
3-
semconv_version: 0.1.0
4-
schema_base_url: https://example.com/main/
3+
schema_url: https://example.com/main/0.1.0
54
dependencies:
65
- schema_url: https://example.com/a/0.1.0
76
registry_path: data/compatible-version-conflict/registry_a
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
file_format: definition/2
2+
imports:
3+
metrics:
4+
- c.metric.1
5+
spans:
6+
- c.span.2

0 commit comments

Comments
 (0)