Files
cellxgene/docs/_site/posts/contribute.html
2019-11-22 14:59:40 -08:00

175 lines
8.3 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Begin Jekyll SEO tag v2.5.0 -->
<title>Code of conduct | cellxgene</title>
<meta name="generator" content="Jekyll v3.8.5" />
<meta property="og:title" content="Code of conduct" />
<meta property="og:locale" content="en_US" />
<link rel="canonical" href="http://localhost:4000/posts/contribute.html" />
<meta property="og:url" content="http://localhost:4000/posts/contribute.html" />
<meta property="og:site_name" content="cellxgene" />
<script type="application/ld+json">
{"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"http://localhost:4000/cellxgene-logo.png"}},"@type":"WebPage","url":"http://localhost:4000/posts/contribute.html","headline":"Code of conduct","@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<link rel="stylesheet" href="/assets/css/style.css?v=be9a415a4a06db270354d81837f6e78c71555064">
<!--[if lt IE 9]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<![endif]-->
</head>
<body>
<div class="wrapper">
<header>
<img src="/cellxgene-logo.png" alt="cellxgene" />
<p></p>
<p>
<a href="/" class="btn">Quick start</a><br>
<a href="/posts/install" class="btn">Installation</a><br>
<a href="/posts/gallery" class="btn">Gallery</a><br>
<a href="/posts/demo-data" class="btn">Demo datasets</a><br>
<a href="/posts/prepare" class="btn">Preparing your data</a><br>
<a href="/posts/launch" class="btn">Launching cellxgene</a><br>
<a href="/posts/hosted" class="btn">Hosting cellxgene</a><br>
<a href="/posts/annotations" class="btn">Annotating data</a><br>
<a href="/posts/methods" class="btn">Methods</a><br>
<a href="/posts/troubleshooting" class="btn">Troubleshooting</a><br>
<a href="/posts/roadmap" class="btn">Roadmap</a><br>
<a href="/posts/contribute" class="btn"><b>Contributing (ideas or code)</b></a><br>
<a href="/posts/contact" class="btn">Contact & finding help</a><br>
<a href="https://github.com/chanzuckerberg/cellxgene" class="btn" target="_blank">Code</a>
</p>
</header>
<section>
<h1 id="code-of-conduct">Code of conduct</h1>
<p>We warmly welcome contributions from the community!</p>
<p>To ensure a welcoming experience for our entire community, this project adheres to the Contributor Covenant
<a href="https://github.com/chanzuckerberg/.github/tree/master/CODE_OF_CONDUCT.md">code of conduct</a>.
By participating, you are expected to uphold this code. Please report unacceptable behavior
to opensource@chanzuckerberg.com.</p>
<p>If you have any questions about any of this stuff, just ask! :)</p>
<h1 id="contributing-ideas-and-issues">Contributing ideas and issues</h1>
<p>Wed love to hear from you! Please submit any bug reports and feature requests through <a href="https://github.com/chanzuckerberg/cellxgene/issues">Github issues</a>.</p>
<h1 id="direct-contributions">Direct contributions</h1>
<h2 id="getting-started">Getting started</h2>
<p>If you are interested in working on <code class="highlighter-rouge">cellxgene</code> development, youll need to use git to make a copy of the <a href="https://www.youtube.com/watch?v=A-4WltCTVms&amp;list=PLe6EXFvnTV7-_41SpakZoTIYCgX4aMTdU&amp;index=2&amp;t=0s">project repository</a> and share your changes.
If youre new to git, we recommend <a href="https://www.gitkraken.com/">GitKraken</a> for an intuitive interface.</p>
<p>Please submit any direct contributions by <a href="https://www.youtube.com/watch?v=Lb4yvfrX_7I&amp;list=PLe6EXFvnTV7-_41SpakZoTIYCgX4aMTdU&amp;index=3&amp;t=9s">forking the repository</a>, creating a branch, and <a href="https://www.youtube.com/watch?v=2VX1ISk9XH8&amp;list=PLe6EXFvnTV7-_41SpakZoTIYCgX4aMTdU&amp;index=9&amp;t=0s">submitting a Pull Request</a>.</p>
<p>First, youll need the following installed on your machine</p>
<ul>
<li>python 3.6+</li>
<li>node and npm (we recommend using <a href="https://github.com/creationix/nvm">nvm</a> if this is your first time with node)</li>
</ul>
<p>Then clone the project</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone https://github.com/chanzuckerberg/cellxgene.git
</code></pre></div></div>
<p>This is enough to get you started with editing documentation. If youd like to contribute code:</p>
<p>Build the client web assets by calling <code class="highlighter-rouge">make</code> from inside the <code class="highlighter-rouge">cellxgene</code> folder</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>make
</code></pre></div></div>
<p>Install all requirements (we recommend doing this inside a <a href="install">virtual environment</a>)</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pip install -e .
</code></pre></div></div>
<p>You can start the app while developing either by calling <code class="highlighter-rouge">cellxgene</code> or by calling <code class="highlighter-rouge">python -m server</code>. We recommend using the <code class="highlighter-rouge">--debug</code> flag to see more output, which you can include when reporting bugs.</p>
<p>If you have any questions about developing or contributing, come hang out with us by joining the <a href="https://join-cellxgene-users.herokuapp.com/">CZI Science Slack</a> and posting in the <code class="highlighter-rouge">#cellxgene-dev</code> channel.</p>
<h2 id="contributing-code">Contributing code</h2>
<p>This project has made a few key design choices:</p>
<ul>
<li>The front-end is built with <a href="https://github.com/regl-project/regl"><code class="highlighter-rouge">regl</code></a> (a webgl library), <a href="https://reactjs.org/"><code class="highlighter-rouge">react</code></a>, <a href="https://redux.js.org/"><code class="highlighter-rouge">redux</code></a>, <a href="https://github.com/d3/d3"><code class="highlighter-rouge">d3</code></a>, and <a href="https://blueprintjs.com/docs/#core"><code class="highlighter-rouge">blueprint</code></a> to handle rendering large numbers of cells with lots of complex interactivity</li>
<li>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 <a href="https://github.com/theislab/scanpy">scanpy</a>)</li>
<li>The client uses fast cross-filtering to handle selections and comparisons across subsets of data</li>
</ul>
<p>Depending on your background and interests, you might want to contribute to the frontend, or backend, or both!</p>
<p>Please submit any direct contributions via a Pull Request. Itd 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.</p>
<h2 id="contributing-documentation">Contributing documentation</h2>
<p>The documentation is written in <a href="https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet">markdown</a>, and lives in the directory <code class="highlighter-rouge">cellxgene/docs/posts</code>. You can directly edit or add to these files and submit a Pull Request as described above.</p>
<p>To preview your changes on your local machine, youll need to install Jekyll and Ruby using <a href="https://jekyllrb.com/docs/installation/">these instructions</a> (you dont have to know how to program in Ruby, just install it).</p>
<p>You can then preview your changes by running <code class="highlighter-rouge">cellxgene/docs$ bundle exec jekyll serve</code> and navigating to the url indicated in the terminal.</p>
</section>
<footer>
<p>This project is maintained by <a href="https://github.com/chanzuckerberg">chanzuckerberg</a></p>
</footer>
</div>
<script src="/assets/js/scale.fix.js"></script>
</body>
</html>