From 82316c393eae41c1e9e01a32c6db1d5e6d8f36bd Mon Sep 17 00:00:00 2001 From: Marco Allegretti Date: Sun, 17 May 2026 16:27:48 +0200 Subject: [PATCH] Brand containment metadata as SHIFT Point homescreen and panel containment metadata at the Shift repository. Update the panel and task-panel descriptions from Plasma Mobile to SHIFT, and remove translated descriptions that would override the corrected base metadata. Add a containment metadata guard while preserving the existing org.kde.plasma.mobile.* applet target IDs. --- containments/homescreens/folio/README.md | 2 +- containments/homescreens/folio/metadata.json | 2 +- .../homescreens/halcyon/metadata.json | 2 +- containments/panel/metadata.json | 40 +----------- containments/taskpanel/metadata.json | 40 +----------- tests/CMakeLists.txt | 5 ++ tests/check-shift-containment-metadata.sh | 63 +++++++++++++++++++ 7 files changed, 75 insertions(+), 79 deletions(-) create mode 100644 tests/check-shift-containment-metadata.sh diff --git a/containments/homescreens/folio/README.md b/containments/homescreens/folio/README.md index caada58d..f360e785 100644 --- a/containments/homescreens/folio/README.md +++ b/containments/homescreens/folio/README.md @@ -5,7 +5,7 @@ # Folio Homescreen -This is the paged homescreen for Plasma Mobile. +This is the paged homescreen for SHIFT. ### How it works diff --git a/containments/homescreens/folio/metadata.json b/containments/homescreens/folio/metadata.json index 51277c6d..e23b897c 100644 --- a/containments/homescreens/folio/metadata.json +++ b/containments/homescreens/folio/metadata.json @@ -118,7 +118,7 @@ "Name[uk]": "Фоліо", "Name[zh_CN]": "Folio", "Name[zh_TW]": "Folio", - "Website": "https://plasma-mobile.org" + "Website": "https://invent.kde.org/marcoa/shift-shell" }, "X-Plasma-API-Minimum-Version": "6.0", "X-Plasma-ContainmentType": "Desktop", diff --git a/containments/homescreens/halcyon/metadata.json b/containments/homescreens/halcyon/metadata.json index 91c60135..212b7271 100644 --- a/containments/homescreens/halcyon/metadata.json +++ b/containments/homescreens/halcyon/metadata.json @@ -119,7 +119,7 @@ "Name[uk]": "Альціон", "Name[zh_CN]": "Halcyon", "Name[zh_TW]": "Halcyon", - "Website": "https://plasma-mobile.org" + "Website": "https://invent.kde.org/marcoa/shift-shell" }, "X-Plasma-API-Minimum-Version": "6.0", "X-Plasma-ContainmentType": "Desktop", diff --git a/containments/panel/metadata.json b/containments/panel/metadata.json index 4e9ac8bf..c8096335 100644 --- a/containments/panel/metadata.json +++ b/containments/panel/metadata.json @@ -44,43 +44,7 @@ } ], "Category": "Containments", - "Description": "Top panel for Plasma Mobile", - "Description[ar]": "اللوحة العلوية لبلازما الجوال", - "Description[ca@valencia]": "Quadro superior per a Plasma Mobile", - "Description[ca]": "Plafó superior per al Plasma Mobile", - "Description[cs]": "Horní panel pro Plasma Mobile", - "Description[de]": "Obere Kontrollleiste für Plasma Mobile", - "Description[en_GB]": "Top panel for Plasma Mobile", - "Description[eo]": "Supra panelo por Plasma Mobile", - "Description[es]": "Panel superior para Plasma Mobile", - "Description[eu]": "Plasma Mugikorrerako goiko panela", - "Description[fi]": "Yläpaneeli Plasma Mobileen", - "Description[fr]": "Panneau supérieur pour Plasma Mobile", - "Description[gl]": "Panel superior para Plasma Mobile.", - "Description[he]": "לוח עליון לפלזמה לניידים", - "Description[hu]": "Felső panel a Plasma Mobile-hoz", - "Description[ia]": "Pannello in alto per Plasma Mobile", - "Description[is]": "Toppspjald fyrir Plasma Mobile", - "Description[it]": "Pannello superiore per Plasma Mobile", - "Description[ka]": "Plasma Mobile-ის ზედა პანელი", - "Description[ko]": "Plasma 모바일의 최상위 패널", - "Description[lv]": "„Plasma Mobile“ augšējais panelis", - "Description[nl]": "Hoofdpaneel voor Plasma Mobile", - "Description[nn]": "Toppanel for Plasma Mobile", - "Description[pa]": "ਪਲਾਜ਼ਮਾ ਮੋਬਾਈਲ ਲਈ ਸਿਖਰਲਾ ਪੈਨਲ", - "Description[pl]": "Górny panel dla Przenośnej Plazmy", - "Description[pt]": "Painel de topo do Plasma Mobile", - "Description[pt_BR]": "Painel superior do Plasma Mobile", - "Description[ru]": "Верхняя панель Plasma Mobile", - "Description[sa]": "प्लाज्मा मोबाईलस्य कृते शीर्षपटलम्", - "Description[sk]": "Horný panel pre Plasma Mobile", - "Description[sl]": "Vrhnja plošča za Plasma Mobile", - "Description[sv]": "Överpanel för Plasma mobil", - "Description[ta]": "பிளாஸ்மா கைபேசிக்கான மேலோரப் பலகை", - "Description[tr]": "Plasma Cep için üst panel", - "Description[uk]": "Верхня панель для мобільної Плазми", - "Description[zh_CN]": "Plasma Mobile 的顶部面板", - "Description[zh_TW]": "Plasma 行動的頂部面板", + "Description": "Top panel for SHIFT", "License": "GPLv2+", "Name": "Phone Panel", "Name[ar]": "لوحة الهاتف", @@ -126,7 +90,7 @@ "Name[uk]": "Панель телефону", "Name[zh_CN]": "手机面板", "Name[zh_TW]": "手機面板", - "Website": "https://plasma-mobile.org" + "Website": "https://invent.kde.org/marcoa/shift-shell" }, "X-Plasma-API-Minimum-Version": "6.0", "X-Plasma-ContainmentType": "Panel" diff --git a/containments/taskpanel/metadata.json b/containments/taskpanel/metadata.json index aa637bb1..2d7bb53b 100644 --- a/containments/taskpanel/metadata.json +++ b/containments/taskpanel/metadata.json @@ -44,43 +44,7 @@ } ], "Category": "Containments", - "Description": "Navigation panel for Plasma Mobile", - "Description[ar]": "لوحة التنقل لبلازما الجوال", - "Description[ca@valencia]": "Quadro de navegació per a Plasma Mobile", - "Description[ca]": "Plafó de navegació per al Plasma Mobile", - "Description[cs]": "Navigační panel pro Plasma Mobile", - "Description[de]": "Navigationsleiste für Plasma Mobile", - "Description[en_GB]": "Navigation panel for Plasma Mobile", - "Description[eo]": "Navigada panelo por Plasma Mobile", - "Description[es]": "Panel de navegación para Plasma Mobile", - "Description[eu]": "Plasma Mugikorrerako nabigazio-panela", - "Description[fi]": "Navigointipaneeli Plasma Mobilelle", - "Description[fr]": "Panneau de navigation pour Plasma Mobile", - "Description[gl]": "Panel de navegación para Plasma Mobile.", - "Description[he]": "לוח ניווט לפלזמה לניידים", - "Description[hu]": "Navigációs panel a Plasma Mobile-hoz", - "Description[ia]": "Pannello de Navigation per Plasma Mobile", - "Description[is]": "Flakkspjald fyrir Plasma Mobile", - "Description[it]": "Pannello di navigazione per Plasma Mobile", - "Description[ka]": "Plasma Mobile-ის ნავიგაციის პანელი", - "Description[ko]": "Plasma 모바일의 탐색 패널", - "Description[lv]": "„Plasma Mobile“ navigācijas panelis", - "Description[nl]": "Navigatiepaneel voor Plasma Mobile", - "Description[nn]": "Navigasjonspanel for Plasma Mobile", - "Description[pa]": "ਪਲਾਜ਼ਮਾ ਮੋਬਾਈਲ ਲਈ ਨੇਵੀਗੇਸ਼ਨ ਪੈਨਲ", - "Description[pl]": "Pasek poruszania się dla Przenośnej Plazmy", - "Description[pt]": "Painel de navegação do Plasma Mobile", - "Description[pt_BR]": "Painel de navegação do Plasma Mobile", - "Description[ru]": "Панель навигации Plasma Mobile", - "Description[sa]": "प्लाज्मा मोबाईलस्य कृते नेविगेशन पैनल", - "Description[sk]": "Navigačný panel pre Plasma Mobile", - "Description[sl]": "Krmilna plošča za Plasma Mobile", - "Description[sv]": "Navigeringspanel för Plasma mobil", - "Description[ta]": "பிளாஸ்மா கைபேசிக்கான உலாவல் பலகை", - "Description[tr]": "Plasma Cep için dolaşım paneli", - "Description[uk]": "Панель навігації для мобільної Плазми", - "Description[zh_CN]": "Plasma 移动版导航面板", - "Description[zh_TW]": "Plasma 行動的導覽面板", + "Description": "Navigation panel for SHIFT", "License": "GPLv2+", "Name": "Phone Task panel", "Name[ar]": "لوحة مهمة الهاتف", @@ -126,7 +90,7 @@ "Name[uk]": "Панель завдань телефону", "Name[zh_CN]": "手机任务面板", "Name[zh_TW]": "手機工作面板", - "Website": "https://plasma-mobile.org" + "Website": "https://invent.kde.org/marcoa/shift-shell" }, "X-Plasma-API-Minimum-Version": "6.0", "X-Plasma-ContainmentType": "Panel" diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 86333b30..b6a43003 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -29,4 +29,9 @@ if(BASH_EXECUTABLE) NAME shift-quicksettings-metadata COMMAND ${BASH_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/check-shift-quicksettings-metadata.sh ) + + add_test( + NAME shift-containment-metadata + COMMAND ${BASH_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/check-shift-containment-metadata.sh + ) endif() diff --git a/tests/check-shift-containment-metadata.sh b/tests/check-shift-containment-metadata.sh new file mode 100644 index 00000000..c9125dc6 --- /dev/null +++ b/tests/check-shift-containment-metadata.sh @@ -0,0 +1,63 @@ +#!/usr/bin/env bash +# SPDX-FileCopyrightText: 2026 Marco Allegretti +# SPDX-License-Identifier: EUPL-1.2 + +set -euo pipefail + +repo_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +cd "$repo_dir" + +fail() { + printf '%s\n' "$1" >&2 + exit 1 +} + +require_line() { + local file="$1" + local pattern="$2" + local message="$3" + + grep -Eq "$pattern" "$file" || fail "$message" +} + +reject_line() { + local file="$1" + local pattern="$2" + local message="$3" + + ! grep -Eq "$pattern" "$file" || fail "$message" +} + +mapfile -t metadata_files < <(find containments -name metadata.json | sort) +[[ "${#metadata_files[@]}" -eq 4 ]] || fail "unexpected containment metadata file count" + +for metadata_file in "${metadata_files[@]}"; do + require_line "$metadata_file" '"Website": "https://invent\.kde\.org/marcoa/shift-shell"' \ + "$metadata_file must point at the Shift repository" + reject_line "$metadata_file" 'Plasma Mobile|plasma-mobile\.org|bugs\.kde\.org|"Website": "https://kde\.org"' \ + "$metadata_file must not expose upstream Plasma Mobile product metadata" +done + +require_line containments/panel/metadata.json '"Description": "Top panel for SHIFT"' \ + "panel containment description must be branded SHIFT" +require_line containments/taskpanel/metadata.json '"Description": "Navigation panel for SHIFT"' \ + "task panel containment description must be branded SHIFT" + +reject_line containments/panel/metadata.json '"Description\[[^]]+\]"' \ + "panel containment must not keep translated descriptions that can override the base description" +reject_line containments/taskpanel/metadata.json '"Description\[[^]]+\]"' \ + "task panel containment must not keep translated descriptions that can override the base description" + +require_line containments/panel/CMakeLists.txt 'plasma_add_applet\(org\.kde\.plasma\.mobile\.panel' \ + "panel containment package id must stay stable until a namespace migration is planned" +require_line containments/taskpanel/CMakeLists.txt 'plasma_add_applet\(org\.kde\.plasma\.mobile\.taskpanel' \ + "task panel containment package id must stay stable until a namespace migration is planned" +require_line containments/homescreens/folio/CMakeLists.txt 'plasma_add_applet\(org\.kde\.plasma\.mobile\.homescreen\.folio' \ + "Folio containment package id must stay stable until a namespace migration is planned" +require_line containments/homescreens/halcyon/CMakeLists.txt 'plasma_add_applet\(org\.kde\.plasma\.mobile\.homescreen\.halcyon' \ + "Halcyon containment package id must stay stable until a namespace migration is planned" + +reject_line containments/homescreens/folio/README.md 'Plasma Mobile' \ + "Folio README must not describe the homescreen as Plasma Mobile" + +printf 'shift-containment-metadata-ok\n' \ No newline at end of file