Files
moreminimore-vibe/CONTRIBUTING.md
Toluwap 78b69ae508 Update missing direction creation (#1146)
Update the doc for missing userData for the database.
    
<!-- This is an auto-generated description by cubic. -->
---

## Summary by cubic
Add a setup step in CONTRIBUTING.md to create the userData directory
required by the database. This prevents migration commands from failing
on fresh installs.

<!-- End of auto-generated description by cubic. -->
2025-09-01 21:24:46 -07:00

2.1 KiB

Contributing

Dyad is still a very early-stage project, thus the codebase is rapidly changing.

Before opening a pull request, please open an issue and discuss whether the change makes sense in Dyad. Ensuring a cohesive user experience sometimes means we can't include every possible feature or we need to consider the long-term design of how we want to support a feature area.

For a high-level overview of how Dyad works, please see the Architecture Guide. Understanding the architecture will help ensure your contributions align with the overall design of the project.

More than code contributions

Something that I really appreciate are all the non-code contributions, such as reporting bugs, writing feature requests and participating on Dyad's sub-reddit.

Development

Dyad is an Electron app.

Install dependencies:

npm install

Create the userData directory (required for database)

# Unix/macOS/Linux:
mkdir -p userData

# Windows PowerShell (run only if folder doesn't exist):
mkdir userData

# Windows Command Prompt (run only if folder doesn't exist):
md userData

Apply migrations:

# Generate and apply database migrations
npm run db:generate
npm run db:push

Run locally:

npm start

Setup

If you'd like to contribute a pull request, we highly recommend setting the pre-commit hooks which will run the formatter and linter before each git commit. This is a great way of catching issues early on without waiting to run the GitHub Actions for your pull requet.

Simply run this once in your repo:

npm run init-precommit

Testing

Unit tests

npm test

E2E tests

Build the app for E2E testing:

npm run pre:e2e

Note: you only need to re-build the app when changing the app code. You don't need to re-build the app if you're just updating the tests.

Run the whole e2e test suite:

npm run e2e

Run a specific test file:

npm run e2e e2e-tests/context_manage.spec.ts

Update snapshots for a test:

npm run e2e e2e-tests/context_manage.spec.ts -- --update-snapshots