Skip to content

chore(release): sync main back into development - #535

Closed
github-actions[bot] wants to merge 17 commits into
developmentfrom
sync/main-to-development-0.2.3
Closed

chore(release): sync main back into development#535
github-actions[bot] wants to merge 17 commits into
developmentfrom
sync/main-to-development-0.2.3

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

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, development falls behind main, and since both branches then
changed the version file independently, the next development -> main
promotion 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.

rjzondervan and others added 17 commits June 3, 2026 12:02
…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.
@github-actions
github-actions Bot enabled auto-merge August 30, 2026 17:27
@rubenvdlinde

Copy link
Copy Markdown
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.

auto-merge was automatically disabled August 30, 2026 17:56

Pull request was closed

@rubenvdlinde
rubenvdlinde deleted the sync/main-to-development-0.2.3 branch August 30, 2026 17:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant