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.
Prerequisites
Section titled “Prerequisites”- Development:
- Node 24+ (with pnpm) - How to Install
- Python 3.12+ (with uv) - How to Install
- Releasing:
Development
Section titled “Development”Getting Started
Section titled “Getting Started”Start by cloning the repository or its fork, installing the dependencies, configuring the extension, and starting the site:
git clone https://github.com/datisthq/extensiondp.gitcd extensiondppnpm installpnpm configurepnpm startManaging the Project
Section titled “Managing the Project”pnpm install- Install dependenciespnpm configure- Configure extension metadata (slug, title, description, etc.)pnpm generate- Generate TypeScript and Python SDKs from schemaspnpm format- Format the project files to consistent stylepnpm start- Start the documentation site in development modepnpm test- Verify project integrity
Working on the Extension
Section titled “Working on the Extension”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.
Generating SDKs
Section titled “Generating SDKs”If you modify the profile or schemas, you need to generate the SDKs and commit the changes:
pnpm generategit commit -am "My changes"Releasing
Section titled “Releasing”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:
- Squash and merge the PR using conventional commits.
- Github Actions will automatically create a new release, publish the extension to PyPI and NPM, and publish the documentation to GitHub Pages.