mirror of
https://github.com/wassname/catalyst.git
synced 2026-06-28 04:21:20 +08:00
509 lines
27 KiB
HTML
509 lines
27 KiB
HTML
|
|
|
|
<!DOCTYPE html>
|
|
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
|
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
|
<head>
|
|
<meta charset="utf-8">
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
<title>Release Process — Catalyst 0.3 documentation</title>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="top" title="Catalyst 0.3 documentation" href="index.html"/>
|
|
|
|
|
|
<script src="_static/js/modernizr.min.js"></script>
|
|
|
|
</head>
|
|
|
|
<body class="wy-body-for-nav" role="document">
|
|
|
|
<div class="wy-grid-for-nav">
|
|
|
|
|
|
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
|
<div class="wy-side-nav-search">
|
|
|
|
|
|
|
|
<a href="index.html" class="icon icon-home"> Catalyst
|
|
|
|
|
|
|
|
</a>
|
|
|
|
|
|
<div role="search">
|
|
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
|
<input type="text" name="q" placeholder="Search docs" />
|
|
<input type="hidden" name="check_keywords" value="yes" />
|
|
<input type="hidden" name="area" value="default" />
|
|
</form>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
|
|
|
|
|
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="install.html">Install</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="install.html#installing-with-conda">Installing with <code class="docutils literal"><span class="pre">conda</span></code></a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="install.html#troubleshooting-conda-install">Troubleshooting <code class="docutils literal"><span class="pre">conda</span></code> Install</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="install.html#installing-with-pip">Installing with <code class="docutils literal"><span class="pre">pip</span></code></a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="install.html#troubleshooting-pip-install">Troubleshooting <code class="docutils literal"><span class="pre">pip</span></code> Install</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="install.html#gnu-linux-requirements">GNU/Linux Requirements</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="install.html#amazon-linux-ami-notes">Amazon Linux AMI Notes</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="install.html#macos-requirements">MacOS Requirements</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="install.html#macos-virtualenv-matplotlib">MacOS + virtualenv + matplotlib</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="install.html#windows-requirements">Windows Requirements</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="install.html#getting-help">Getting Help</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="beginner-tutorial.html">Catalyst Beginner Tutorial</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="beginner-tutorial.html#basics">Basics</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="beginner-tutorial.html#my-first-algorithm">My first algorithm</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="beginner-tutorial.html#ingesting-data">Ingesting data</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="beginner-tutorial.html#running-the-algorithm">Running the algorithm</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="beginner-tutorial.html#command-line-interface">Command line interface</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="beginner-tutorial.html#access-to-previous-prices-using-history">Access to previous prices using <code class="docutils literal"><span class="pre">history</span></code></a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="beginner-tutorial.html#working-example-dual-moving-average-cross-over">Working example: Dual Moving Average Cross-Over</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="beginner-tutorial.html#next-steps">Next steps</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="jupyter.html">Catalyst & Jupyter Notebook</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="jupyter.html#install">Install</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="jupyter.html#running-algorithms">Running Algorithms</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="live-trading.html">Live Trading</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="live-trading.html#supported-exchanges">Supported Exchanges</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="live-trading.html#authentication">Authentication</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="live-trading.html#currency-symbols">Currency Symbols</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="live-trading.html#trading-an-algorithm">Trading an Algorithm</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="naming-convention.html">Naming Convention</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="example-algos.html">Example Algorithms</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="example-algos.html#buy-and-hodl-algorithm">Buy and Hodl Algorithm</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="example-algos.html#mean-reversion-algorithm">Mean Reversion Algorithm</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="utilities.html">Utilities</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="utilities.html#output-to-csv-file">Output to CSV file</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="utilities.html#extracting-market-data">Extracting market data</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="videos.html">Videos</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="videos.html#installation-macos">Installation: MacOS</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="videos.html#installation-windows">Installation: Windows</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="videos.html#backtesting-a-strategy">Backtesting a Strategy</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="resources.html">Resources</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="resources.html#related-3rd-party-apis">Related 3rd Party APIs</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="development-guidelines.html">Development Guidelines</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="development-guidelines.html#creating-a-development-environment">Creating a Development Environment</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="development-guidelines.html#git-branching-structure">Git Branching Structure</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="development-guidelines.html#contributing-to-the-docs">Contributing to the Docs</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="development-guidelines.html#commit-messages">Commit messages</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="development-guidelines.html#formatting-docstrings">Formatting Docstrings</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l1"><a class="reference internal" href="releases.html">Release Notes</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-3-9">Version 0.3.9</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="releases.html#bug-fixes">Bug Fixes</a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="releases.html#build">Build</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-3-8">Version 0.3.8</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="releases.html#id1">Bug Fixes</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-3-7">Version 0.3.7</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="releases.html#id2">Bug Fixes</a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="releases.html#id3">Build</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-3-6">Version 0.3.6</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="releases.html#id4">Bug Fixes</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-3-5">Version 0.3.5</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="releases.html#id5">Bug Fixes</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-3-4">Version 0.3.4</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="releases.html#id6">Bug Fixes</a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="releases.html#id7">Build</a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="releases.html#documentation">Documentation</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-3-3">Version 0.3.3</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="releases.html#id9">Bug Fixes</a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="releases.html#id10">Build</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-3-2">Version 0.3.2</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="releases.html#id11">Bug Fixes</a></li>
|
|
<li class="toctree-l3"><a class="reference internal" href="releases.html#id12">Build</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-3-1">Version 0.3.1</a><ul>
|
|
<li class="toctree-l3"><a class="reference internal" href="releases.html#id13">Bug Fixes</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-3">Version 0.3</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-2-dev5">Version 0.2.dev5</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-2-dev4">Version 0.2.dev4</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-2-dev3">Version 0.2.dev3</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-2-dev2">Version 0.2.dev2</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-2-dev1">Version 0.2.dev1</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-1-dev9">Version 0.1.dev9</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-1-dev8">Version 0.1.dev8</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-1-dev7">Version 0.1.dev7</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-1-dev6">Version 0.1.dev6</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</nav>
|
|
|
|
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
|
|
|
|
|
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
|
|
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
<a href="index.html">Catalyst</a>
|
|
</nav>
|
|
|
|
|
|
|
|
<div class="wy-nav-content">
|
|
<div class="rst-content">
|
|
<div role="navigation" aria-label="breadcrumbs navigation">
|
|
<ul class="wy-breadcrumbs">
|
|
<li><a href="index.html">Docs</a> »</li>
|
|
|
|
<li>Release Process</li>
|
|
<li class="wy-breadcrumbs-aside">
|
|
|
|
|
|
<a href="_sources/release-process.txt" rel="nofollow"> View page source</a>
|
|
|
|
|
|
</li>
|
|
</ul>
|
|
<hr/>
|
|
</div>
|
|
<div role="main" class="document">
|
|
|
|
<div class="section" id="release-process">
|
|
<h1>Release Process<a class="headerlink" href="#release-process" title="Permalink to this headline">¶</a></h1>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">This page is intended for developers of zipline.</p>
|
|
</div>
|
|
<div class="section" id="updating-the-release-notes">
|
|
<h2>Updating the Release Notes<a class="headerlink" href="#updating-the-release-notes" title="Permalink to this headline">¶</a></h2>
|
|
<p>When we are ready to ship a new release of zipline, edit the <a class="reference internal" href="releases.html"><em>Release Notes</em></a>
|
|
page. We will have been maintaining a whatsnew file while working on the release
|
|
with the new version. First, find that file in:
|
|
<code class="docutils literal"><span class="pre">docs/source/whatsnew/<version>.txt</span></code>. It will be the highest version number.
|
|
Edit the release date field to be today’s date in the format:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><month> <day>, <year>
|
|
</pre></div>
|
|
</div>
|
|
<p>for example, November 6, 2015.
|
|
Remove the active development warning from the whatsnew, since it will no
|
|
longer be pending release.
|
|
Update the title of the release from “Development” to “Release x.x.x” and
|
|
update the underline of the title to match the title’s width.</p>
|
|
<p>If you are renaming the release at this point, you’ll need to git mv the file
|
|
and also update releases.rst to reference the renamed file.</p>
|
|
<p>To build and view the docs locally, run:</p>
|
|
<div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span><span class="nb">cd </span>docs
|
|
<span class="nv">$ </span>make html
|
|
<span class="nv">$ </span><span class="o">{</span>BROWSER<span class="o">}</span> build/html/index.html
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="updating-the-python-stub-files">
|
|
<h2>Updating the Python stub files<a class="headerlink" href="#updating-the-python-stub-files" title="Permalink to this headline">¶</a></h2>
|
|
<p>PyCharm and other linters and type checkers can use <a class="reference external" href="https://www.python.org/dev/peps/pep-0484/#stub-files">Python stub files</a> for type hinting. For
|
|
example, we generate stub files for the <code class="xref py py-mod docutils literal"><span class="pre">api</span></code> namespace, since that
|
|
namespace is populated at import time by decorators on TradingAlgorithm
|
|
methods. Those functions are therefore hidden from static analysis tools, but
|
|
we can generate static files to make them available. Under <strong>Python 3</strong>, run
|
|
the following to generate any stub files:</p>
|
|
<div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>python etc/gen_type_stubs.py
|
|
</pre></div>
|
|
</div>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">In order to make stub consumers aware of the classes referred to in the
|
|
stub, the stub file should import those classes. However, since
|
|
<code class="docutils literal"><span class="pre">...</span> <span class="pre">import</span> <span class="pre">*</span></code> and <code class="docutils literal"><span class="pre">...</span> <span class="pre">import</span> <span class="pre">...</span> <span class="pre">as</span> <span class="pre">...</span></code> in a stub file will export
|
|
those imports, we import the names explicitly. For the stub for
|
|
<code class="docutils literal"><span class="pre">zipline.api</span></code>, this is done in a header string in the
|
|
<code class="docutils literal"><span class="pre">gen_type_stubs.py</span></code> script mentioned above. If new classes are added as
|
|
parameters or return types of <code class="docutils literal"><span class="pre">zipline.api</span></code> functions, then new imports
|
|
should be added to that header.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="updating-the-version">
|
|
<h2>Updating the <code class="docutils literal"><span class="pre">__version__</span></code><a class="headerlink" href="#updating-the-version" title="Permalink to this headline">¶</a></h2>
|
|
<p>We use <a class="reference external" href="https://github.com/warner/python-versioneer">versioneer</a> to
|
|
manage the <code class="docutils literal"><span class="pre">__version__</span></code> and <code class="docutils literal"><span class="pre">setup.py</span></code> version. This means that we pull
|
|
this information from our version control’s tags to ensure that they stay in
|
|
sync and to have very fine grained version strings for development installs.</p>
|
|
<p>To upgrade the version use the git tag command like:</p>
|
|
<div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>git tag <major>.<minor>.<micro>
|
|
<span class="nv">$ </span>git push <span class="o">&&</span> git push --tags
|
|
</pre></div>
|
|
</div>
|
|
<p>This will push the the code and the tag information.</p>
|
|
<p>Next, click the “Draft a new release” button on the <a class="reference external" href="https://github.com/quantopian/zipline/releases">zipline releases page</a>. For the new release,
|
|
choose the tag you just pushed, and publish the release.</p>
|
|
</div>
|
|
<div class="section" id="uploading-pypi-packages">
|
|
<h2>Uploading PyPI packages<a class="headerlink" href="#uploading-pypi-packages" title="Permalink to this headline">¶</a></h2>
|
|
<div class="section" id="sdist">
|
|
<h3><code class="docutils literal"><span class="pre">sdist</span></code><a class="headerlink" href="#sdist" title="Permalink to this headline">¶</a></h3>
|
|
<p>To build the <code class="docutils literal"><span class="pre">sdist</span></code> (source distribution) run:</p>
|
|
<div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>python setup.py sdist
|
|
</pre></div>
|
|
</div>
|
|
<p>from the zipline root. This will create a gzipped tarball that includes all the
|
|
python, cython, and miscellaneous files needed to install zipline. To test that
|
|
the source dist worked correctly, <code class="docutils literal"><span class="pre">cd</span></code> into an empty directory, create a new
|
|
virtualenv and then run:</p>
|
|
<div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>pip install <zipline-root>/dist/zipline-<major>.<minor>.<micro>.tar.gz
|
|
<span class="nv">$ </span>python -c <span class="s1">'import zipline;print(zipline.__version__)'</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>This should print the version we are expecting to release.</p>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">It is very important to both <code class="docutils literal"><span class="pre">cd</span></code> into a clean directory and make a clean
|
|
virtualenv. Changing directories ensures that we have included all the needed
|
|
files in the manifest. Using a clean virtualenv ensures that we have listed
|
|
all the required packages.</p>
|
|
</div>
|
|
<p>Now that we have tested the package locally, it should be tested using the test
|
|
PyPI server.</p>
|
|
<p>Edit your <code class="docutils literal"><span class="pre">~/.pypirc</span></code> file to look like:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre>[distutils]
|
|
index-servers =
|
|
pypi
|
|
pypitest
|
|
|
|
[pypi]
|
|
username:
|
|
password:
|
|
|
|
[pypitest]
|
|
repository: https://testpypi.python.org/pypi
|
|
username:
|
|
password:
|
|
</pre></div>
|
|
</div>
|
|
<p>after that, run:</p>
|
|
<div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>python setup.py sdist upload -r pypitest
|
|
</pre></div>
|
|
</div>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p>If the package version has been taken: locally update your setup.py to
|
|
override the version with a new number. Do not use the next version, just
|
|
append a <code class="docutils literal"><span class="pre">.<nano></span></code> section to the current version. PyPI prevents the same
|
|
package version from appearing twice, so we need to work around this when
|
|
debugging packaging problems on the test server.</p>
|
|
<div class="last admonition warning">
|
|
<p class="first admonition-title">Warning</p>
|
|
<p class="last">Do not commit the temporary version change.</p>
|
|
</div>
|
|
</div>
|
|
<p>This will upload zipline to the pypi test server. To test installing from pypi,
|
|
create a new virtualenv, <code class="docutils literal"><span class="pre">cd</span></code> into a clean directory and then run:</p>
|
|
<div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>pip install --extra-index-url https://testpypi.python.org/pypi zipline
|
|
<span class="nv">$ </span>python -c <span class="s1">'import zipline;print(zipline.__version__)'</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>This should pull the package you just uploaded and then print the version
|
|
number.</p>
|
|
<p>Now that we have tested locally and on PyPI test, it is time to upload to PyPI:</p>
|
|
<div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>python setup.py sdist upload
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="bdist">
|
|
<h3><code class="docutils literal"><span class="pre">bdist</span></code><a class="headerlink" href="#bdist" title="Permalink to this headline">¶</a></h3>
|
|
<p>Because zipline now supports multiple versions of numpy, we’re not building
|
|
binary wheels, since they are not tagged with the version of numpy with which
|
|
they were compiled.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="documentation">
|
|
<h2>Documentation<a class="headerlink" href="#documentation" title="Permalink to this headline">¶</a></h2>
|
|
<p>To update <a class="reference external" href="http://www.zipline.io/index.html">zipline.io</a>, checkout the
|
|
latest master and run:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="n">python</span> <span class="o"><</span><span class="n">zipline_root</span><span class="o">>/</span><span class="n">docs</span><span class="o">/</span><span class="n">deploy</span><span class="o">.</span><span class="n">py</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>This will build the documentation, checkout a fresh copy of the <code class="docutils literal"><span class="pre">gh-pages</span></code>
|
|
git branch, and copy the built docs into the zipline root.</p>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">The docs should always be built with <strong>Python 3</strong>. Many of our api functions
|
|
are wrapped by preprocessing functions which accept *args and **kwargs. In
|
|
Python 3, sphinx will respect the <code class="docutils literal"><span class="pre">__wrapped__</span></code> attribute and display the
|
|
correct arguments.</p>
|
|
</div>
|
|
<p>Now, using our browser of choice, view the <code class="docutils literal"><span class="pre">index.html</span></code> page and verify that
|
|
the docs look correct.</p>
|
|
<p>Once we are happy, push the updated docs to the GitHub <code class="docutils literal"><span class="pre">gh-pages</span></code> branch.</p>
|
|
<div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>git add .
|
|
<span class="nv">$ </span>git commit -m <span class="s2">"DOC: update zipline.io"</span>
|
|
<span class="nv">$ </span>git push origin gh-pages
|
|
</pre></div>
|
|
</div>
|
|
<p><a class="reference external" href="http://www.zipline.io/index.html">zipline.io</a> will update in a few moments.</p>
|
|
</div>
|
|
<div class="section" id="uploading-conda-packages">
|
|
<h2>Uploading conda packages<a class="headerlink" href="#uploading-conda-packages" title="Permalink to this headline">¶</a></h2>
|
|
<p>Travis and AppVeyor build zipline conda packages for us. Once they have built
|
|
and uploaded to anaconda.org the packages (and their dependencies) for the
|
|
release commit to master, we should move those packages from the “ci” label to
|
|
the “main” label. You can do this from the anaconda.org web interface. This
|
|
is also a good time to remove all the old “ci” packages from anaconda.</p>
|
|
<p>Travis and AppVeyor only build and upload linux-64 and win-64 packages. We’ll
|
|
need to build and upload osx-64 packages manually on an OSX machine.</p>
|
|
<p>To build the conda packages for zipline locally, run:</p>
|
|
<div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>python etc/conda_build_matrix.py
|
|
</pre></div>
|
|
</div>
|
|
<p>If all of the builds succeed, then this will not print anything and exit with
|
|
<code class="docutils literal"><span class="pre">EXIT_SUCCESS</span></code>. If there are build issues, we must address them and decide
|
|
what to do.</p>
|
|
<p>Once all of the builds in the matrix pass, we can upload them to anaconda with:</p>
|
|
<div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>python etc/conda_build_matrix.py --upload
|
|
</pre></div>
|
|
</div>
|
|
<p>If you would like to test this command by uploading to a different user, this
|
|
may be specified with the <code class="docutils literal"><span class="pre">--user</span></code> flag.</p>
|
|
</div>
|
|
<div class="section" id="next-commit">
|
|
<h2>Next Commit<a class="headerlink" href="#next-commit" title="Permalink to this headline">¶</a></h2>
|
|
<p>Push a new commit post-release that adds the whatsnew for the next release,
|
|
which should be titled according to a micro version increment. If that next
|
|
release turns out to be a major/minor version increment, the file can be
|
|
renamed when that’s decided. You can use <code class="docutils literal"><span class="pre">docs/source/whatsnew/skeleton.txt</span></code>
|
|
as a template for the new file.</p>
|
|
<p>Include the whatsnew file in <code class="docutils literal"><span class="pre">docs/source/releases.rst</span></code>. New releases should
|
|
appear at the top. The syntax for this is:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre>.. include:: whatsnew/<version>.txt
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<footer>
|
|
|
|
|
|
<hr/>
|
|
|
|
<div role="contentinfo">
|
|
<p>
|
|
© Copyright 2017, Enigma MPC, Inc..
|
|
</p>
|
|
</div>
|
|
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
|
|
</footer>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</section>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
var DOCUMENTATION_OPTIONS = {
|
|
URL_ROOT:'./',
|
|
VERSION:'0.3',
|
|
COLLAPSE_INDEX:false,
|
|
FILE_SUFFIX:'.html',
|
|
HAS_SOURCE: true
|
|
};
|
|
</script>
|
|
<script type="text/javascript" src="_static/jquery.js"></script>
|
|
<script type="text/javascript" src="_static/underscore.js"></script>
|
|
<script type="text/javascript" src="_static/doctools.js"></script>
|
|
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript" src="_static/js/theme.js"></script>
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
jQuery(function () {
|
|
SphinxRtdTheme.StickyNav.enable();
|
|
});
|
|
</script>
|
|
|
|
|
|
</body>
|
|
</html> |