Skip to content

Commit d4d7abe

Browse files
authored
Merge branch 'main' into dependabot/npm_and_yarn/meta_configurator/typescript-5.9.3
2 parents 087b297 + bf88ea4 commit d4d7abe

452 files changed

Lines changed: 33270 additions & 10175 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.

.GITIGNORE

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@ node_modules
22
dist
33
.idea
44
out
5-
auxil
5+
auxil
6+
/meta_configurator/public/test-fixtures/

.github/pull_request_template.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
**What was done:**
2+
3+
**Why:**
4+

.github/workflows/e2e.yml

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,15 @@ name: E2E Tests
22

33
on:
44
push:
5-
branches: [main]
5+
branches: [develop]
6+
paths:
7+
- 'meta_configurator/**'
8+
- '.github/workflows/e2e.yml'
69
pull_request:
7-
branches: [main]
10+
branches: [develop]
11+
paths:
12+
- 'meta_configurator/**'
13+
- '.github/workflows/e2e.yml'
814

915
jobs:
1016
e2e:
@@ -18,7 +24,7 @@ jobs:
1824
uses: actions/checkout@v3
1925

2026
- name: Setup Node.js
21-
uses: actions/setup-node@v3
27+
uses: actions/setup-node@v4
2228
with:
2329
node-version: '18'
2430

@@ -35,7 +41,7 @@ jobs:
3541
uses: actions/cache@v3
3642
with:
3743
path: ~/.cache/ms-playwright
38-
key: ${{ runner.os }}-playwright-${{ hashFiles('package-lock.json') }}
44+
key: ${{ runner.os }}-playwright-${{ hashFiles('meta_configurator/package-lock.json') }}
3945
restore-keys: |
4046
${{ runner.os }}-playwright-
4147
@@ -60,4 +66,4 @@ jobs:
6066
uses: actions/upload-artifact@v4
6167
with:
6268
name: playwright-report
63-
path: ${{ github.workspace }}/meta_configurator/playwright-report/
69+
path: ${{ github.workspace }}/meta_configurator/playwright-report/

.github/workflows/github-pages.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,22 @@ on:
33
push:
44
branches:
55
- main
6+
- develop
67
permissions:
78
contents: write
89
jobs:
910
build-and-deploy:
10-
concurrency: ci-${{ github.ref }} # Recommended if you intend to make multiple deployments in quick succession.
11+
concurrency: ci-${{ github.ref }}
1112
runs-on: ubuntu-latest
1213
steps:
1314
- name: Checkout
14-
uses: actions/checkout@v3
15+
uses: actions/checkout@v6
1516

1617
- name: Install and Build
1718
env:
1819
USE_META_CONFIGURATOR_BASE_PATH: true # Set to true for GitHub Pages deployment
1920
VITE_FRONTEND_HOSTNAME: https://metaconfigurator.github.io/meta-configurator
21+
EXPERIMENTAL: true
2022
run: |
2123
cd meta_configurator
2224
npm ci

.github/workflows/npm-test.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
name: Node.js CI
22

3-
on: [push, workflow_dispatch]
3+
on:
4+
pull_request:
5+
workflow_dispatch:
46

57
jobs:
68
build:
@@ -11,8 +13,6 @@ jobs:
1113
node-version: [18.x]
1214

1315
permissions:
14-
# Give the default GITHUB_TOKEN write permission to commit and push the
15-
# added or changed files to the repository.
1616
contents: write
1717

1818
defaults:
@@ -51,12 +51,12 @@ jobs:
5151
- name: Prettier
5252
run: npm run prettier
5353

54+
# Intentional: CI applies formatting and commits it back so contributors
55+
# do not need to run the formatter manually before every push.
5456
- name: Commit format changes
5557
uses: stefanzweifel/git-auto-commit-action@v4
5658
with:
5759
commit_message: apply formatting changes
5860
branch: ${{ github.head_ref }}
5961
status_options: "--untracked-files=no"
60-
# only changed files in src/ and test/ will be committed
61-
# because otherwise this bot commits node_modules/ and dist/
6262
file_pattern: "*"

.github/workflows/relay-tests.yml

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
name: Relay Tests
2+
3+
on:
4+
pull_request:
5+
paths:
6+
- 'backend/relay/**'
7+
- 'backend/docker-compose.yml'
8+
- 'backend/*.sh'
9+
- 'meta_configurator/e2e/**'
10+
- 'meta_configurator/src/**'
11+
- 'meta_configurator/package.json'
12+
- 'meta_configurator/package-lock.json'
13+
- 'tests/shared/**'
14+
- '.github/workflows/relay-tests.yml'
15+
workflow_dispatch:
16+
17+
jobs:
18+
relay-tests:
19+
name: Relay tests
20+
runs-on: ubuntu-latest
21+
steps:
22+
- uses: actions/checkout@v4
23+
24+
- uses: actions/setup-python@v5
25+
with:
26+
python-version: '3.12'
27+
28+
- name: Install relay dependencies
29+
working-directory: ./backend/relay
30+
run: pip install -r requirements.txt -r requirements-dev.txt
31+
32+
- name: Run relay Python tests
33+
working-directory: ./backend/relay
34+
run: pytest tests/ -v
35+
36+
- name: Show Docker tool versions
37+
run: |
38+
docker version
39+
docker buildx version || true
40+
docker compose version
41+
42+
- name: Run relay Docker smoke tests
43+
run: bash backend/relay/tests/test_docker.sh
44+
45+
- uses: actions/setup-node@v3
46+
with:
47+
node-version: '18'
48+
49+
- name: Cache npm dependencies
50+
uses: actions/cache@v3
51+
with:
52+
path: |
53+
meta_configurator/node_modules
54+
key: ${{ runner.os }}-node-${{ hashFiles('meta_configurator/package-lock.json') }}
55+
restore-keys: |
56+
${{ runner.os }}-node-
57+
58+
- name: Cache Playwright browsers
59+
uses: actions/cache@v3
60+
with:
61+
path: ~/.cache/ms-playwright
62+
key: ${{ runner.os }}-playwright-${{ hashFiles('meta_configurator/package-lock.json') }}
63+
restore-keys: |
64+
${{ runner.os }}-playwright-
65+
66+
- name: Install MetaConfigurator dependencies
67+
working-directory: ./meta_configurator
68+
run: npm ci
69+
70+
- name: Build MetaConfigurator
71+
working-directory: ./meta_configurator
72+
run: npm run build --if-present
73+
74+
- name: Install Playwright browsers
75+
working-directory: ./meta_configurator
76+
run: npx playwright install --with-deps
77+
78+
- name: Start dev server and run relay E2E tests
79+
working-directory: ./meta_configurator
80+
run: npx start-server-and-test dev http://localhost:5173 test:e2e:relay
81+
82+
- name: Upload relay Playwright HTML report
83+
if: always()
84+
uses: actions/upload-artifact@v4
85+
with:
86+
name: playwright-report-relay
87+
path: ${{ github.workspace }}/meta_configurator/playwright-report/
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: Snapshot Sharing Tests
2+
3+
on:
4+
pull_request:
5+
paths:
6+
- 'backend/snapshot_sharing/**'
7+
- '.github/workflows/snapshot-sharing-tests.yml'
8+
workflow_dispatch:
9+
10+
jobs:
11+
snapshot-sharing-tests:
12+
name: Snapshot sharing tests
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- uses: actions/setup-python@v5
18+
with:
19+
python-version: '3.12'
20+
21+
- name: Install snapshot_sharing dependencies
22+
working-directory: ./backend/snapshot_sharing
23+
run: pip install -r requirements.txt -r requirements-dev.txt
24+
25+
- name: Run pytest
26+
working-directory: ./backend/snapshot_sharing
27+
run: pytest tests/ -v
28+
29+
- name: Show Docker tool versions
30+
run: |
31+
docker version
32+
docker buildx version || true
33+
docker compose version
34+
35+
- name: Run snapshot_sharing docker e2e
36+
run: bash backend/snapshot_sharing/tests/test_docker.sh

.github/workflows/tag-version.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Tag Version
2+
on:
3+
push:
4+
branches:
5+
- main
6+
- develop
7+
permissions:
8+
contents: write
9+
jobs:
10+
tag-version:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Checkout
14+
uses: actions/checkout@v6
15+
with:
16+
fetch-depth: 0
17+
18+
- name: Create tag if version is new
19+
run: |
20+
VERSION=$(node -p "require('./meta_configurator/package.json').version")
21+
TAG="v$VERSION"
22+
if git rev-parse "$TAG" >/dev/null 2>&1; then
23+
echo "Tag $TAG already exists, skipping."
24+
else
25+
git tag "$TAG"
26+
git push origin "$TAG"
27+
echo "Created and pushed tag $TAG."
28+
fi

CHANGELOG.md

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# Changelog
2+
3+
All notable changes to MetaConfigurator will be documented in this file.
4+
This changelog begins with version 2.1.0, the release from which semantic versioning was formally adopted.
5+
6+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
7+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
8+
9+
---
10+
11+
## [2.7.0] - 2026-06-17
12+
13+
### Added
14+
15+
- Add support for import of other schema formats and export to other schema formats (XSD, SHACL, LinkML, MD-Models, etc), see [the related documentation](documentation_user/examples/schema_conversion)
16+
- Add copy button for code examples in documentation view
17+
- Add Edit Mode for table view in data tab
18+
19+
### Changed
20+
21+
- New MetaConfigurator logo, created by Devesh Harshad Talsania
22+
23+
## [2.6.0] - 2026-05-31
24+
25+
### Added
26+
27+
- Add `nullable` checkbox in the schema diagram to make it easier to mark fields as nullable without having to edit the raw JSON schema
28+
- Add a relay backend service which can be used to proxy requests to external APIs, e.g. for AI-assisted features, without exposing the API key in the frontend
29+
- Host a relay backend with an API key configured to Helmholtz Blablador to enable AI-assisted features in the public deployment without users needing to configure their own API key (it is still possible to configure a custom endpoint and API key in the frontend or self-host a relay backend)
30+
- Add custom UI component in GUI Editor for fields with a `date` format, showing a date picker instead of a regular text input
31+
- Add new function for sorting all properties in a schema alphabetically (as one time use utility in schema editor and as a sorting option in GUI editor)
32+
- Add custom UI component for references in GUI editor, which suggests all existing definitions in the schema as options
33+
- Add more unit tests
34+
- Add support for entering scientific notations in number fields in GUI editor, as well as for displaying them in scientific notation (value thresholds are configurable in the settings)
35+
36+
### Changed
37+
- The GUI Editor now also highlights the currently selected field visually
38+
- Internal code refactoring and cleanup to remove duplicated code
39+
- Schema violations that involve `oneOf` or `anyOf` children used to be shown by listing all children violations separately. For better visual clarity, they now first get merged into one violation text in a tree form. This explicitly also supports nested schema composition violations.
40+
- Removed XML as a supported data format and instead added an XML import and export function
41+
42+
### Fixed
43+
- Fix typing errors in the code
44+
- Fix `enter` in the GUI editor when editing property names sometimes not resulting in the expected behavior (it added a newline instead of confirming rename in some scenarios)
45+
- Fix RDF context view breadcrumbs not showing the correct path when navigating into nested structures
46+
- Fix auto-expansion of property tree in the GUI editor not working for some nested structures
47+
- Fix component overflow in the UI on mobile devices
48+
49+
## [2.5.0] - 2026-04-22
50+
51+
### Added
52+
53+
- Add next/previous buttons to the search bar for easier navigation through search results
54+
- Add copy/paste support for schema diagrams
55+
56+
## [2.4.0] - 2026-04-15
57+
58+
### Added
59+
60+
- Add RDF Panel to support RDF authoring workflows
61+
- Add JSON to JSON-LD conversion using RML mapping
62+
- Add SPARQL querying support in RDF Panel
63+
- Add Knowledge Graph visualization for RDF data exploration
64+
65+
## [2.3.0] - 2026-04-14
66+
67+
### Changed
68+
69+
- Remove prototypical STML mapping in favor of more powerful Jsonata
70+
- Refactor the code base to use a newly implemented JSON Schema visitor pattern instead of having schema traversal logic implemented in different places
71+
72+
### Fixed
73+
74+
- Fix schema diagram: it now correctly draws multiple edges if a sub-schema defines its own structure and additionally has a reference
75+
76+
## [2.2.0] - 2026-03-27
77+
78+
### Added
79+
80+
- Add word-wrap for text editor
81+
- Add `experimental` tag in the About page for the experimental deployment
82+
- Add workflow to automatically generate a git tag when a PR is merged into `main` or `develop` with an incremented version in the package.json
83+
84+
### Changed
85+
86+
- Update multiple dependencies (picomatch, handlebars, yaml)
87+
88+
## [2.1.0] - 2026-03-25
89+
90+
Initial versioned release. Introduces semantic versioning, a structured branching model (`develop` / `main`), and contribution guidelines.

0 commit comments

Comments
 (0)