Skip to main content

Repository

Notes for contributors and maintainers. To use the plugin, start with getting started.

Layout​

  • plugin/: the payload-crowdin-sync package published to npm.
  • dev/: Payload install used for integration tests.
  • docs-site/: this documentation site, built with Docusaurus and published to GitHub Pages.

The repository is an Nx monorepo. See Nx for general Nx commands.

Scripts​

npm install
npm run test # unit and integration tests
npm run test:coverage # the same, with coverage reports in coverage/<project>
npm run generate:importmaps # regenerate the Payload import map in dev/
npm run docs:serve # run this site locally

See development for how the tests are organised, and why import maps matter.

Continuous integration​

On every pull request and push to main, CI:

  • checks that the Payload import map is committed and up to date
  • runs all tests with coverage
  • uploads coverage to Codecov and keeps the reports as a build artifact for 14 days

See PR labels for how pull requests are labelled.

Release​

Releases are managed by release-please. When a release PR is merged to main, the release-please workflow builds and publishes payload-crowdin-sync to npm via trusted publishing (OIDC).

One-time npm setup (package maintainer): on npmjs.com, go to Settings > Trusted publishing and add a GitHub Actions publisher for repository thompsonsj/payload-crowdin-sync and workflow filename release-please.yml. After verifying automated publishes work, revoke the NPM_TOKEN repository secret.

Manual publish remains available as a fallback:

npm run release

Other notes​