Skip to content

Commit 8d38c32

Browse files
committed
feat: overhaul asset pipeline — OMB validation, structured logging, deterministic mode
- Update sl-5-8-asset-tools submodule (OMB validation, pipeline reporting, CID archives, Gaia-X enrichment, deterministic mode, QC fork pin) - Add .gitattributes enforcing LF line endings - Harmonize Makefile with sl-5-8: aligned help, debug/deterministic hints - Update README for new pipeline stages and CID-named output Signed-off-by: Q413005 <Q413005@bmwgroup.net> Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
1 parent 542c469 commit 8d38c32

4 files changed

Lines changed: 360 additions & 344 deletions

File tree

.gitattributes

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
# Git LFS – track large binary assets in generated/input/
1+
# Enforce LF line endings for all text files
2+
* text=auto eol=lf
3+
4+
# Git LFS - track large binary assets in generated/input/
25
generated/input/**/*.png filter=lfs diff=lfs merge=lfs -text
36
generated/input/**/*.pdf filter=lfs diff=lfs merge=lfs -text
47
generated/input/**/*.xodr filter=lfs diff=lfs merge=lfs -text

Makefile

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,15 @@ ifeq ($(OS),Windows_NT)
1313
VENV_BIN := $(VENV)/Scripts
1414
PYTHON ?= $(VENV_BIN)/python.exe
1515
BOOTSTRAP_PYTHON ?= python
16+
ACTIVATE_SCRIPT := $(VENV_BIN)/activate
17+
ACTIVATE_HINT := use the activation script under $(VENV_BIN) for your shell
1618
else
1719
VENV_BIN := $(VENV)/bin
1820
PYTHON ?= $(VENV_BIN)/python3
1921
BOOTSTRAP_PYTHON ?= python3
22+
ACTIVATE_SCRIPT := $(VENV_BIN)/activate
23+
ACTIVATE_HINT := source $(ACTIVATE_SCRIPT)
2024
endif
21-
ACTIVATE_SCRIPT := $(VENV_BIN)/activate
2225

2326
# Generated asset directory
2427
GENERATED_DIR := generated
@@ -57,14 +60,16 @@ ifeq ($(SUBCMD),qc)
5760
@"$(PYTHON)" -m pip install poetry-core --quiet 2>/dev/null || true
5861
@"$(PYTHON)" -m pip install --no-deps \
5962
"asam-qc-baselib@git+https://github.com/asam-ev/qc-baselib-py@main" \
60-
"asam-qc-opendrive@git+https://github.com/asam-ev/qc-opendrive@main" \
63+
"asam-qc-opendrive@git+https://github.com/jdsika/qc-opendrive@fix-contact-point-missing-road-link" \
6164
"asam-qc-openscenarioxml@git+https://github.com/asam-ev/qc-openscenarioxml@main" \
6265
"openmsl-qc-opendrive@git+https://github.com/openMSL/sl-5-9-openmsl-qc-opendrive@main"
66+
# NOTE: qc-opendrive is pinned to a fork pending upstream PR asam-ev/qc-opendrive#139.
67+
# Switch back to @main once the PR is merged.
6368
@echo "[OK] Quality checkers installed"
6469
else
65-
@$(MAKE) -C "$(ASSET_TOOLS)" setup VENV="$(CURDIR)/$(VENV)" PYTHON="$(CURDIR)/$(PYTHON)"
70+
@"$(MAKE)" -C "$(ASSET_TOOLS)" setup VENV="$(CURDIR)/$(VENV)" PYTHON="$(CURDIR)/$(PYTHON)"
6671
@"$(PYTHON)" -m pre_commit install --allow-missing-config >/dev/null 2>&1 || true
67-
@echo "[OK] Setup complete. Activate with: source $(ACTIVATE_SCRIPT)"
72+
@echo "[OK] Setup complete. Activate with: $(ACTIVATE_HINT)"
6873
endif
6974

7075
$(PYTHON):
@@ -73,12 +78,12 @@ $(PYTHON):
7378
@"$(PYTHON)" -m pip install --upgrade pip
7479

7580
$(ACTIVATE_SCRIPT): $(PYTHON)
76-
@$(MAKE) -C "$(ASSET_TOOLS)" setup VENV="$(CURDIR)/$(VENV)" PYTHON="$(CURDIR)/$(PYTHON)"
81+
@"$(MAKE)" -C "$(ASSET_TOOLS)" setup VENV="$(CURDIR)/$(VENV)" PYTHON="$(CURDIR)/$(PYTHON)"
7782
@touch "$(ACTIVATE_SCRIPT)"
7883

7984
install:
8085
$(call check_dev_setup)
81-
@$(MAKE) -C "$(ASSET_TOOLS)" install VENV="$(CURDIR)/$(VENV)" PYTHON="$(CURDIR)/$(PYTHON)"
86+
@"$(MAKE)" -C "$(ASSET_TOOLS)" install VENV="$(CURDIR)/$(VENV)" PYTHON="$(CURDIR)/$(PYTHON)"
8287
@echo "[OK] Install complete"
8388

8489
# ── Lint & Format ────────────────────────────────────────────────────
@@ -123,7 +128,7 @@ ifeq ($(SUBCMD),clean)
123128
@"$(PYTHON)" -c "import shutil; shutil.rmtree('$(GEN_OUTPUT)', ignore_errors=True)"
124129
@echo "[OK] Generated output removed (input/ blueprint preserved)"
125130
else ifeq ($(SUBCMD),validate)
126-
@$(MAKE) validate
131+
@"$(MAKE)" validate
127132
else
128133
$(call check_dev_setup)
129134
@"$(PYTHON)" -c "\
@@ -158,18 +163,26 @@ endif
158163
help:
159164
@echo "hd-map-asset-example -- Available Commands"
160165
@echo ""
161-
@echo " make setup Create venv and install all dependencies"
162-
@echo " make setup qc Also install quality checker tools (optional, slow)"
163-
@echo " make install Install packages"
166+
@echo " make setup Create venv and install all dependencies"
167+
@echo " make setup qc Also install quality checker tools (optional, slow)"
168+
@echo " make install Install packages"
164169
@echo ""
165-
@echo " make generate Run full pipeline: .xodr -> generated/ asset + zip"
166-
@echo " make generate validate Validate the generated asset"
167-
@echo " make generate clean Remove generated/output/ directory"
170+
@echo " make generate Run full pipeline: .xodr -> generated/ asset + zip"
171+
@echo " make generate validate Validate the generated asset"
172+
@echo " make generate clean Remove generated/output/ directory"
168173
@echo ""
169-
@echo " make lint Lint (validates asset JSON-LD)"
170-
@echo " make validate Validate generated/output/ asset against SHACL"
174+
@echo " make lint Lint (validates asset JSON-LD)"
175+
@echo " make validate Validate generated/output/ asset against SHACL"
171176
@echo ""
172-
@echo " make clean Remove all build artifacts, caches, and generated/"
177+
@echo " make clean Remove all build artifacts, caches, and generated/"
178+
@echo ""
179+
@echo "Debug logging:"
180+
@echo " SL58_LOG_MODE=debug make generate"
181+
@echo " Shows full subprocess command lines, stdout/stderr, and tracebacks."
182+
@echo ""
183+
@echo "Deterministic mode (reproducible output):"
184+
@echo " SL58_DETERMINISTIC=1 make generate"
185+
@echo " Same input files produce identical UUIDs, timestamps, and CID."
173186

174187
# ── Catch-all for subcommand arguments ───────────────────────────────
175188
ifneq ($(filter setup generate,$(firstword $(MAKECMDGOALS))),)

0 commit comments

Comments
 (0)