refactor: consolidate tooling, pipeline blueprint, and asset alignment#1
Open
refactor: consolidate tooling, pipeline blueprint, and asset alignment#1
Conversation
2e95d43 to
54aee8f
Compare
- Remove root ontology-management-base submodule (now via recursive init through sl-5-8-asset-tools) - Add Makefile as central command center (OMB pattern) - Space-separated subcommands: make asset zip - OS detection for cross-platform support (Windows + Unix) - Path aliases hiding deep submodule paths - Update .pre-commit-config.yaml to use make validate hook - Update release workflow to use make targets exclusively - Add .github/copilot-instructions.md - Update README.md with new setup/validation instructions Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
54aee8f to
3ad2d8b
Compare
…erhaul Major changes: - Replace uploadedFiles.json with input_manifest.json (envited-x JSON-LD) - Add make generate: end-to-end asset creation pipeline with staging, validation, QC checks, and zip output to generated/ - Add EVES submodule pinned to asset-preparation-input-manifest branch - Modernize release.yml: softprops/action-gh-release@v2 - Cross-platform Makefile: Python-based zip/clean, OS detection - Update sl-5-8-asset-tools to include input_manifest support, venv PATH fix for QC executables, and [qc-deps] extras - Add generated/.gitkeep (contents gitignored, folder tracked) - Complete README rewrite with pipeline documentation Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
- Track generated/input/ as the canonical pipeline blueprint (LFS for .png, .pdf, .xodr binaries) - Add 9 3d_preview JSON files to input manifest for pass-through - Update .gitignore: only ignore generated/output/, allow input/ - Update Makefile: generate reuses existing blueprint, generate clean preserves input/ directory - Remove obsolete generated/.gitkeep Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
Add virtualcitySYSTEMS/opendriveconverter (Java/Gradle) as a submodule under submodules/opendriveconverter to serve as reference for the planned Python re-implementation of the OpenDRIVE to GeoJSON converter. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
Ontology schemas and SHACL shapes are now bundled locally via the ontology-management-base submodule. Only Nominatim reverse geocoding still requires an internet connection. Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
d32170c to
fe0e4d4
Compare
The asset/ folder is replaced by the pipeline-generated output in generated/output/. Submodule pointers updated to latest feature branch commits. Removed opendriveconverter submodule. Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
- Update submodule pointer to ruff migration commit - Make validate gracefully skip when asset/ doesn't exist yet Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
sl-5-8-asset-tools: conditional OMB install for CI EVES: table alignment fix for eves-007 Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
Includes wizard_caller rewrite, SPDX license fix, and SD Creation Wizard submodules. Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
…ct.toml - copilot-instructions.md: replace deleted asset/ folder references with generated/input/ and generated/output/ pipeline workflow - pyproject.toml: remove (only contained stale black/isort config, no Python files in root repo) Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
- manifest_reference.json → manifest.json in Makefile validate + zip targets - hdmap_instance.json → hdmap.json in Makefile validate + zip targets - Update copilot-instructions.md to match new naming Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
- Remove unused ASSET_DIR variable from Makefile - Remove dead staging logic from make generate (require pre-populated input/) - Update README.md: manifest_reference.json -> manifest.json, hdmap_instance.json -> hdmap.json throughout - Update submodule pointer to sl-5-8-asset-tools Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
Instead of duplicating pip install commands for sl-5-8-asset-tools and ontology-management-base, delegate to the submodule's own make setup/install targets. Pass VENV and PYTHON as absolute paths so the submodule uses the root venv. This removes 3 duplicated install blocks and ensures the submodule's Makefile is the single source of truth for its own deps. Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
…t zip - Remove make asset zip (pipeline already creates asset.zip) - Deduplicate generate validate → delegates to make validate - Simplify validate: use file-redirect instead of subprocess.check_call - Simplify clean: use native shell commands instead of inline Python - Update release.yml to use make generate + pipeline-generated zip - Update copilot-instructions.md for new workflow Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
- Switch EVES submodule URL from SSH to HTTPS for CI compatibility - Validate target now loops over all asset directories in generated/output/ instead of only picking dirs[0] Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
Includes pipeline fixes, pathlib migration, examples modernization, and external asset reference support. Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
…eterministic 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: jdsika <carlo.van-driesten@bmw.de>
8d38c32 to
0bf4a52
Compare
Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
0bf4a52 to
eb4da46
Compare
Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
- Replace hyphenated targets (wizard-stop, clean-all) with subcommand groups (wizard stop, clean all) for consistent CLI - Add make wizard and make wizard stop to README and help text - Remove auto-generated 3d_preview files from generated/input/ and input_manifest.json (pipeline generates these from the .xodr) - Update submodule to pick up wizard pre-flight checks and proxy docs Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
- Simplify root generate target to delegate to sl-5-8-asset-tools via INPUT_DIR/OUTPUT_DIR variables (removes duplicated pipeline invocation). - Add Prerequisites section with install instructions for Windows (PowerShell, Git Bash), macOS, and Linux. - Add direct Python invocation examples for Make-free usage (PowerShell). - Add debug logging section with Bash and PowerShell syntax. - Add Podman/Docker Desktop troubleshooting table. - Update Option B (manual pipeline) to show paths work from any CWD. - Add custom INPUT_DIR usage to make help output. - Note make clean all as fix for stale QC checker packages. Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
7529c32 to
d91143b
Compare
- Remove phantom 'make setup qc' step (QC is always installed by make setup) - Fix FAQ: uploadedFiles.json is not auto-created, clarify it is legacy format - Rename 'Debug logging' FAQ heading to question format for consistency - Fix double sl-5-8 setup call during initial venv creation - Update Available Make Targets to match actual Makefile behavior - Update submodule pointer with sl-5-8 doc fixes Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
The generate validate subcommand was a thin alias for make validate, creating two documented ways to do the same thing. Remove the alias and the ifneq guard it required in the validate target. One command, one way: make validate. Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
- Add EVES submodule description to copilot-instructions.md and README.md Repository Structure section — it is the spec defining Simulation Asset structure for the ENVITED-X Dataspace - Fix Known Limitations: QC tools are auto-installed by make setup, not a separate step - Update submodule pointer (dead code cleanup) Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
- Add SHELL := sh on Windows_NT (matches submodule, ensures sh is used even when make is invoked from cmd.exe or PowerShell) - Add install to catch-all filter (prevents 'No rule' error noise) - Remove redundant make -C clean before make -C clean all - Add @: fallback in clean guard (suppresses 'nothing to be done' when make generate clean is run) - Document VENV relative-path assumption - Fix stale comment referencing removed generate validate alias Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
Picks up corporate mirror support for wizard build (MAVEN_SETTINGS, NPM_CONFIG env vars) and Angular font inlining crash fix. Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
Add Input→Output diagram, two-workflow comparison table (automated vs wizard-assisted), and Metadata & Gaia-X section explaining which GX properties are auto-generated and the ENVITED-X wrapper architecture. Update copilot-instructions.md with pipeline stages, Gaia-X integration summary, and the two creation paths. Update FAQ to reference the wizard workflow section instead of the deprecated GaiaX4PLC-AAD provider-tools link. Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
Picks up CI matrix expansion (ubuntu + windows + macOS). Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
- Add .markdownlint.yaml config for consistent Markdown style - Add lint-md / format-md Make targets - Add lint-md pre-commit hook - Fix lint issues in README.md (code block languages, line breaks) - Refine README.md intro for professional tone - Update sl-5-8-asset-tools submodule (markdownlint) Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
Signed-off-by: jdsika <carlo.van-driesten@bmw.de>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Full consolidation of the hd-map-asset-example repository: tooling, pipeline, generated asset structure, and submodule alignment. The sl-5-8-asset-tools pipeline has been overhauled with OMB-backed validation, structured logging, CID-named archives, Gaia-X metadata enrichment, and an opt-in deterministic mode.
Root Repository Changes
Build System & Tooling
Makefileas central command center (setup,generate,validate,clean,help)pre-commithooks with SHACL/JSON-LD validation (replaces black/isort/flake8).flake8and unusedpyproject.toml.gitattributesenforcing LF line endings + LFS tracking rulesmake helpwith debug logging and deterministic mode hintsAsset Structure (EVES-003)
asset/directory (replaced by pipeline-generated output)generated/input/withinput_manifest.json(JSON-LD), LFS-tracked simulation data, media, docs, LICENSEgenerated/output/(gitignored)Submodules
submodules/(sl-5-8-asset-tools, EVES)ontology-management-baseroot pointer (nested inside sl-5-8)CI/CD
release.yml: Python/Make-based pipeline replaces Node.js/zipmake setup && make generate && make validate, uploads CID-named.zipviasoftprops/action-gh-release@v2Documentation
README.mdwith setup/usage/structure docs.github/copilot-instructions.mdsl-5-8-asset-tools Submodule Changes (30 files, +1515 -285)
Validation Overhaul
utils/rdf.py)jsonLD_validatorto a thin OMB wrapper (from ~200 lines to ~50)jsonLD_creator(BFS over imports, filtered to ENVITED-X/Gaia-X namespaces)make validateto auto-discover and validate generated examples (was running OMB test catalog)Pipeline Reporting & Logging
utils/pipeline_reporting.py(~530 lines): stage-oriented output with[01/15] START/OK/FAILformatting, tool-specific summarizers for OMB validation, QC results, GeoJSON conversionutils/log_config.py:SL58_LOG_MODE=debugfor verbose subprocess diagnostics (command lines, stdout/stderr, tracebacks)utils/subprocess.py:CommandResult/CommandErrortypes, renamedlog_outputparameterCID-Named Archives
utils/cid.py: compute CIDv1 (base32, raw, SHA-256) from file contentasset.zipto<CID>.zipin the example directory (one level up from the asset folder).gitignoreupdated withexamples/**/*.zipGaia-X Metadata Enrichment
meta_data_extractor/gaiax.py: extracts license, copyright owner, and resource policy from siblingLICENSEfilesdid:web:registry.gaia-x.eu:Manifest:uuid)Deterministic Mode (Opt-in)
SL58_DETERMINISTIC=1enables reproducible output: same input → same UUIDs, timestamps, ZIP bytes, CIDutils/ids.py: UUID5 seeded bySL58_INPUT_HASH(content hash of all input files) with counter for intra-process uniquenessstructure_creator/main.py:SL58_SOURCE_MTIMEfor generated file timestampscreate_zip(): sorted file iteration + fixed ZIP entry timestampsQC Checker Fixes
qc-opendriveto fork fixing crash on roads without<link>element (upstream PR Handle missing optional road links in contact-point check asam-ev/qc-opendrive#139)qualitychecker_callerOther Fixes
indent=2, was compact one-liners up to 5MB)os.sepin display paths, quoted$(MAKE)for Windowsrunalias, align help text.gitattributesenforcing LF line endingsDiff Stats (vs
main)Root repository
sl-5-8-asset-tools submodule (expanded)
Commits
Known Follow-ups
ASCS-eV/ontology-management-base@mainonce upstream PRasam-ev/qc-opendrive#139is merged