opsdash-app/CONTRIBUTING.md
blade34242 d0d5d626b1
All checks were successful
Nextcloud Server Tests / version-consistency (push) Successful in 36s
Nextcloud Server Tests / matrix-config (push) Successful in 29s
Nextcloud Server Tests / Nextcloud stable31 / PHP 8.2 (stable31, 8.2) (push) Successful in 16m42s
Nextcloud Server Tests / Nextcloud stable31 / PHP 8.3 (stable31, 8.3) (push) Successful in 16m39s
Nextcloud Server Tests / Nextcloud stable32 / PHP 8.2 (stable32, 8.2) (push) Successful in 17m28s
Nextcloud Server Tests / Nextcloud stable32 / PHP 8.3 (stable32, 8.3) (push) Successful in 16m42s
Nextcloud Server Tests / Nextcloud stable33 / PHP 8.2 (stable33, 8.2) (push) Successful in 16m52s
Nextcloud Server Tests / Nextcloud stable33 / PHP 8.3 (stable33, 8.3) (push) Successful in 16m56s
Nextcloud Server Tests / Nextcloud stable34 / PHP 8.2 (stable34, 8.2) (push) Successful in 16m53s
Nextcloud Server Tests / Nextcloud stable34 / PHP 8.3 (stable34, 8.3) (push) Successful in 16m48s
Raise Nextcloud minimum to 31
2026-07-14 13:35:35 +07:00

1.3 KiB

Contributing Guide

Thanks for your interest in improving this app! A few guidelines:

Long-form internal docs, release runbooks, and ops notes live in the sibling opsdash-docs and opsdash-ops workspace repos. Keep this repo's docs limited to contributor-facing guidance.

Development

  • Requirements: Node.js 20+, Nextcloud 31-34.
  • Install deps: npm ci
  • Build: npm run build (produces js/.vite/manifest.json + hashed assets).
  • Dev: npm run dev for frontend iteration; build for NC integration.

Coding Standards

  • PHP: PSR-12, strict types where possible, thin controllers, logic in services.
  • TypeScript: prefer strict typing, avoid any, keep components small (<150 LOC).
  • Security: never add state changes to read endpoints; POST+CSRF for writes.
  • CSP: no inline scripts; minimize inline styles (prefer CSS classes/files).

Commits & PRs

  • Keep PRs scoped; include tests or testing steps.
  • Update app-facing docs (README.md, SECURITY.md, CHANGELOG.md, this file) when behavior changes.
  • Update sibling long-form docs when architecture, release, or ops workflows move.
  • Describe any performance impact and migration notes.
  • npm run test:unit (Vitest) and composer run test:unit (PHPUnit).

Reporting Issues

  • Include NC version, app version, steps to reproduce, and server logs (sanitized).