chore(release): sync main back into development - #535
Closed
github-actions[bot] wants to merge 17 commits into
Closed
chore(release): sync main back into development#535github-actions[bot] wants to merge 17 commits into
github-actions[bot] wants to merge 17 commits into
Conversation
…2 June 2026) + conduction.nl app link
…existent Conduction org All 8 reusable-workflow callers on `main` referenced `Conduction/.github`. The `Conduction` GitHub org does not exist (`GET /orgs/Conduction` -> 404), so every one of these workflows resolved to nothing and produced `startup_failure` with **zero jobs**. The stable release path has not executed since 2026-03-23. Run 23441791767 (head_sha 75aa9f0) is the last and only `release-stable.yml` run, and at that commit the caller still read `ConductionNL/.github/...` — it started 1 job and failed at "Install and build frontend". It was subsequently changed to `Conduction/`, and every run since has produced 0 jobs. `development` already carries the correct `ConductionNL/` refs; only `main` lagged. The commented-out `additional-apps` example in `code-quality.yml` carried the same typo and was corrected so the sweep leaves no bad copy to paste from. `app-name: doriath` was verified against `appinfo/info.xml` (`<id>doriath</id>`) and `cname: doriath.conduction.nl` against the app. Both already correct. (Note: the historic 2026-03 caller said `app-name: app-template`, an unmigrated template default; that has since been fixed.) Only `.github/` changes: `git ls-tree main` vs the new tree differ in exactly one top-level entry, `.github`. `lib/`, `src/`, `docs/`, `appinfo/`, `openspec/`, `tests/` and `.forgejo/` are byte-identical by tree hash. `.forgejo/` is deliberately untouched — on Codeberg the org really is `Conduction`.
ci(main): fix shared-workflow org ref — stable release path has been dead since March
…nt-config peers (#140) `npm ci` failed on main with ERESOLVE, breaking both the lint-check job and step 9 (`npm ci`) of the release-stable workflow. Root cause is the committed lockfile, not a real incompatibility. It listed @nextcloud/eslint-config@8.4.2 while containing NONE of that package's 14 required peerDependencies -- no eslint-plugin-n, eslint-plugin-jsdoc, eslint-plugin-import, eslint-config-standard, @vue/eslint-config-typescript, eslint-import-resolver-typescript, and so on. A lockfile in that shape can only be produced with peer resolution suppressed (--legacy-peer-deps). On `npm ci`, npm has to satisfy the missing required peer eslint-import-resolver-typescript@^3.8.0. Unpinned, it floats to 3.10.1, which declares an optional peer eslint-plugin-import-x@"*"; that floats to 4.17.1, which requires @typescript-eslint/utils@^8.56.0 -- colliding with the @typescript-eslint/utils@7.18.0 pulled in by our @typescript-eslint/eslint-plugin@7.18.0: Conflicting peer dependency: @typescript-eslint/utils@8.65.0 peerOptional @typescript-eslint/utils@"^8.56.0" from eslint-plugin-import-x@4.17.1 peerOptional eslint-plugin-import-x@"*" from eslint-import-resolver-typescript@3.10.1 peer eslint-import-resolver-typescript@"^3.8.0" from @nextcloud/eslint-config@8.4.2 Regenerating the lockfile with peers resolved normally fixes it: npm records the full peer set, and because eslint-import-resolver-typescript is then a resolved node rather than a gap npm must fill, the optional eslint-plugin-import-x is never pulled in and the v8 constraint never appears. No --legacy-peer-deps, no --force, and no new `overrides` entry: the tree resolves correctly on its own, so forcing it would only re-hide the problem. @typescript-eslint stays at 7.18.0 (single copy, no duplication) and @conduction/nextcloud-vue is held at 1.0.0-beta.101 so this stays a dependency-resolution fix and not a library upgrade. Verified: npm ci (npm 10) succeeds from the committed lockfile, and `npm run lint` passes with 0 errors. Co-authored-by: Conduction Release Bot <release-bot@conduction.nl>
…uild (#142) `release-stable` now gets past `npm ci` but fails the next step, `npm run build`: [webpack-cli] Error: Cannot find module 'terser-webpack-plugin' Require stack: - node_modules/@nextcloud/webpack-vue-config/webpack.config.js @nextcloud/webpack-vue-config requires terser-webpack-plugin without declaring it, and had been getting away with it because webpack shipped it: webpack 5.105.4 listed "terser-webpack-plugin": "^5.3.17" in its own dependencies. webpack 5.109.2 removed it, so the phantom disappeared and the require broke. Our range is "webpack": "^5.94.0", so the previous lockfile regeneration moved webpack 5.105.4 -> 5.109.2 in range and took terser-webpack-plugin with it. Declaring terser-webpack-plugin directly fixes the actual defect -- we do use it, through @nextcloud/webpack-vue-config's config -- and is version independent, so a future in-range webpack bump cannot silently remove it again. Pinning webpack back would restore the build but leave the undeclared dependency in place to break on the next bump. Verified locally: npm ci (npm 10) succeeds, `npm run build` compiles (0 errors, 2 pre-existing warnings), and `npm run lint` still passes with 0 errors. Co-authored-by: Conduction Release Bot <release-bot@conduction.nl>
…ction` (#146) GitHub names a reusable-workflow status context `<caller-job-id> / <called-job-name>`, so this caller reported as `protect / check-branch` while the org ruleset requires `branch-protection / check-branch`. The required context never reported at all, leaving PRs to main/beta permanently BLOCKED.
* chore: raise Nextcloud floor to 32 * chore(ci): drop stable31 from the PHPUnit matrix
Release: merge development into beta
main held 12 commit(s) beta did not. Merged with -s ours: beta's tree is kept BYTE FOR BYTE and only the ancestry is recorded, so the beta -> main promotion stops conflicting on files where beta is simply newer. Not brought over -- beta is hundreds of commits ahead of main, so these are the OLDER copies, and several are dead Forgejo/Codeberg CI that development deliberately removed: .forgejo/workflows/documentation.yml .forgejo/workflows/release-stable.yml .github/workflows/branch-protection.yml .github/workflows/code-quality.yml .github/workflows/documentation.yml .github/workflows/issue-triage.yml .github/workflows/openspec-sync.yml .github/workflows/release-beta.yml .github/workflows/release-stable.yml .github/workflows/sync-to-beta.yml appinfo/info.xml package-lock.json package.json
The default branch is moving to `main` for every app in the fleet, and Dependabot reads its config from the DEFAULT branch only. main's copy here predates the `target-branch` addition, so the moment the default flips, every bump would be opened against `main` -- where branch-protection refuses it and it can never merge. That is not hypothetical. Measured 2026-08-30, before the config was fixed on the apps that already defaulted to main: 41 open pull requests across ten repositories, none of them mergeable, and Dependabot reopening them as fast as they were closed. This carries development's canonical config onto main so the flip is safe. 1 target-branch declarations, one per ecosystem.
Release: merge beta into main
The 0.2.3 release bumped the version on main. Without this, development stays behind main and the next development -> main promotion conflicts on the version file. Version files resolve to development's side, which is the higher line, so this never moves a version backwards.
Contributor
|
Superseded. fleet-back-merge.yml could not merge these while it waited for green on branches red for unrelated reasons, so one accumulated per run (107 open across the fleet). ConductionNL/.github#648 removed that wait, and the sweep that followed carried and merged the same ancestry immediately. This pull request changes zero files, so closing it loses nothing: the ancestry it recorded is already on the branch. |
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.
Opened by the release workflow after publishing 0.2.3 from
main.A release commits a version bump onto the branch it ran from. Without carrying
that back,
developmentfalls behindmain, and since both branches thenchanged the version file independently, the next
development -> mainpromotion conflicts on it — every time.
Version files are resolved to development's side, the higher line, so this
cannot move a version backwards. Any other conflict stops the workflow instead
of being resolved automatically.
Merge this, do not squash. A squash copies the files and discards the
relationship: the merge base would not move and the next promotion would
conflict exactly as before. A 0-file diff here is normal and is not a no-op —
recording the ancestry is the whole point.