Skip to content
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
rubenvdlinde merged 1 commit into
developmentfrom
docs/canonical-policy-tighten
May 23, 2026
Merged

fix(canonical-policy): retire description deviation + clarify test/.sh placement#56
rubenvdlinde merged 1 commit into
developmentfrom
docs/canonical-policy-tighten

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Follow-up to #55 with four corrections raised in review.

1. No more per-app description deviations

phpcs.xml and phpmd.xml now 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 inner

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.

Policy doc updated to reflect: no per-app deviations in the canonical files.

2. Test scripts → tests/, not scripts/dev/

App-unique test files (.sh, shell-driven Newman, integration scenarios) ARE the app's test suite and belong alongside unit / Playwright / Newman in tests/. scripts/dev/ is for diagnostic one-shot dev utilities (debug_*.php, check_*.php, etc.), NOT for tests.

Audit doc softwarecatalog section 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 out

New 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 .gitignore already covers all of these.

Follow-up audit one-liner included to find fleet apps still committing them.

4. softwarecatalog reframed as special case

The WIP / issue / testing notes (AMEF_TESTING.md, BUG_FIX_*.md, CIRCLE_TEST_DOCUMENTATION.md, etc.) 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 QUALITY_REFACTORING_PLAN, openregister QUALITY_OVERVIEW etc.).

Diff

4 files, +87 / -27. The phpcs/phpmd description changes trigger the canonical-sync workflow (already enabled on phpcs.xml and phpmd.xml), so once this lands the fleet will get PRs to adopt the generic descriptions across the 16 in-scope apps.

…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.).
@rubenvdlinde rubenvdlinde merged commit 216bf51 into development May 23, 2026
2 of 15 checks passed
@rubenvdlinde rubenvdlinde deleted the docs/canonical-policy-tighten branch May 23, 2026 06:54
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/nextcloud-app-template @ 9bea3c6

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.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant