From d53bc1dfbee2771445e0109924c190c2511a9960 Mon Sep 17 00:00:00 2001 From: dullfig Date: Mon, 19 Jan 2026 22:24:36 -0800 Subject: [PATCH] Fix XSD path for installed package (v0.3.1) Use __file__-based path resolution for envelope.xsd so the schema loads correctly when xml-pipeline is installed via pip. Also: - Add build artifacts to .gitignore - Bump version to 0.3.1 Co-Authored-By: Claude Opus 4.5 --- .gitignore | 5 +++++ pyproject.toml | 2 +- xml_pipeline/__init__.py | 2 +- xml_pipeline/message_bus/steps/envelope_validation.py | 8 ++++++-- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 2dd9d53..a8560ec 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,11 @@ venv/ .venv/ ENV/ +# Build artifacts +build/ +dist/ +*.egg-info/ + # Secrets & config .env .env.local diff --git a/pyproject.toml b/pyproject.toml index 156759d..48ee1bc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ build-backend = "setuptools.build_meta" [project] name = "xml-pipeline" -version = "0.3.0" +version = "0.3.1" description = "Schema-driven XML message bus for multi-agent systems" readme = "README.md" requires-python = ">=3.11" diff --git a/xml_pipeline/__init__.py b/xml_pipeline/__init__.py index 91e8ba4..286c785 100644 --- a/xml_pipeline/__init__.py +++ b/xml_pipeline/__init__.py @@ -2,4 +2,4 @@ xml-pipeline: Tamper-proof nervous system for multi-agent organisms. """ -__version__ = "0.3.0" +__version__ = "0.3.1" diff --git a/xml_pipeline/message_bus/steps/envelope_validation.py b/xml_pipeline/message_bus/steps/envelope_validation.py index b768499..4b2521b 100644 --- a/xml_pipeline/message_bus/steps/envelope_validation.py +++ b/xml_pipeline/message_bus/steps/envelope_validation.py @@ -12,12 +12,16 @@ for diagnostic ). Part of AgentServer v2.1 message pump. """ +from pathlib import Path + from lxml import etree + from xml_pipeline.message_bus.message_state import MessageState # Load envelope.xsd once at module import (startup time) -# In real implementation, move this to a config loader or bus init -_ENVELOPE_XSD = etree.XMLSchema(file="xml_pipeline/schema/envelope.xsd") +# Path is relative to this file: steps/ → message_bus/ → xml_pipeline/ → schema/ +_SCHEMA_PATH = Path(__file__).parent.parent.parent / "schema" / "envelope.xsd" +_ENVELOPE_XSD = etree.XMLSchema(file=str(_SCHEMA_PATH)) async def envelope_validation_step(state: MessageState) -> MessageState: