Skip to content

Contributing

github-actions[bot] edited this page Sep 5, 2026 · 1 revision

Contributing

Contributions to code, tests, translations, accessibility, documentation, interoperability fixtures, and scholarly workflow design are welcome.

Before starting

  1. Read the repository README, CONTRIBUTING.md, and Code of Conduct.
  2. Search the issue tracker and existing pull requests.
  3. For a substantial or compatibility-sensitive change, open an issue first so the model, migration, and integration boundaries can be agreed before implementation.
  4. Keep changes modular and aligned with the OMI document, annotation, citation, identity, review, and publishing models.

Development workflow

git clone https://github.com/open-manuscript-initiative/open-manuscript-studio.git
cd open-manuscript-studio
npm ci

Create a focused branch, implement the change, and keep generated or platform-specific files out of the diff unless the change actually requires them.

Minimum verification for frontend/shared-core changes:

npm run lint
npm test
npm run build

When the visible user journey changes:

npm run playwright:install
npm run test:e2e

For API or Prisma changes:

cd server
npm ci
npm run prisma:generate:all
npm run typecheck
npm run build

Database changes must include forward migrations in the correct migration tree. Do not edit an already applied migration to disguise a new schema change.

Pull-request checklist

  • The change solves one clearly stated problem.
  • Tests cover new behavior and important regressions.
  • Desktop and mobile responsive behavior are considered where relevant.
  • Import/export behavior preserves semantic structure and stable identifiers.
  • New user-facing strings follow the localization workflow.
  • Secrets, real user data, production identifiers, and generated credentials are absent.
  • Documentation and release notes are updated when public behavior changes.
  • Application, schema, integration, and platform build versions remain conceptually separate.

Localization

Interface locales are JSON/PO managed. Use the repository scripts rather than editing generated output blindly:

npm run i18n:validate-json
npm run i18n:po:audit
npm run i18n:po:roundtrip

See localization and the current translation audit.

Security reports

Do not open a public issue for an exploitable vulnerability. Follow the repository Security Policy and use GitHub private vulnerability reporting when available.

Clone this wiki locally