Skip to content

Commit 39a0df2

Browse files
committed
major re-structuring
1 parent 4ea8f9a commit 39a0df2

86 files changed

Lines changed: 734 additions & 390 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.

schema-conversion-orchestrator/.dockerignore renamed to .dockerignore

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,17 @@ external_converters/node/src/
88
external_converters/node/tsconfig.json
99
external_converters/node/node_modules/
1010

11-
# Standalone output/analysis scripts not used by the service
12-
output_*.py
13-
generate_diagrams.sh
14-
build_converters.sh
11+
# Standalone scripts and generated outputs not used by the service
12+
scripts/
13+
outputs/
14+
eval/output_schemas/
1515

1616
# Test and dev files
1717
tests/
18-
requirements-dev.txt
18+
requirements/dev.txt
1919

2020
# Docker files (not needed inside the image)
21-
Dockerfile
22-
docker-compose*.yml
21+
deploy/docker/
2322
.dockerignore
2423

2524
# Python bytecode

.gitignore

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -208,16 +208,17 @@ __marimo__/
208208

209209
# Node modules
210210
/node-converter/node_modules/
211-
/schema-conversion-orchestrator/node_modules/
211+
/node_modules/
212212

213213
# Project-specific
214+
.DS_Store
214215
eval/output_schemas/
215-
schema-conversion-orchestrator/external_converters/node/node_modules/
216+
external_converters/node/node_modules/
217+
external_converters/java/dependency-reduced-pom.xml
218+
external_converters/java/original-converter.jar
219+
external_converters/java/converter.jar
216220

217221
# IDEs
218222
.idea/
219-
/outputs/*
220-
/schema-conversion-orchestrator/external_converters/java/original-converter.jar
221-
/schema-conversion-orchestrator/external_converters/java/dependency-reduced-pom.xml
223+
/artifacts/
222224
/eval/conversion_matrix.png
223-
/schema-conversion-orchestrator/external_converters/java/converter.jar

README.md

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,28 +30,32 @@ cd universal-schema-converter
3030
#### Java
3131

3232
```bash
33-
cd schema-conversion-orchestrator/external_converters/java
34-
mvn clean package
33+
mvn -f external_converters/java/pom.xml clean package
3534
```
3635

3736
Result: `target/converter.jar`
3837

3938
#### Node
4039

4140
```bash
42-
cd schema-conversion-orchestrator/external_converters/node
43-
npm install
44-
npm run build
41+
npm --prefix external_converters/node install
42+
npm --prefix external_converters/node run build
4543
```
4644

4745
Result: `dist/index.js`
4846

4947
### 3. Build and Run the Orchestrator
5048

5149
```bash
52-
cd schema-conversion-orchestrator
53-
pip install -r requirements.txt
54-
python3 app.py
50+
pip install -r requirements/runtime.txt
51+
PYTHONPATH=src python3 -m schema_conversion_orchestrator.app
52+
```
53+
54+
From the repository root, use:
55+
56+
```bash
57+
scripts/build.sh
58+
scripts/run.sh
5559
```
5660

5761
### 3. Test the System
@@ -106,3 +110,6 @@ If a path fails due to a certain edge, remove all paths which include this edge
106110
## 📜 License
107111

108112
MIT License — feel free to use, contribute, and share.
113+
114+
Third-party dependency and bundled converter notices are documented in
115+
[THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).

THIRD_PARTY_NOTICES.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Third-Party Notices
2+
3+
Last reviewed: 2026-06-03.
4+
5+
This project is licensed under [LICENSE](LICENSE). Ordinary source dependencies
6+
are declared in the package manager files:
7+
8+
- Python: `requirements/runtime.txt`, `requirements/dev.txt`
9+
- Node: `external_converters/node/package.json`,
10+
`external_converters/node/package-lock.json`
11+
- Java/Maven: `external_converters/java/pom.xml`
12+
13+
This notice file is limited to third-party artifacts that are bundled, shaded,
14+
vendored, or otherwise easy to miss from the normal dependency declarations.
15+
16+
## Bundled Artifacts
17+
18+
### ROBOT
19+
20+
`external_converters/robot/robot.jar` is bundled and used as an external Java
21+
process for OWL/OBO conversions.
22+
23+
ROBOT is distributed by the OBO Library project. Public project documentation
24+
and the ROBOT paper report ROBOT as BSD-3-Clause licensed:
25+
26+
- https://robot.obolibrary.org/
27+
- https://pmc.ncbi.nlm.nih.gov/articles/PMC6664714/
28+
29+
Before distributing binaries or Docker images, confirm the license for the exact
30+
ROBOT JAR version bundled in this repository and include any required license
31+
text or notices with the release artifact.

build.sh

Lines changed: 0 additions & 9 deletions
This file was deleted.

build_subpackages.sh

Lines changed: 0 additions & 10 deletions
This file was deleted.
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,14 @@ RUN apt-get update && apt-get install -y \
1010
&& rm -rf /var/lib/apt/lists/*
1111

1212
WORKDIR /app
13+
ENV PYTHONPATH=/app/src
1314

1415
# Install Python dependencies first (layer-cached separately from app code)
15-
COPY requirements.txt .
16+
COPY requirements/runtime.txt requirements.txt
1617
RUN pip install --no-cache-dir -r requirements.txt
1718

1819
# Copy Python application
19-
COPY *.py ./
20+
COPY src/ ./src/
2021

2122
# Copy external converters (JARs, compiled Node dist, robot.jar)
2223
COPY external_converters/ ./external_converters/
@@ -34,4 +35,4 @@ HEALTHCHECK --interval=30s --timeout=10s --start-period=120s --retries=3 \
3435
CMD curl -f http://localhost:5002/health || exit 1
3536

3637
# Use gunicorn with a single sync worker; 120 s timeout covers slow conversions
37-
CMD ["gunicorn", "--bind", "0.0.0.0:5002", "--workers", "1", "--timeout", "120", "wsgi:application"]
38+
CMD ["gunicorn", "--bind", "0.0.0.0:5002", "--workers", "1", "--timeout", "120", "schema_conversion_orchestrator.wsgi:application"]

schema-conversion-orchestrator/docker-compose.https.yml renamed to deploy/docker/docker-compose.https.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@
1010
#
1111
# Deploy:
1212
# cp .env.example .env # edit BASE_DOMAIN and LETSENCRYPT_EMAIL
13-
# docker compose -f docker-compose.https.yml up -d --build
13+
# docker compose -f deploy/docker/docker-compose.https.yml up -d --build
1414

1515
services:
1616
schema-converter:
1717
container_name: schema_converter
18-
build: .
18+
build:
19+
context: ../..
20+
dockerfile: deploy/docker/Dockerfile
1921
expose:
2022
- "5002"
2123
restart: unless-stopped

schema-conversion-orchestrator/docker-compose.yml renamed to deploy/docker/docker-compose.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,15 @@
77
# meta-configurator/backend/docker-compose.yml.
88
#
99
# Deploy:
10-
# docker compose up -d --build
10+
# docker compose -f deploy/docker/docker-compose.yml up -d --build
1111
# curl http://localhost:5002/health # → {"status":"ok"}
1212

1313
services:
1414
schema-converter:
1515
container_name: schema_converter
16-
build: .
16+
build:
17+
context: ../..
18+
dockerfile: deploy/docker/Dockerfile
1719
ports:
1820
- "${SCHEMA_CONVERTER_PORT:-5002}:5002"
19-
restart: unless-stopped
21+
restart: unless-stopped

schema-conversion-orchestrator/external_converters/java/pom.xml renamed to external_converters/java/pom.xml

File renamed without changes.

0 commit comments

Comments
 (0)