HDNEXT-1604: backport nc-server IONOS changes onto NC33 (v33.0.6)#279
Draft
printminion-co wants to merge 42 commits into
Draft
HDNEXT-1604: backport nc-server IONOS changes onto NC33 (v33.0.6)#279printminion-co wants to merge 42 commits into
printminion-co wants to merge 42 commits into
Conversation
Adds unmodified upstream apps pinned at specific commits. Kept in a separate commit from the IONOS-forked apps so each can be upgraded independently (bump submodule pointer without touching forked apps). Apps: user_oidc, serverinfo, groupquota, files_downloadlimit Backports: 5b7102e c92fd7d 91e97e3 03aff15 (cherry picked from commit 62e2900)
hidrive-next-build.yml: triggers GitLab image build pipeline on push to ionos-stable and on PRs; uploads dev artifacts to Artifactory. sbom-matrix.yaml: generates Software Bill of Materials for compliance. Backports: cbca0ad c9c4048 10ad22c ad12b67 6a5f40d e226cd1 f54a8a3 840fb85 (cherry picked from commit 3596906)
Provides the sharing.enable_share_accept system config value as an initial state so the frontend can hide the pending-share menu when the feature is on. # hide pending menu (feature enabled): ./occ config:system:set --value true --type boolean -- sharing.enable_share_accept # show pending menu (feature disabled): ./occ config:system:set --value false --type boolean -- sharing.enable_share_accept Backports: cb78926 (cherry picked from commit 8a297ab)
font awesome folder icon is smaller then MDI icon Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de> Co-authored-by: Tatjana Kaschperko Lindt <kaschperko-lindt@strato.de> (cherry picked from commit e739552)
…cc output Adds 'redirects' system config key: maps URL path regexps to app route locators, configured entirely in config.php rather than Apache/nginx. Example: "redirects" => ["^/path/regexp" => "an.apps.controller.route"] Note: the <sensitive> masking in config:app:set was already upstreamed to v32. Backports: 959dcc0 c64d946 (cherry picked from commit e7137a7)
Implements build number injection system for production traceability: - Modified version.php to read .buildnumber file and append build ID as $OC_Version[4] - Updated hidrive-next-build.yml workflow to create .buildnumber file with GitHub run_number - Added .buildnumber to .gitignore for CI/CD generated files This preserves the original semantic version while adding build metadata for tracking specific CI/CD runs in production environments. Ported from IONOS-Productivity/ncw-server commit 0f2d429 Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de> (cherry picked from commit add6637) (cherry picked from commit f70ad2f)
…ble) Tag: https://github.com/nextcloud/files_downloadlimit/releases/tag/v33.0.2 SHA: 28ed1fe1909cdd94f0ce384cbd8edb08ba957e7b (cherry picked from commit f015279)
Tag: https://github.com/nextcloud/serverinfo/releases/tag/v32.0.8 SHA: 57a0381881a71ab2394a3202a777caba8f863938 (cherry picked from commit 3cd4d80)
Tag: https://github.com/nextcloud/groupquota/releases/tag/v0.2.4 SHA: 5b2d66eb0504671feee3fd8ebdd8ca16504725cf (cherry picked from commit b443800)
…atible) https://github.com/IONOS-Productivity/nc-viewer/releases/tag/v32.0.6 Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de> (cherry picked from commit e382723)
…ible) https://github.com/IONOS-Productivity/nc-richdocuments/releases/tag/v9.0.6-005602a Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de> (cherry picked from commit 1cf6e87)
https://github.com/IONOS-Productivity/nc-theming/releases/tag/33.0.0-de7a242 Signed-off-by: Tatjana Kaschperko Lindt <kaschperko-lindt@strato.de> (cherry picked from commit e5dd935)
…ersion with NC32) https://github.com/IONOS-Productivity/nc-theming/releases/tag/v32.0.6-a06a89f Signed-off-by: Tatjana Kaschperko Lindt <kaschperko-lindt@strato.de> (cherry picked from commit 8bf393f)
…atible) https://github.com/IONOS-Productivity/nc-simplesettings/releases/tag/v32.0.6-d87bf5b Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de> (cherry picked from commit c14a33a)
…argets) https://github.com/IONOS-Productivity/nc-config/releases/tag/cce9a71 Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de> (cherry picked from commit 6a880ac)
hidrive-next-build.yml: remove custom-npms/** path trigger and FONTAWESOME_PACKAGE_TOKEN from the build step. sbom-matrix.yaml: remove FONTAWESOME_PACKAGE_TOKEN secret requirement and custom-npm pre-install steps from the npm install job. Signed-off-by: Tatjana Kaschperko Lindt <kaschperko-lindt@strato.de> (cherry picked from commit 4160515)
Remove all four custom-npm submodules to support FA icon embedding pipeline: - nc-mdi-svg: FA-to-MDI SVG embedding (primary FA integration point) - nc-mdi-js: thin wrapper over @mdi/js, only customized to use nc-mdi-svg - nc-nextcloud-vue: thin fork of @nextcloud/vue, only wired custom icon packages - nc-vue-material-design-icons: FA mapping logic, now redundant without FA Signed-off-by: Tatjana Kaschperko Lindt <kaschperko-lindt@strato.de> (cherry picked from commit 82872c7)
…e drift) https://github.com/IONOS-Productivity/nc-simplesettings/releases/tag/v32.0.6-373db5b Picks up nc-simplesettings PR #176 which regenerates package-lock.json with upstream registry.npmjs.org resolutions for @mdi/js and vue-material-design-icons. Without this, the cached-matrix CI on this PR cannot build simplesettings from scratch on a runner — the prior lockfile (`d87bf5b`) still pointed those packages at `../../custom-npms/...` file: links that only exist on dev machines. Unblocks the `build-apps (simplesettings, ...)` matrix leg of this PR. Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de> (cherry picked from commit 9910bd8)
Bumps IONOS submodule cce9a71..797b3c7 (now hosted at IONOS-Productivity/nc-config; rename also reflected in .gitmodules) to introduce the build targets and helpers consumed by the new cached parallel matrix CI pipeline. Brings in nc-config master since cce9a71 (REUSE/SPDX compliance, workflow cleanups, configure.sh refactors) and the consolidated nc-config#109 series: - feat(Makefile): add generate_apps_matrix_json with dynamic app list - feat(Makefile): introduce dynamic build rules via define macros + common vars - feat(Makefile): add .precheck target and gate IO-side targets on it - feat(Makefile): two-phase patch_shipped_json with APP_FOLDERS_TO_SHIP - feat(Makefile): exclude apps via REMOVE_UNWANTED_APPS from removed-apps.txt - feat(Makefile): add pipeline targets build_after_external_apps + package_after_build - feat(scripts): add validate_app_list_uniqueness + validate_external_apps + validate_all umbrella - chore(Makefile): update copyright header to 2025 STRATO GmbH The Makefile now drops the legacy custom-npm build targets entirely (see nc-config#109) — generate_apps_matrix_json always emits "needs_custom_npms":false. Subsequent commits in this PR add the workflow and helper script that consume these targets. Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de> (cherry picked from commit 629d8d5)
Helper script consumed by the cached parallel matrix CI pipeline (added in
the next commit). For each app emitted by IONOS/Makefile's
generate_apps_matrix_json target, it computes a per-app cache key from the
submodule SHA, probes JFrog Artifactory first, falls back to a GitHub
Actions cache lookup via gh cache list, and writes three JSON outputs:
- apps_to_build: apps whose artifact is missing and must be built
- apps_to_restore: apps whose artifact exists in JFrog or GH cache
- apps_sha_map: full {name: SHA} map for traceability
Cache-key shape is uniform: \${CACHE_VERSION}-app-build-\${APP_NAME}-\${SHORT_SHA}
(8-char short SHA). The custom-npms compound-key branch from PR #226's
earlier iterations is gone — custom-npms submodules no longer exist and
generate_apps_matrix_json always emits needs_custom_npms:false.
JFrog setup is idempotent (jf config show short-circuits the add) and
gracefully degrades to GH-cache-only when JF_URL/JF_USER/JF_ACCESS_TOKEN
are absent.
Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
(cherry picked from commit b2b36d1)
Composite action that fetches the GitHub Actions job HTML URL via the REST API and exposes it as an output. Used by subsequent steps to attach job.html_url to JFrog artifact properties for traceability between an Artifactory artifact and the run/job that produced it. Uses a temp netrc file to keep the GH token off the curl command line, and trap-cleans both the netrc and the curl-error temp file on exit. Returns an empty output (not a failure) when the API call or job lookup fails, so callers can include it with continue-on-error: true. Copied from sister ncw-server (.github/actions/get-job-data/action.yml). (cherry picked from commit f020fce)
Replaces the single monolithic build job with a per-app matrix: - prepare-matrix: discover apps and decide cache-hit vs rebuild via detect-app-cache.sh (JFrog + GitHub cache probe), emit a build matrix, preflight summary + gh cache list for diagnostics. - build-apps: parallel matrix that restores cached artifacts or rebuilds, validates appinfo/info.xml after restore, uploads to JFrog with secrets preflight + retry + post-upload verification, and uses JFrog props arrays embedding job.html_url. - hidrive-next-build: rewired to consume per-app cached artifacts. Hardening: concurrency group for push + pull_request runs, PHP pinned to 8.3, npm cache bypassed when force_rebuild is set, per-app completion summary, per-app debug artifact upload. (cherry picked from commit e997d4e)
- actions/checkout -> v5.0.1 - actions/setup-node -> v6.4.0 - actions/download-artifact -> v5.0.0 - docker/login-action -> v3.7.0 - docker/metadata-action -> v5.10.0 (cherry picked from commit c35ac84)
Enables push-build for rc/** and */dev/* branches, triggers the remote GitLab workflow for both, and routes their artifacts to nested JFrog paths that include NC_VERSION and short SHA so every build is preserved. JFrog layout (consolidated): | Branch/Event | Path | |---------------|--------------------------------------------------------------------| | Pull Request | pr/hidrive-next-pr-<n>.zip | | ionos-dev | dev/hidrive-next-<ver>/<sha>/hidrive-next-<ver>.zip | | ionos-stable | stable/hidrive-next-<ver>/<sha>/hidrive-next-<ver>.zip | | rc/* | rc/<branch>/hidrive-next-<ver>/<sha>/hidrive-next-<ver>.zip | | */dev/* | devs/<prefix>/hidrive-next-<ver>/<sha>/hidrive-next-<ver>.zip | Changes vs. previous behavior: - PR uploads move from dev/pr/... to top-level pr/... - */dev/* uploads change from dev-<prefix>/... to devs/<prefix>/... (folder instead of dash-suffix) GitLab BUILD_TYPE (consumer-facing) keeps dev-<prefix> — it is a separate naming contract from the JFrog path. (cherry picked from commit 74e8b76)
…SER_DEV
The remote GitLab pipeline does not yet handle the BUILD_TYPE=dev-<prefix>
payload produced for the */dev/* developer-branch class, so every push to
a developer branch currently fires a remote run the consumer cannot
service.
Add an opt-in repository variable ENABLE_REMOTE_TRIGGER_USER_DEV which
must be set to 'true' for the trigger-remote-dev-workflow job to run on
*/dev/* branches. The other three branch classes (ionos-dev, ionos-stable,
rc/*) are unaffected and continue to trigger as before. The existing
DISABLE_REMOTE_TRIGGER kill-switch keeps its current semantics and layers
on top of the new opt-in.
The "Check configuration" diagnostic step in prepare-matrix now prints
the new variable and surfaces an explicit ❌/✅ line for */dev/* branches
so the expected-outcome line ("WILL RUN" / "WILL BE SKIPPED") reflects
the opt-in state.
upload-to-artifactory and the ghcr image push are unchanged — */dev/*
builds still land in devs/<prefix>/... in Artifactory.
(cherry picked from commit e3e638e)
…anch for submodule trigger) https://github.com/IONOS-Productivity/nc-config/releases/tag/6dedd72 Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> (cherry picked from commit 0e14ce3)
…e user oicd bearer auth) https://github.com/IONOS-Productivity/nc-config/releases/tag/ecde9e2 Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> (cherry picked from commit 3e70495)
Tag: https://github.com/nextcloud/serverinfo/releases/tag/v33.0.6 SHA: 06f355d7e6d966ee97b9269f130980b6aabcdaa3
…-server v33.0.6) Tag: https://github.com/nextcloud/files_downloadlimit/releases/tag/v33.0.6 SHA: cd703cb1d18456292fb1ae60d44107158a387a73
Author
NC33 apps-external fork upgrades (HDNEXT-1585 / HDNEXT-1593)Two richdocuments →
viewer →
Docs: the new After the richdocuments fork PR merges, the release tag stays valid (it already captures the reviewed commit). |
Track vanilla upstream v10.1.3 (ionos-stable33 tip) for now. The IONOS build v10.1.3-61f4d0f (adds hide-help-menu) replaces this once nc-richdocuments#13 merges — see HDNEXT-1593. SHA: 69199dc9fc07ceb38ecfe6f01c67a9d996504981
Vanilla upstream nextcloud/viewer v33.0.6 (app 6.0.0, NC33), matching the vanilla v32.0.6 production state. Reinstatement of IONOS viewer customizations is a follow-up (HDNEXT-1585). Tag: https://github.com/IONOS-Productivity/nc-viewer/releases/tag/v33.0.6 SHA: 9e3b79a31742baade17f73ffae00a4f934a74346
55df9e0 to
fc38430
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
HDNEXT-1604 — Backport nc-server IONOS changes onto NC33 (v33.0.6)
Creates the NC33 "ground slate" branch: vanilla
v33.0.6with the IONOScustomisations cherry-picked on top as new commits.
Base:
ionos-dev-v33(vanillav33.0.6) ← Head:mk/poc/HDNEXT-1604-ionos-dev-v33— PR diff is exactly the IONOS delta.38 commits replayed from
ionos-dev-v32.0.6(the 47-commit v32 stack, minus net-zero/empty — see below).Method
Fresh branch off
v33.0.6, thengit cherry-pick -x v32.0.6..ionos-dev-v32.0.6. New commit SHAs;-xrecords provenance.Faithfulness vs the v32 line
IONOS change-set is identical to
v32.0.6..ionos-dev-v32.0.6except two expected NC33 adaptations:apps/files/src/views/Navigation.vue→FilesNavigation.vue— NC33 renamed the file; the SidebarQuota wiring (replaceNavigationQuota) was re-ported to the renamed component.lib/private/Template/Template.phpfix dropped — already present upstream in v33.0.6 (cherry-pick was empty).Resolved conflicts
apps/files/src/views/FilesNavigation.vue— ported SidebarQuota wiring (rename adaptation).core/src/components/UnifiedSearch/UnifiedSearchModal.vue— keptv-if="peopleSearchEnabled"over v33's reformat.apps/files_sharing/src/mixins/SharesMixin.js— mergedDialogBuilderimport (v33 already importsShareType).config/config.sample.php— appended theredirectsblock before the closing];.Skipped (net-zero / redundant — matches v32 line's net state)
IONOS(deps): alias @mdi/@nextcloud/vue+ its Revert →package.json/package-lock.jsonuntouched from v33 base.IONOS(frontend): custom MDI icon mappings+ its Revert.fix(lib): templates core path detection— already in v33.0.6.Verified
.gitmodulesidentical to the v32 line;3rdparty→ v33.0.6's. IONOS submodule pointers started identical to the v32 line, then theapps-external/pointers below were advanced to NC33 (see next section).version.php→[33,0,6,2]/'33.0.6', upgrade-from32.0+33.0, IONOS build-injection block intact.php -lclean on all changed PHP files.apps-external → NC33 submodule pointers
Advanced on this branch (vanilla where a fork's IONOS modifications are deferred):
serverinfo→v33.0.6files_downloadlimit→v33.0.6richdocuments→ vanillav10.1.3(69199dc). IONOS buildv10.1.3-61f4d0f(adds hide-help-menu) is prepared and will replace this once nc-richdocuments#13 merges — HDNEXT-1593.viewer→ vanillav33.0.6(matches the already-vanilla v32.0.6 production state). IONOS viewer customizations backport is a follow-up — HDNEXT-1585.Out of scope (dependency tickets)
rc/**build branch in this ticket (deferred to HDNEXT-1602).Draft until
autotest.sh sqlite/check_release.shpass.git range-diff v32.0.6..ionos-dev-v32.0.6 → v33.0.6..mk/poc/HDNEXT-1604-ionos-dev-v33
.dev/tools/release-notes.sh current > v33-pr279.mdRelease Notes -- IONOS-Productivity/nc-server v33.0.6.2 (55df9e0)
Release Notes -- IONOS-Productivity/nc-server v33.0.6.2 (55df9e0)
55df9e0Submodules
apps-external/
cd703cb(GitHub)v33.0.65.1.032, max335b2d66e(GitHub)v0.2.40.2.431, max3361f4d0f(GitHub)v10.1.3-61f4d0f(pre-release: yes)10.1.333, max3306f355d(GitHub)v33.0.65.0.033, max33b5a67c7(GitHub)v8.6.18.6.129, max349e3b79a(GitHub)v33.0.6(pre-release: yes)6.0.033, max33apps-custom/
8766e39(GitHub)0.0.4-8766e39(pre-release: yes)0.0.330, max33170d170(GitHub)1.0.0-170d170(pre-release: yes)1.0.030, max33a06a89f(GitHub)v32.0.6-a06a89f(pre-release: yes)32.0.630, max33373db5b(GitHub)v32.0.6-373db5b(pre-release: yes)32.0.630, max33themes/
2463c23(GitHub)31.0.6-2463c23(pre-release: yes)root/
ecde9e2(GitHub)ecde9e2(pre-release: yes)Submodules Summary
Compat column reports whether the submodule's appinfo
min-version..max-versionrange covers the parent repo's NC major (
33): OK in range, WARNout of range, n/a when min/max not declared (non-app submodules always n/a).
Release column reports the GitHub Release state for the tag at the pinned SHA:
pre-release (Release exists, marked pre-release), release (Release exists,
final), none (tag exists but no GitHub Release published), n/a (no tag).
googleanalytics0.0.38766e390.0.4-8766e39nc_ionos_processes1.0.0170d1701.0.0-170d170nc_theming32.0.6a06a89fv32.0.6-a06a89fsimplesettings32.0.6373db5bv32.0.6-373db5bfiles_downloadlimit5.1.0cd703cbv33.0.6groupquota0.2.45b2d66ev0.2.4richdocuments10.1.361f4d0fv10.1.3-61f4d0fserverinfo5.0.006f355dv33.0.6user_oidc8.6.1b5a67c7v8.6.1viewer6.0.09e3b79av33.0.6ecde9e2ecde9e22463c2331.0.6-2463c23Warnings
55df9e0has no GitHub tag.Recent tags:
v34.0.1,v33.0.6,v32.0.12,v34.0.1rc2,v33.0.6rc2Proposed tag:
v33.0.6.2-55df9e0Open: 55df9e0 | https://github.com/IONOS-Productivity/nc-server/releases/new?target=55df9e0690ab39bf4b9a4c5f4d6c6715fb221241&tag=v33.0.6.2-55df9e0&prerelease=1
Fix:
gh release create v33.0.6.2-55df9e0 --target 55df9e0690ab39bf4b9a4c5f4d6c6715fb221241 --repo IONOS-Productivity/nc-server --prerelease --title v33.0.6.2-55df9e0 --generate-notes