Skip to content

Contributing

Here you can find the guidelines for contributing to the extension. We welcome any kind of contributions either by opening issues or by submitting pull requests.

  • Development:
  • Releasing:
    • Configured a pending trusted publisher on PyPI matching the extension name (slug)
    • Created an access token on NPM, added to Github as a repository secret NPM_TOKEN
    • Updated the publishing source on GitHub to Github Actions.

Start by cloning the repository or its fork, installing the dependencies, configuring the extension, and starting the site:

Terminal window
git clone https://github.com/datisthq/extensiondp.git
cd extensiondp
pnpm install
pnpm configure
pnpm start
  • pnpm install - Install dependencies
  • pnpm configure - Configure extension metadata (slug, title, description, etc.)
  • pnpm generate - Generate TypeScript and Python SDKs from schemas
  • pnpm format - Format the project files to consistent style
  • pnpm start - Start the documentation site in development mode
  • pnpm test - Verify project integrity

The fiels you need to edit to update the extension:

  • extension/profile.json - Edit the profile to model your data package
  • extension/schemas/ - Edit the schemas to model your data tables
  • extension/content/docs/index.mdx - Edit the homepage
  • extension/content/docs/overview/ - Edit not generated documentation pages

The rest of the files are generic or generated and should not be edited directly unless you want a more granular control over the extension development.

If you modify the profile or schemas, you need to generate the SDKs and commit the changes:

Terminal window
pnpm generate
git commit -am "My changes"

After your pull request is ready to be merged, you can release a new version of the extension by merging the pull request into the main branch:

  1. Squash and merge the PR using conventional commits.
  2. Github Actions will automatically create a new release, publish the extension to PyPI and NPM, and publish the documentation to GitHub Pages.