Thank you for being an important part of the Evidence community! ❤️
This guide is meant for anyone who would like to contribute to Evidence - either through code or through suggestions and ideas. Even if you've never contributed to an open source project before, you are welcome to contribute to Evidence.
- Be respectful
- Help each other
- Document solutions to problems for the benefit of the community
Issues can include bugs, feature ideas, docs improvements, database connector requests, and any other suggestions or ideas you have for improving Evidence.
- Look before you post - read the docs, check if an issue already exists
- If an issue already exists, upvote and comment on it! Let us know multiple people have the issue by adding a thumbs up to that issue
- Use the right issue template - bug report, docs request, feature request, database connector request
- Give your issue a clear and descriptive title
- Help us help you - fill out the issue template, give clear system info, error messages, and steps to reproduce
If you create a new issue, someone from the Evidence team will respond within 24 hours.
If you have a solution for an issue someone else posted, please comment on that issue with the solution.
If your problem relates to sensitive or private information, please don't post any of your data in an issue. We suggest creating a small test dataset that can reproduce the problem without revealing any private info, and posting that data in the issue. If that's not possible, please reach out to [email protected].
Follow these steps to test your changes
- In the project root folder, run
pnpm install
(you will need to install pnpm if you don't have itnpm i -g pnpm
) pnpm run dev
You should be able to open the Evidence Development Workspace
on localhost:3000
. Any subsequent changes you make will be reflected on the website.
Note that changes to the components
package should be done within ./sites/example-project/src/components
. During the build, ./sites/example-project/src/components
will be copied over to ./packages/components
). All other packages can be updated directly in ./packages
.
The automated test suite should run upon PR creation via Github actions.
You can also run the tests locally via pnpm test
. Note that for the DB tests, enviroment variables need to be test. Under each DB package, you can add a .env
file with the credentials needed for each DB type. Take a look at the index.cjs
file for the variables required for each DB driver.
Pull requests are welcome! We review pull requests as they are submitted and will reach out to you with any questions or comments.
Follow these steps to submit a pull request for your changes:
- Create a fork of the
evidence
repo - Commit your changes to your fork
- Test your changes to make sure all results are as expected
- Add a changeset*
- Open a pull request against the
main
branch of theevidence
repo
Here's an example of a pull request from a community member who built Evidence's MySQL connector.
Changesets ensure that package versions are updated correctly before releasing onto NPM.
cd
to the root of the monorepopnpm changeset
- Follow the steps in the CLI to add some change notes:
- Bump the packages that have changed
- Most things are patch changes, not major or minor patch bumps
- Unless you're making changes that will break someone's project, or change it in a really unexpected way, just do a patch release
- Commit the release notes to your branch so they'll be included as part of the PR
- the file will be called three random words like delighted-fish-brick.md
If you're passionate about what we're building at Evidence and want to join our team, reach out to us at [email protected].