-
-
Notifications
You must be signed in to change notification settings - Fork 1
Contributing
Contributions to code, tests, translations, accessibility, documentation, interoperability fixtures, and scholarly workflow design are welcome.
- Read the repository README, CONTRIBUTING.md, and Code of Conduct.
- Search the issue tracker and existing pull requests.
- For a substantial or compatibility-sensitive change, open an issue first so the model, migration, and integration boundaries can be agreed before implementation.
- Keep changes modular and aligned with the OMI document, annotation, citation, identity, review, and publishing models.
git clone https://github.com/open-manuscript-initiative/open-manuscript-studio.git
cd open-manuscript-studio
npm ciCreate 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 buildWhen the visible user journey changes:
npm run playwright:install
npm run test:e2eFor API or Prisma changes:
cd server
npm ci
npm run prisma:generate:all
npm run typecheck
npm run buildDatabase changes must include forward migrations in the correct migration tree. Do not edit an already applied migration to disguise a new schema change.
- 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.
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:roundtripSee localization and the current translation audit.
Do not open a public issue for an exploitable vulnerability. Follow the repository Security Policy and use GitHub private vulnerability reporting when available.