mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-09-16 21:37:59 +08:00
* update contrib process recommendations * fix typos * clarification * fix build instructions * updates suggested by Matt * fix dead link
76 lines
4.3 KiB
Markdown
76 lines
4.3 KiB
Markdown
# Code of conduct
|
|
|
|
We warmly welcome contributions from the community!
|
|
|
|
To ensure a welcoming experience for our entire community, this project adheres to the Contributor Covenant
|
|
[code of conduct](https://github.com/chanzuckerberg/.github/tree/master/CODE_OF_CONDUCT.md).
|
|
By participating, you are expected to uphold this code. Please report unacceptable behavior
|
|
to opensource@chanzuckerberg.com.
|
|
|
|
If you have any questions about any of this stuff, just ask! :)
|
|
|
|
# Contributing ideas and issues
|
|
|
|
We'd love to hear from you! Please submit any bug reports and feature requests through [Github issues](https://github.com/chanzuckerberg/cellxgene/issues).
|
|
|
|
# Direct contributions
|
|
|
|
## Getting started
|
|
|
|
If you are interested in working on `cellxgene` development, you'll need to use git to make a copy of the [project repository](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/working-with-forks) and share your changes.
|
|
|
|
We have several "rules" (strong suggestions really) for contributions:
|
|
|
|
1. If your contribution is complex, adds new features, new UI design or otherwise warrants discussion, we highly recommend that you submit a github issue, and engage other contributors in a discussion about the details of your proposed PR. This will save you time in the long run, as many details and decisions can be hashed out ahead-of-time.
|
|
|
|
2. Please submit any direct contributions by [forking the repository](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/working-with-forks), creating a feature branch, and [submitting a Pull Request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request).
|
|
|
|
First, you'll need the following installed on your machine
|
|
|
|
- python 3.6+
|
|
- node and npm (we recommend using [nvm](https://github.com/creationix/nvm) if this is your first time with node)
|
|
|
|
Then clone the project
|
|
|
|
```
|
|
git clone https://github.com/chanzuckerberg/cellxgene.git
|
|
```
|
|
|
|
This is enough to get you started with editing documentation. If you'd like to contribute code:
|
|
|
|
Build the client web assets from inside the `cellxgene` folder
|
|
|
|
```
|
|
make build-for-server-dev
|
|
```
|
|
|
|
Install all requirements (we recommend doing this inside a [virtual environment](https://docs.python.org/3/tutorial/venv.html))
|
|
|
|
```
|
|
pip install -e .
|
|
```
|
|
|
|
You can start the app while developing either by calling `cellxgene` or by calling `python -m server`. We recommend using the `--debug` flag to see more output, which you can include when reporting bugs.
|
|
|
|
If you have any questions about developing or contributing, come hang out with us by joining the [CZI Science Slack](https://join-cellxgene-users.herokuapp.com/) and posting in the `#cellxgene-dev` channel.
|
|
|
|
## Contributing code
|
|
|
|
This project has made a few key design choices:
|
|
|
|
- The front-end is built with [`regl`](https://github.com/regl-project/regl) (a webgl library), [`react`](https://reactjs.org/), [`redux`](https://redux.js.org/), [`d3`](https://github.com/d3/d3), and [`blueprint`](https://blueprintjs.com/docs/#core) to handle rendering large numbers of cells with lots of complex interactivity
|
|
- The app is designed with a client-server model that can support a range of existing analysis packages for Python-based backend computational tasks (currently built for [scanpy](https://github.com/theislab/scanpy))
|
|
- The client uses fast cross-filtering to handle selections and comparisons across subsets of data
|
|
|
|
Depending on your background and interests, you might want to contribute to the frontend, or backend, or both!
|
|
|
|
Please submit any direct contributions via a Pull Request. It'd be great for PRs to include test cases and documentation updates where relevant, though we know the core test suite is itself still a work in progress.
|
|
|
|
## Contributing documentation
|
|
|
|
The documentation is written in [markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet), and lives in the directory `cellxgene/docs/posts`. You can directly edit or add to these files and submit a Pull Request as described above.
|
|
|
|
To preview your changes on your local machine, you'll need to install Jekyll and Ruby using [these instructions](https://jekyllrb.com/docs/installation/) (you don't have to know how to program in Ruby, just install it).
|
|
|
|
You can then preview your changes by running `cellxgene/docs$ bundle exec jekyll serve` and navigating to the url indicated in the terminal.
|