Skip to content

Latest commit

 

History

History
72 lines (50 loc) · 2.49 KB

CONTRIBUTING.md

File metadata and controls

72 lines (50 loc) · 2.49 KB

Contributing to napari hub

Want to contribute to the napari hub? Please follow the steps below and check out the contribution guide for an idea of good first issues you could work on.

Setup development environment

First you'll need to fork the repository on Github.

Clone the forked repository to your local machine and change directories:

git clone https://github.com/your-username/napari-hub.git
cd napari-hub

Set the upstream remote to the base napari-hub repository:

git remote add upstream https://github.com/chanzuckerberg/napari-hub.git

Now that you have the repo forked and cloned, you can start developing for the napari hub!

Frontend Only

If you're working on the frontend only, it's faster to run the frontend in development mode using Node.js. Please read frontend/README.md for setup.

End-to-End

If you're working on something that requires the backend, it's better to use docker-compose to start the frontend and backend at the same time. Please read DEV_ENV.md to for setup.

New Features

For new napari hub features, please start a discussion on the repo.

Pull Requests

When creating a pull request, please follow these guidelines:

  1. Keep PRs reasonably sized. Max 500 LOC is ideal. Prefer splitting into multiple PRs if you can.
  2. Include a description of what your PR does and any background information for nuanced topics.
  3. Do not request code reviews until the PR checks pass.
  4. Include screenshots / videos for frontend PRs if there are visual changes.

A good example is #77.

Frontend Checks

Creating a PR with changes to frontend/ will start workflows for testing and linting the PR. When contributing to the frontend, make sure these checks are passing:

Action Description
prettier Lints codebase with Prettier.
stylelint Lints styles with Stylelint.
eslint Lints JS/TS with ESLint.
jest Runs unit / integration tests.
tsc Type checks TypeScript code.

If you change a component, you may need to update the snapshots.