Posts written by Ian Good
A well-documented Python library is something to be proud of. Reading through the code, you've got docstrings explaining the various parameters and constraints around your functions, hopefully using standards like Sphinx or Google formatting. Having to open up the code to find this information is less than ideal, but it's easy to turn these docstrings into beautiful, hosted HTML, updated every time you push to GitHub.
We'll be taking advantage of plenty of different technologies to make this happen:
- ReadTheDocs manages the builds, versions, and hosts your docs.
- Sphinx with autodoc renders your docs.
- GitHub or BitBucket hook into ReadTheDocs to trigger builds whenever code is commited.
Before we get started, head over to ReadTheDocs and create an account, if you don't have one already. It's a free, open-source service. You can even spin up your own private instances, although their documentation for doing that isn't the best :)
As we describe our release frequencies with "times per day" instead of "times per year", clunky performance testing solutions that require interaction or supervising no longer fit in the deployment pipeline. In Email & Apps, our latest and greatest code commits are hammered to their limits to enforce strict standards of performance.
The basic idea starts with Jenkins pulling the latest performance testing scripts from GitHub and submitting them to machines running Flood, a Node.js tool written in-house. These jobs can do anything Node.js can do; a typical use-case is sending requests to an HTTP endpoint. When the results come back, Jenkins can decide whether to fail the build, produce graphs, or whatever your desired behavior may be.