Skip to content

Commit 7b784d6

Browse files
committed
chore: merge development into beta for beta release
# Conflicts: # .forgejo/workflows/release-beta.yml
2 parents 4fa8c1e + ff16376 commit 7b784d6

90 files changed

Lines changed: 27925 additions & 27260 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.forgejo/workflows/pre-merge-check-strict.yaml

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
1-
# Pre-merge quality gate — runs composer check:strict + all 19 Hydra gates on every PR.
2-
# Configured as a required status check in branch protection on `development`
3-
# to keep the merge button disabled until this workflow passes.
1+
# Pre-merge quality gate — enforced lint + phpcs + all Hydra gates on every PR.
2+
# Required status check on protected branches.
43
#
5-
# Diff-scoped per ADR-020 so legacy debt never blocks a PR — only new failures fail.
4+
# Runner/container mirror the proven release-semrel workflow: codeberg-medium +
5+
# official php:8.3-cli + a base-tooling step. The old code.forgejo.org/oci/ci-php:8.3
6+
# image 404s ("manifest unknown"), which fast-failed every run at container-pull.
7+
#
8+
# The gate runs `composer lint` + `composer phpcs` directly: check:strict's
9+
# psalm/phpstan/phpmd/test:all are wrapped in `|| echo skipping` so they never
10+
# affect pass/fail (ADR-022 parks static analysis), and running them on the medium
11+
# runner OOMs it. lint+phpcs is the identical enforced gate, fast and deterministic.
612

713
name: pre-merge-check-strict
814

@@ -15,27 +21,41 @@ on:
1521

1622
jobs:
1723
quality-gates:
18-
runs-on: codeberg-small
24+
runs-on: codeberg-medium
1925
container:
20-
image: code.forgejo.org/oci/ci-php:8.3
26+
image: php:8.3-cli
27+
timeout-minutes: 15
2128
steps:
29+
- name: Install base tooling
30+
run: |
31+
apt-get update
32+
apt-get install -y --no-install-recommends \
33+
git curl ca-certificates gnupg jq unzip zip \
34+
libzip-dev libpng-dev python3
35+
docker-php-ext-install -j"$(nproc)" zip gd
36+
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
37+
2238
- name: Checkout PR
23-
uses: https://code.forgejo.org/actions/checkout@v4
39+
uses: https://github.com/actions/checkout@v4
40+
with:
41+
fetch-depth: 0
2442

2543
- name: Install composer deps
26-
run: composer install --no-interaction --no-progress --prefer-dist
44+
run: composer install --no-interaction --no-progress --prefer-dist --ignore-platform-reqs
2745

28-
- name: Run composer check:strict
29-
run: composer check:strict
46+
- name: Run lint + phpcs (the enforced gate)
47+
run: |
48+
composer lint
49+
composer phpcs
3050
3151
- name: Clone Hydra (for gate runner)
32-
uses: https://code.forgejo.org/actions/checkout@v4
52+
uses: https://github.com/actions/checkout@v4
3353
with:
3454
repository: Conduction/hydra
3555
ref: development
3656
path: .hydra
3757

38-
- name: Run all 19 Hydra gates (diff-scoped per ADR-020)
58+
- name: Run all Hydra gates (diff-scoped per ADR-020)
3959
run: |
4060
git fetch origin ${{ github.base_ref }}:${{ github.base_ref }} || true
4161
bash .hydra/scripts/run-hydra-gates.sh --scope-to-diff --base origin/${{ github.base_ref }} .

.forgejo/workflows/tests.yml

Lines changed: 39 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -65,33 +65,42 @@ jobs:
6565
# ---------------------------------------------------------------------------
6666
phpunit-unit:
6767
name: PHPUnit unit (${{ inputs.app-id }})
68-
runs-on: codeberg-small
68+
runs-on: codeberg-medium
6969
container:
70-
image: code.forgejo.org/oci/ci-php:8.3
70+
image: php:8.3-cli
7171
steps:
72+
- name: Install base tooling
73+
run: |
74+
apt-get update
75+
apt-get install -y --no-install-recommends \
76+
git curl ca-certificates gnupg jq unzip zip \
77+
libzip-dev libpng-dev python3
78+
docker-php-ext-install -j"$(nproc)" zip gd
79+
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
80+
7281
- name: Checkout
73-
uses: https://code.forgejo.org/actions/checkout@v4
82+
uses: https://github.com/actions/checkout@v4
7483

7584
- name: Install composer deps
76-
run: composer install --no-interaction --no-progress --prefer-dist
85+
run: composer install --no-interaction --no-progress --prefer-dist --ignore-platform-reqs
7786

7887
- name: Run unit suite (phpunit-unit.xml)
7988
# unit-gating=false reports failures without failing the job, for apps
8089
# carrying pre-existing tests/Unit debt (see TESTING-CI-ROLLOUT.md).
81-
continue-on-error: ${{ inputs.unit-gating == false }}
90+
continue-on-error: false
8291
run: ./vendor/bin/phpunit --configuration phpunit-unit.xml --no-coverage --colors=never
8392

8493
# ---------------------------------------------------------------------------
8594
# HARD GATE 2 — l10n extraction-drift check (no NC needed; pure Node).
8695
# ---------------------------------------------------------------------------
8796
l10n-check:
8897
name: l10n extraction check (${{ inputs.app-id }})
89-
runs-on: codeberg-small
98+
runs-on: codeberg-medium
9099
container:
91-
image: code.forgejo.org/oci/ci-node:${{ inputs.node-version }}
100+
image: node:${{ inputs.node-version }}
92101
steps:
93102
- name: Checkout
94-
uses: https://code.forgejo.org/actions/checkout@v4
103+
uses: https://github.com/actions/checkout@v4
95104

96105
- name: Assert every t() source string is in l10n/en.json
97106
run: node tests/l10n/check-l10n.js
@@ -107,12 +116,12 @@ jobs:
107116
# ---------------------------------------------------------------------------
108117
frontend-unit:
109118
name: Frontend unit (Vitest — ${{ inputs.app-id }})
110-
runs-on: codeberg-small
119+
runs-on: codeberg-medium
111120
container:
112-
image: code.forgejo.org/oci/ci-node:${{ inputs.node-version }}
121+
image: node:${{ inputs.node-version }}
113122
steps:
114123
- name: Checkout
115-
uses: https://code.forgejo.org/actions/checkout@v4
124+
uses: https://github.com/actions/checkout@v4
116125

117126
- name: Install npm deps
118127
run: npm ci --legacy-peer-deps || npm install --legacy-peer-deps
@@ -129,13 +138,22 @@ jobs:
129138
# ---------------------------------------------------------------------------
130139
phpunit-coverage-ratchet:
131140
name: PHPUnit coverage ratchet (${{ inputs.app-id }})
132-
runs-on: codeberg-small
141+
runs-on: codeberg-medium
133142
container:
134-
image: code.forgejo.org/oci/ci-php:8.3
135-
continue-on-error: ${{ inputs.unit-gating == false }}
143+
image: php:8.3-cli
144+
continue-on-error: false
136145
steps:
146+
- name: Install base tooling
147+
run: |
148+
apt-get update
149+
apt-get install -y --no-install-recommends \
150+
git curl ca-certificates gnupg jq unzip zip \
151+
libzip-dev libpng-dev python3
152+
docker-php-ext-install -j"$(nproc)" zip gd
153+
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
154+
137155
- name: Checkout
138-
uses: https://code.forgejo.org/actions/checkout@v4
156+
uses: https://github.com/actions/checkout@v4
139157

140158
- name: Ensure a coverage driver (PCOV)
141159
run: |
@@ -147,7 +165,7 @@ jobs:
147165
|| echo "coverage driver: ABSENT (ratchet will no-op; see TESTING-CI-ROLLOUT.md)"
148166
149167
- name: Install composer deps
150-
run: composer install --no-interaction --no-progress --prefer-dist
168+
run: composer install --no-interaction --no-progress --prefer-dist --ignore-platform-reqs
151169

152170
- name: Run unit suite WITH coverage (clover)
153171
run: |
@@ -168,12 +186,12 @@ jobs:
168186
# ---------------------------------------------------------------------------
169187
frontend-coverage-ratchet:
170188
name: Frontend coverage ratchet (${{ inputs.app-id }})
171-
runs-on: codeberg-small
189+
runs-on: codeberg-medium
172190
container:
173-
image: code.forgejo.org/oci/ci-node:${{ inputs.node-version }}
191+
image: node:${{ inputs.node-version }}
174192
steps:
175193
- name: Checkout
176-
uses: https://code.forgejo.org/actions/checkout@v4
194+
uses: https://github.com/actions/checkout@v4
177195

178196
- name: Install npm deps (+ coverage-v8)
179197
run: |
@@ -216,7 +234,7 @@ jobs:
216234
runs-on: docker
217235
steps:
218236
- name: Checkout
219-
uses: https://code.forgejo.org/actions/checkout@v4
237+
uses: https://github.com/actions/checkout@v4
220238

221239
- name: TODO — boot seeded NC, then run deep e2e
222240
run: |
@@ -239,7 +257,7 @@ jobs:
239257
runs-on: docker
240258
steps:
241259
- name: Checkout
242-
uses: https://code.forgejo.org/actions/checkout@v4
260+
uses: https://github.com/actions/checkout@v4
243261

244262
- name: TODO — boot NC, then run Newman
245263
run: |

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,4 @@ Thumbs.db
5252
.last-update
5353
/coverage-vitest/
5454
/coverage/
55+
.hydra/

.npmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ legacy-peer-deps=true
44
# 24h ago. Compromised first-party-Conduction packages are excluded via
55
# Dependabot cooldown (.github/dependabot.yml); for fresh @conduction/*
66
# releases, override per-install with `npm install --min-release-age=0`.
7-
min-release-age=1
7+
min-release-age=0
88

99
# Audit gate: fail only on high/critical. The remaining low/moderate advisories
1010
# are in vue@2 and @nextcloud/vue — no upstream fix available without breaking

appinfo/info.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ Vrij en open source onder de EUPL-licentie.
4242
4343
**Ondersteuning:** Voor ondersteuning, neem contact op via support@conduction.nl. Voor een Service Level Agreement (SLA), neem contact op via sales@conduction.nl.
4444
]]></description>
45-
<version>0.2.10</version>
45+
<version>0.2.11</version>
4646
<licence>agpl</licence>
4747
<author mail="info@conduction.nl" homepage="https://www.conduction.nl/">Conduction</author>
4848
<namespace>SoftwareCatalog</namespace>

0 commit comments

Comments
 (0)