This documentation is for a development version. Click here for the latest stable release (v0.11.1).

Release History

20.5 (unreleased)


  • Added support for new one_page option in nengo-sphinx-theme. (#101)

  • Added tagmanager_id option to, which will enable Google Tag Manager tracking. This option takes precedence over analytics_id if both are specified. (#114)

  • Added the bones-format-notebook script to apply automated formatting, cleanup, and static checking to Jupyter notebooks. (#32)

  • Static script will now check that bones-format-notebook has been applied to all notebooks in the docs directory. (#32)

  • Added CI script for running other CI scripts on a remote device. (#124)

  • Added isort configuration to pyproject.toml and check import order during static checks. (#121)

  • Officially support and test against Python 3.9. (#136)


  • Restrict pylint version to <2.5 due to issue when the package being checked is not installed in the current environment. (#103)

  • Enable the new pip dependency resolver during CI. (#110)

  • Increased minimum black version to 20.8b0. (#104)

  • Increased minimum pylint version to 2.5.1 (#32)

  • Documentation [source] links now point to GitHub. (#117)

  • Separate tokens, PYPI_TOKEN and PYPI_TEST_TOKEN, must now be specified for deploying to PyPI and TestPyPI, respectively. (#127)

  • Builds for this repository now run on instead of (#130)

  • Drop support for Python 3.5. (#123)

  • Doc script will now install Sphinx>=3.1.2. (#137)


  • Intermittent failures installing miniconda in the remote script have been fixed by retrying the miniconda install if it fails. (#130)

  • Fixed an issue in which Codecov would not report on files where a file in a deeper folder shares the same name. (#132)

0.11.1 (April 13, 2020)


  • Rendered documentation will not be uploaded if the html build fails (it will still be uploaded if the linkchecker/doctest builds fail). (#98)

  • Rendered documentation will not be uploaded on cron builds. (#98)

  • Docs script will now clean up the built doc directory before execution, if it exists (e.g., because the docs job is being rerun). (#96)

0.11.0 (April 13, 2020)


  • Downstream repos will now be automatically updated when nengo-bones is updated. (#97)

  • Added slack_notifications option to .travis.yml to enable Slack notifications for failing builds. (#97)


  • Will now use nengo-bones and nengo-sphinx-theme master builds (instead of the latest release), to streamline the process of distributing changes to those core repos. (#97)

0.10.0 (March 19, 2020)


  • Added autoautosummary_change_modules option (for use with nengo_sphinx_theme.ext.autoautosummary). (#86)


  • Docs script will now use nengo_sphinx_theme.ext.backoff, which adds exponential backoff functionality to Sphinx requests. (#86)

0.9.1 (March 17, 2020)


  • Fixed deployment tag conditional check in .travis.yml template. (#83)

0.9.0 (January 28, 2020)


  • The bones-check that TravisCI does now prints diffs for easier debugging. (#80)


  • Fixed an issue with the .travis.yml template caused by the new Jinja2 release. (#80)

0.8.0 (January 10, 2020)


  • The default distribution used in builds is now xenial. (#79)

0.7.3 (January 8, 2020)


  • Removed early starting logic. This is no longer necessary as of Nengo 3.0 and causes problems with the new 5.0 release. (#78)

0.7.2 (December 2, 2019)


  • Failing to install miniconda in is no longer considered a build error (this can occur, for example, when rerunning a build that already has miniconda installed). (#71)

0.7.1 (November 14, 2019)


  • Added support for nengo_sphinx_theme.ext.redirects, which can be used to automatically add redirects for renamed documentation pages. (#68)


  • Added locking to script to avoid possible race conditions during cleanup. (#69)

0.7.0 (November 7, 2019)


  • Added support for sphinx.ext.doctest, which can be used to automatically test code snippets in docstrings. (#67)


  • Updated the black version used in pre-commit hooks. (#67)

0.6.0 (October 30, 2019)


  • Added a CI script template for remotely executing commands on an SSH-accessible machine. (#65)


  • Fixed a crash when a file contained the text “Automatically generated by nengo-bones”, but was not present in the config file. (#61, #66)

0.5.0 (September 3, 2019)


  • Added nengo_simulator, nengo_simloader and nengo_neurons options to the pytest section of the setup.cfg template to support testing changes in Nengo 3.0. (#58)


  • The default value for pytest.addopts in setup.cfg has been removed because Nengo 3.0 does not require -p nengo.tests.options. (#58)

0.4.2 (August 8, 2019)


  • Added plt_dirname option to the pytest section of the setup.cfg template to set the plot directory for pytest-plt. (#52)

  • Added plt_filename_drop option to the pytest section of the setup.cfg template to set pruning patterns for pytest-plt. (#52)

  • Added rng_salt option to the pytest section of the setup.cfg template to set the salt for pytest-rng. (#55)

0.4.1 (July 26, 2019)


  • Added allclose_tolerances option to the pytest section of the setup.cfg template to set tolerances for pytest-allclose. (#47)

0.4.0 (July 26, 2019)


  • Added style guide and release instructions to documentation. (#44)

  • Added templates for .pre-commit-config.yaml and pyproject.toml so downstream repositories can easily adopt Black. (#49)


  • We now check that Python source files are autoformatted with Black in the script. (#49)

  • Templates will now be autoformatted with Black during the rendering process, if Black is installed. (#49)

  • Take advantage of multiprocessing to speed up pylint static checks. (#49)

  • The E203 flake8 check and bad-continuation pylint check are now disabled by default. (#50)

0.3.0 (July 19, 2019)


  • The nengo_bones.templates module was added to consolidate code that loads and renders templates. (#45)


  • The docs/ template has been updated for new versions of Nengo Sphinx Theme. (#46)

  • and will now check any notebooks in the docs folder (not just docs/examples). (#46)

  • bones-check now checks that the content of the generated files matches the expected content, rather than relying on version numbers. This means most files will not need to be regenerated when new NengoBones versions are released, and that bones-check will be sensitive to changes within a dev version. (#45)


  • The script will no longer fail if there are no notebooks in the docs folder. (#46)

0.2.1 (May 24, 2019)


  • Added codespell_ignore_words option to, which is a list of words that codespell will ignore. (#35)

  • Added analytics_id option to, which will enable Google Analytics tracking. (#35)


  • codespell will now ignore _vendor directories. (#36)


  • Fixed an issue with in which Python files that were not converted from notebooks were deleted. (#16)

0.2.0 (May 15, 2019)


  • Added apt_install option that can be set in the jobs section to apt install any custom apt requirements for a job. (#14)

  • Added templates for CONTRIBUTING.rst, CONTRIBUTORS.rst, LICENSE.rst,, docs/, setup.cfg, and (#17)

  • Templates will now be automatically loaded from a <repo>/.templates directory if it exists. When overriding existing templates, the built-in templates can be accessed in include and extend tags with the templates/ prefix. (#17)

  • Added flake8 to the static check script. (#17)

  • Added the bones-pr-number script to predict the next PR number for a repository. This helps when writing a changelog entry before a PR has been made. (#18)


  • The Python version is now specified by the python option (instead of python_version), for consistency with .travis.yml. (#14)

  • All nengo-bones scripts now start with bones-, to make them easier to find with autocompletion. generate-bones is now bones-generate, and check-bones is now bones-check. (#18)


  • Removed conda from the CI setup; all installations should be done through pip instead. (#14)

  • Removed the --template-dir option from the generate-bones script; use a .templates directory instead. (#17)


  • Order of templated dicts should now be deterministic for all Python versions. (#14)

0.1.0 (April 15, 2019)

Initial release of NengoBones! Thanks to all of the contributors for making this possible!