diff --git a/core/imageroot/usr/local/agent/pypkg/cluster/modules.py b/core/imageroot/usr/local/agent/pypkg/cluster/modules.py index e71f99693..1eb05deb0 100644 --- a/core/imageroot/usr/local/agent/pypkg/cluster/modules.py +++ b/core/imageroot/usr/local/agent/pypkg/cluster/modules.py @@ -336,6 +336,10 @@ def _get_available_modules(rdb): continue # skip duplicated images from lower priority modules modules[rmod["source"]] = rmod rmod['versions'].sort(key=lambda v: _parse_version_object(v["tag"]), reverse=True) + # Set the general release note URL if the code URL is a GitHub repository + if rmod['docs']['code_url'].startswith("https://github.com/") and 'relnotes_url' not in rmod['docs']: + rmod['docs']['relnotes_url'] = f"{rmod['docs']['code_url']}/releases" + # Integrate the available set with instances that do not belong to any # repository. They can be found in the "installed" dict: for module_source, module_instances in list_installed(rdb).items(): diff --git a/core/imageroot/var/lib/nethserver/cluster/actions/list-modules/validate-output.json b/core/imageroot/var/lib/nethserver/cluster/actions/list-modules/validate-output.json index d57a6d8db..bc94829a6 100644 --- a/core/imageroot/var/lib/nethserver/cluster/actions/list-modules/validate-output.json +++ b/core/imageroot/var/lib/nethserver/cluster/actions/list-modules/validate-output.json @@ -160,19 +160,23 @@ "type": "object", "parameters": { "terms_url": { - "type": "uri", + "type": "string", + "format": "uri", "description": "Optional link to the application Terms & Conditions document" }, "documentation_url": { - "type": "uri", + "type": "string", + "format": "uri", "description": "Link to the package documentation" }, "bug_url": { - "type": "uri", + "type": "string", + "format": "uri", "description": "Link to the package issue tracker" }, "code_url": { - "type": "uri", + "type": "string", + "format": "uri", "description": "Link to the source code repository" } }, diff --git a/core/imageroot/var/lib/nethserver/cluster/repodata-schema.json b/core/imageroot/var/lib/nethserver/cluster/repodata-schema.json index 668c376e2..7eeca495a 100644 --- a/core/imageroot/var/lib/nethserver/cluster/repodata-schema.json +++ b/core/imageroot/var/lib/nethserver/cluster/repodata-schema.json @@ -27,7 +27,8 @@ "docs": { "documentation_url": "https://docs.nethserver.org", "bug_url": "https://github.com/NethServer/dev", - "code_url": "https://github.com/NethServer/" + "code_url": "https://github.com/NethServer/", + "relnotes_url": "https://github.com/NethServer/ns8-kickstart/releases" }, "source": "ghcr.io/nethserver/dokuwiki", "versions": [ @@ -116,20 +117,29 @@ "type": "object", "parameters": { "terms_url": { - "type": "uri", + "type": "string", + "format": "uri", "description": "Optional link to the application Terms & Conditions document" }, "documentation_url": { - "type": "uri", + "type": "string", + "format": "uri", "description": "Link to the package documentation" }, "bug_url": { - "type": "uri", + "type": "string", + "format": "uri", "description": "Link to the package issue tracker" }, "code_url": { - "type": "uri", + "type": "string", + "format": "uri", "description": "Link to the source code repository" + }, + "relnotes_url": { + "type": "string", + "format": "uri", + "description": "Optional link to the application release notes" } }, "required": [ diff --git a/core/ui/public/i18n/en/translation.json b/core/ui/public/i18n/en/translation.json index f15cfc552..e7f230271 100644 --- a/core/ui/public/i18n/en/translation.json +++ b/core/ui/public/i18n/en/translation.json @@ -87,7 +87,8 @@ "configure": "Configure", "terms_and_conditions": "Terms and Conditions", "terms_required": "Please read and agree to @:common.terms_and_conditions", - "not_available": "Not available" + "not_available": "Not available", + "release_notes": "Release notes" }, "error": { "error": "Error", diff --git a/core/ui/src/components/software-center/AppInfoModal.vue b/core/ui/src/components/software-center/AppInfoModal.vue index e862e22f2..988fcbff6 100644 --- a/core/ui/src/components/software-center/AppInfoModal.vue +++ b/core/ui/src/components/software-center/AppInfoModal.vue @@ -157,6 +157,14 @@ + diff --git a/core/ui/src/views/SoftwareCenterAppInstances.vue b/core/ui/src/views/SoftwareCenterAppInstances.vue index 202fdb067..62d8e5276 100644 --- a/core/ui/src/views/SoftwareCenterAppInstances.vue +++ b/core/ui/src/views/SoftwareCenterAppInstances.vue @@ -323,6 +323,23 @@ }) }} +
+ + + {{ $t("common.release_notes") }} + + +