Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ services:
skosmos-dev:
container_name: evoks_${INSTANCE_NAME:-defaultinstance}_skosmos-dev
build:
context: https://github.com/NatLibFi/Skosmos.git#v2.17
context: https://github.com/NatLibFi/Skosmos.git#v3.0
dockerfile: dockerfiles/Dockerfile.ubuntu
Comment on lines +164 to 165
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check if v3.0 tag exists in Skosmos repository
echo "=== Checking Skosmos repository tags ==="
git ls-remote --tags https://github.com/NatLibFi/Skosmos.git 2>/dev/null | grep -E 'v3\.' | head -20

Repository: kit-data-manager/EVOKS

Length of output: 671


🌐 Web query:

Skosmos v3.0 release breaking changes migration

💡 Result:

Skosmos v3.0 (released Dec 10, 2025) — breaking changes & migration checklist

1) Runtime/build prerequisites

  • PHP: Skosmos 3 requires PHP 8.1+ (8.1–8.4 supported). [1]
  • Front-end build: the UI was reimplemented with Bootstrap 5 + Vue.js 3 (Cypress tests added). If you deploy from source (not Docker), expect updated front-end tooling compared to Skosmos 2. [2]

2) Configuration (config.ttl) breaking changes

Skosmos 3 is still configured via config.ttl (copy from config.ttl.dist). [3]

Renamed properties (update your config.ttl):

  • skosmos:uiHoneypotEnabledskosmos:feedbackHoneypotEnabled [4]
  • skosmos:uiHoneypotTimeskosmos:feedbackHoneypotTime [4]
    (These new names are also reflected in the Skosmos 3 configuration docs.) [3]

3) Plugin configuration breaking changes

Skosmos 3 simplifies plugin enablement:

  • Global plugins: use only skosmos:globalPlugins on the global skosmos:Configuration. [5]
  • Vocabulary plugins: use only skosmos:vocabularyPlugins on each skosmos:Vocabulary. [5]

Removed/obsolete plugin mechanisms from Skosmos 2 (must be removed from configs):

  • Vocabulary-level skosmos:hasParamPlugin and skosmos:hasPlugin are removed in Skosmos 3. [5]
  • Legacy activation/config options skosmos:useParamPlugin and standalone skosmos:usePlugin are dropped; configuration is now only via skosmos:globalPlugins and skosmos:vocabularyPlugins. [4]

4) Translations workflow changed

  • Skosmos 3 switched its translation framework to Lokalise (process differs from Skosmos 2). [1]

If you share your current config.ttl (especially plugin bits), I can point out the exact lines to change for a clean Skosmos 2 → 3.0 migration.


🌐 Web query:

Skosmos v3.0 configuration file format changes

💡 Result:

Skosmos v3.0 keeps configuration in a single Turtle (RDF) file named config.ttl, organized as: (1) global configuration + (2) vocabulary-specific configuration (vocabularies are declared as RDF resources in the same file). Global settings are given as properties on an instance of skosmos:Configuration, and each vocabulary is a skosmos:Vocabulary instance (a void:Dataset). [1]

What did change in the “configuration format / layout” going into Skosmos 3 is mainly the cleanup/overhaul of legacy configuration and customization mechanisms (called out as “Skosmos 3 configuration overhaul” in the 3.0-beta.1 release notes). [2] In particular:

  • UI customization moved away from Skosmos 2’s view/*.inc Twig-snippets (e.g., about.inc, footer.inc, left.inc, right.inc) [3] to Skosmos 3’s custom-templates/ mechanism, where you drop .twig templates into predefined slot directories (and can override built-in templates by copying them from src/view/). [4]
  • Plugin configuration is expressed in config.ttl using properties like skosmos:globalPlugins and skosmos:vocabularyPlugins. [1]

Sources:
[1] Skosmos wiki: “Configuration” (Skosmos 3, config.ttl, skosmos:Configuration, skosmos:Vocabulary) (github-wiki-see.page)
[2] Skosmos 3.0-beta.1 release notes (“Skosmos 3 configuration overhaul”) (github.com)
[3] Skosmos wiki: “Configuration for Skosmos 2” (about.inc, footer.inc, etc.) (github.com)
[4] Skosmos wiki: “Custom templates” (Skosmos 3 custom-templates/*.twig slots + overrides) (github-wiki-see.page)

Citations:


🏁 Script executed:

#!/bin/bash
# Check if dockerfile exists in v3.0 by examining the remote repo structure
echo "=== Checking for dockerfiles/Dockerfile.ubuntu in v3.0 ==="
git ls-remote --heads https://github.com/NatLibFi/Skosmos.git | head -1 && \
git archive --remote=https://github.com/NatLibFi/Skosmos.git v3.0 | \
tar -tzf - | grep -E '^dockerfiles/Dockerfile\.ubuntu$' && echo "✓ File exists" || echo "✗ File not found"

Repository: kit-data-manager/EVOKS

Length of output: 367


🏁 Script executed:

#!/bin/bash
# Try shallow clone to verify dockerfile
echo "=== Cloning v3.0 (shallow, dockerfile check only) ==="
TEMP_DIR=$(mktemp -d)
git clone --depth 1 --branch v3.0 https://github.com/NatLibFi/Skosmos.git "$TEMP_DIR" 2>&1 | grep -v "^Cloning"

if [ -f "$TEMP_DIR/dockerfiles/Dockerfile.ubuntu" ]; then
  echo "✓ dockerfiles/Dockerfile.ubuntu exists in v3.0"
  echo ""
  echo "=== First 20 lines of Dockerfile.ubuntu ==="
  head -20 "$TEMP_DIR/dockerfiles/Dockerfile.ubuntu"
else
  echo "✗ dockerfiles/Dockerfile.ubuntu NOT found in v3.0"
  echo ""
  echo "=== Available dockerfiles ==="
  ls -la "$TEMP_DIR/dockerfiles/" 2>/dev/null || echo "No dockerfiles directory"
fi
rm -rf "$TEMP_DIR"

Repository: kit-data-manager/EVOKS

Length of output: 1366


Update config.ttl for Skosmos v3.0 breaking changes.

The v3.0 dockerfile path is valid, but this major version bump includes breaking changes to config.ttl that must be addressed:

  1. Property renames (if present in your config files):

    • skosmos:uiHoneypotEnabledskosmos:feedbackHoneypotEnabled
    • skosmos:uiHoneypotTimeskosmos:feedbackHoneypotTime
  2. Plugin configuration overhaul (if using plugins):

    • Remove obsolete properties: skosmos:hasParamPlugin, skosmos:hasPlugin, skosmos:useParamPlugin, skosmos:usePlugin
    • Use only: skosmos:globalPlugins (on global Configuration) and skosmos:vocabularyPlugins (per Vocabulary)
  3. UI customization (if you've customized the interface):

    • Migrate from Twig snippets (about.inc, footer.inc, etc.) to custom-templates/*.twig mechanism

Review and update ./skosmos-dev/config.ttl and ./skosmos-live/config.ttl accordingly before deploying.

Also applies to: 199-200

🤖 Prompt for AI Agents
In `@docker-compose.yml` around lines 164 - 165, The Skosmos v3.0 docker image in
docker-compose.yml is fine but v3.0 introduces breaking changes in config.ttl;
update ./skosmos-dev/config.ttl and ./skosmos-live/config.ttl to rename
properties skosmos:uiHoneypotEnabled→skosmos:feedbackHoneypotEnabled and
skosmos:uiHoneypotTime→skosmos:feedbackHoneypotTime, remove obsolete plugin
props (skosmos:hasParamPlugin, skosmos:hasPlugin, skosmos:useParamPlugin,
skosmos:usePlugin) and replace them with skosmos:globalPlugins and
skosmos:vocabularyPlugins, and migrate any Twig snippet-based UI customizations
(about.inc, footer.inc, etc.) into custom-templates/*.twig; ensure both config
files are validated before deployment.

hostname: skosmos-dev
environment:
Expand Down Expand Up @@ -196,7 +196,7 @@ services:
skosmos-live:
container_name: evoks_${INSTANCE_NAME:-defaultinstance}_skosmos-live
build:
context: https://github.com/NatLibFi/Skosmos.git#v2.17
context: https://github.com/NatLibFi/Skosmos.git#v3.0
dockerfile: dockerfiles/Dockerfile.ubuntu
hostname: skosmos-live
environment:
Expand Down Expand Up @@ -247,4 +247,4 @@ volumes:
fuseki-live-config:
fuseki-live-backup:
static-skosmos-dev:
static-skosmos-live:
static-skosmos-live:
Loading
Loading