This repository was archived by the owner on May 29, 2026. It is now read-only.
fix(canonical-policy): retire description deviation + clarify test/.sh placement#56
Merged
Merged
Conversation
…h placement
Four corrections to the canonical-files policy:
1. **No more per-app description deviations**: phpcs.xml and phpmd.xml
now ship with app-generic descriptions
('Conduction Nextcloud app coding standard…'). The earlier convention
of allowing per-app description strings created a manual re-stamping
step after every fleet sync and made drift hard to spot (an app's
accidental rule edit looked identical to a legitimate
description-only deviation in the diff). Generic strings make any
diff visible at sync time.
2. **Test scripts go to tests/**, not scripts/dev/. App-unique test
files (.sh, shell-driven Newman, integration scenarios) ARE the
app's test suite and belong with unit / Playwright / Newman in
tests/. scripts/dev/ is for diagnostic one-shot dev utilities
(debug_*.php, etc.), NOT tests.
3. **test-results/ and similar artefact dirs** called out as a separate
class of repo-root pollution. The template's canonical .gitignore
already covers them; the follow-up is verifying fleet apps inherit
the .gitignore + don't have committed instances. Audit one-liner
included.
4. **softwarecatalog reframed as special case**: the WIP / issue / testing
notes are PRESERVED as future-spec source material — move to
docs/specs-todo/, do not delete. Same intent for other apps with
long-form work-notes (opencatalogi REFACTORING_PLAN, openregister
QUALITY_OVERVIEW etc.).
Contributor
Quality Report — ConductionNL/nextcloud-app-template @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ❌ | ||||
| phpcs | ❌ | ||||
| phpmd | ❌ | ||||
| psalm | ❌ | ||||
| phpstan | ❌ | ||||
| phpmetrics | ❌ | ||||
| eslint | ❌ | ||||
| stylelint | ❌ | ||||
| composer | ❌ | ❌ | |||
| npm | ✅ | ❌ 2/684 denied | |||
| PHPUnit | ⏭️ | ||||
| Newman | ⏭️ | ||||
| Playwright | ⏭️ |
❌ Denied npm licenses
| Package | Version | License |
|---|---|---|
| pako | 1.0.11 | (MIT AND Zlib) |
| sha.js | 2.4.12 | (MIT AND BSD-3-Clause) |
Quality workflow — 2026-05-23 06:56 UTC
Download the full PDF report from the workflow artifacts.
rubenvdlinde
added a commit
that referenced
this pull request
May 23, 2026
#57) After #56 retired the cosmetic-deviation allowance, the canonical files sync byte-for-byte including descriptions. The auto-generated PR body on each fleet sync still told reviewers to re-stamp per-app description strings — that's now wrong. Replace with explicit 'no manual post-merge step needed' guidance. Also linked the new policy doc (docs/canonical-files.md) so downstream reviewers can find the rules without bouncing through ADR-033.
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Follow-up to #55 with four corrections raised in review.
1. No more per-app description deviations
phpcs.xmlandphpmd.xmlnow ship with app-generic descriptions:phpcs.xml: "Conduction Nextcloud app coding standard (canonical — synced from nextcloud-app-template)."phpmd.xml: "Conduction Nextcloud App Rules", with an equally generic innerThe earlier convention of allowing per-app description strings created a manual re-stamping step after every fleet sync and made drift hard to spot — an app's accidental rule edit looked identical to a legitimate description-only deviation in the diff. Generic strings make any diff visible at sync time.
Policy doc updated to reflect: no per-app deviations in the canonical files.
2. Test scripts →
tests/, notscripts/dev/App-unique test files (
.sh, shell-driven Newman, integration scenarios) ARE the app's test suite and belong alongside unit / Playwright / Newman intests/.scripts/dev/is for diagnostic one-shot dev utilities (debug_*.php,check_*.php, etc.), NOT for tests.Audit doc
softwarecatalogsection updated:test_*.sh/test-*.sh(25+ files) →tests/debug_*.php,check_*.php,compare_archimate.{php,py}etc. →scripts/dev/3.
test-results/and similar artefact dirs called outNew section in the audit doc listing repo-root directories that should NOT be committed:
test-results/,playwright-report/,.phpunit.cache/,coverage/,phpqa/,phpmetrics/,quality-reports/. The canonical.gitignorealready covers all of these.Follow-up audit one-liner included to find fleet apps still committing them.
4.
softwarecatalogreframed as special caseThe WIP / issue / testing notes (
AMEF_TESTING.md,BUG_FIX_*.md,CIRCLE_TEST_DOCUMENTATION.md, etc.) are preserved as future-spec source material — move todocs/specs-todo/, do not delete. Same intent for other apps with long-form work-notes (opencatalogiQUALITY_REFACTORING_PLAN,openregisterQUALITY_OVERVIEWetc.).Diff
4 files, +87 / -27. The phpcs/phpmd description changes trigger the canonical-sync workflow (already enabled onphpcs.xmlandphpmd.xml), so once this lands the fleet will get PRs to adopt the generic descriptions across the 16 in-scope apps.