Skip to content

Commit a9a2bf3

Browse files
author
Liudmila Molkova
committed
generate resolved schema and diff for stable and dev versions
1 parent e75969b commit a9a2bf3

File tree

9 files changed

+115466
-1
lines changed

9 files changed

+115466
-1
lines changed

Makefile

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,3 +367,42 @@ generate-schema-next:
367367
--output /home/weaver/target
368368
# --param next_version=$(NEXT_SEMCONV_VERSION)
369369
$(TOOLS_DIR)/scripts/generate-schema-next.sh $(NEXT_SEMCONV_VERSION) $(LATEST_RELEASED_SEMCONV_VERSION) $(TOOLS_DIR)/bin/schema-diff.yaml
370+
371+
SCHEMAS_PATH = $(PWD)/schemas
372+
.PHONY: generate-schema-v2-dev
373+
generate-schema-v2-dev:
374+
$(DOCKER_RUN) --rm \
375+
$(DOCKER_USER_IS_HOST_USER_ARG) \
376+
--mount 'type=bind,source=$(PWD)/internal/tools/scripts,target=/home/weaver/templates,readonly' \
377+
--mount 'type=bind,source=$(PWD)/model,target=/home/weaver/source,readonly' \
378+
--mount 'type=bind,source=$(SCHEMAS_PATH),target=/home/weaver/target' \
379+
$(WEAVER_CONTAINER) registry generate \
380+
--registry=/home/weaver/source \
381+
--templates=/home/weaver/templates \
382+
--param next_version=$(NEXT_SEMCONV_VERSION) \
383+
--config=/home/weaver/templates/registry/schema-v2-weaver.yaml \
384+
. \
385+
/home/weaver/target
386+
387+
# TODO: diff does not have indication about stability, so we can only generate
388+
# dev diff
389+
$(DOCKER_RUN) --rm \
390+
$(DOCKER_USER_IS_HOST_USER_ARG) \
391+
--mount 'type=bind,source=$(PWD)/internal/tools/scripts,target=/home/weaver/templates,readonly' \
392+
--mount 'type=bind,source=$(PWD)/model,target=/home/weaver/source,readonly' \
393+
--mount 'type=bind,source=$(SCHEMAS_PATH),target=/home/weaver/target' \
394+
$(WEAVER_CONTAINER) registry diff \
395+
--registry=/home/weaver/source \
396+
--baseline-registry=https://github.com/open-telemetry/semantic-conventions/archive/refs/tags/v$(LATEST_RELEASED_SEMCONV_VERSION).zip[model] \
397+
--diff-format yaml \
398+
--diff-template /home/weaver/templates/schema-v2-diff \
399+
--output /home/weaver/target
400+
401+
# TODO: these commands should not be necessary:
402+
$(SED) -i 's/semconv_version: unversioned/semconv_version: $(NEXT_SEMCONV_VERSION)/' $(SCHEMAS_PATH)/next-version-dev/schema-diff.yaml
403+
404+
rm -rf $(SCHEMAS_PATH)/${NEXT_SEMCONV_VERSION}-dev
405+
mv $(SCHEMAS_PATH)/next-version-dev $(SCHEMAS_PATH)/${NEXT_SEMCONV_VERSION}-dev
406+
407+
rm -rf $(SCHEMAS_PATH)/${NEXT_SEMCONV_VERSION}
408+
mv $(SCHEMAS_PATH)/next-version $(SCHEMAS_PATH)/${NEXT_SEMCONV_VERSION}

dependencies.Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# Dependabot can keep this file up to date with latest containers.
44

55
# Weaver is used to generate markdown docs, and enforce policies on the model.
6-
FROM otel/weaver:v0.15.3@sha256:a84032d6eb95b81972d19de61f6ddc394a26976c1c1697cf9318bef4b4106976 AS weaver
6+
FROM otel/weaver:v0.15.2@sha256:b13acea09f721774daba36344861f689ac4bb8d6ecd94c4600b4d590c8fb34b9 AS weaver
77

88
# OPA is used to test policies enforced by weaver.
99
FROM openpolicyagent/opa:1.5.1@sha256:7d30d984125161b7f30599c6bdf80a6f2301dbbd526725714c231aad8179e4b9 AS opa
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
templates:
2+
- pattern: schema.j2
3+
filter: .
4+
application_mode: single
5+
file_name: next-version-dev/schema.yaml # how to parametrize this?
6+
- pattern: schema.j2
7+
filter: >
8+
def filter_members:
9+
if type == "array" then
10+
map(select(.stability == "stable") | filter_members)
11+
elif type == "object" then
12+
if has("members") and (.members | type == "array") then
13+
.members |= filter_members
14+
else
15+
.
16+
end
17+
else
18+
.
19+
end;
20+
21+
.groups |= map(
22+
select(
23+
(.stability == "stable") or
24+
(
25+
.type == "attribute_group" and
26+
(.attributes | map(select(.stability == "stable")) | length > 0)
27+
)
28+
)
29+
|
30+
if .attributes then
31+
.attributes |= map(
32+
select(.stability == "stable")
33+
|
34+
if (.type | type == "object") and (.type.members) then
35+
.type |= filter_members
36+
else
37+
.
38+
end
39+
)
40+
else
41+
.
42+
end
43+
)
44+
application_mode: single
45+
file_name: next-version/schema.yaml
46+
47+
whitespace_control:
48+
trim_blocks: true
49+
lstrip_blocks: true
50+
keep_trailing_newline: true
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# TODO: toyaml generates some scrabbled output
2+
{#{{ ctx | toyaml }}#}
3+
4+
{{ ctx | tojson(indent=true) }}
5+
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{{ ctx | toyaml }}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
templates:
2+
- pattern: schema-diff.j2
3+
filter: .
4+
application_mode: single
5+
file_name: next-version-dev/schema-diff.yaml # how to parametrize this?
6+
whitespace_control:
7+
trim_blocks: true
8+
lstrip_blocks: true
9+
keep_trailing_newline: true
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
baseline:
2+
semconv_version: v1.35.0
3+
changes:
4+
events: []
5+
metrics:
6+
- name: metric.otel.sdk.span.ended.count
7+
note: Obsoleted.
8+
type: obsoleted
9+
- name: metric.otel.sdk.span.started
10+
type: added
11+
- name: metric.otel.sdk.span.ended
12+
note: Obsoleted.
13+
type: obsoleted
14+
registry_attributes:
15+
- name: otel.span.parent.origin
16+
type: added
17+
resources: []
18+
spans: []
19+
head:
20+
semconv_version: 1.36.0

0 commit comments

Comments
 (0)