Added
- Added the ability to ignore differences in a generated file by having the
string
'# bones: ignore'
in the line to be ignored. (#183) - Added
add_to_files
option to thelicense_rst
config. If set to True the license text will be added to the top of all python files, andbones check
will check for the existence of that text. (#189) - Added
gpl-v2
license type. (#192) - Added
isort_exclude
option to thepyproject_toml
config, which can be used byisort
to skip files or directories via regex patterns. (#196) - Added
cache=False
option tosetup
action. (#198)
Changed
- Updated minimum version of dependencies in CI scripts. (#178)
- Switched to
micromamba
instead ofminiconda
for remote environments. (#179) - Tests now default to using the
worksteal
xdist option, with 3 workers. (#186) - Modified
check-deploy
to skip checks when no.pypirc
file present. (#187) - Use micromamba to set up python environments. (#188)
- Changed the
exclude
option toblack_exclude
in thepyproject_toml
config. (#196) pyproject_toml
config now setsskip_gitignore
flag to true by default. (#196)
Removed
- Removed codecov support. (#178)
- Dropped support for Python 3.6 and 3.7. (#186)
- Removed
.pre-commit-config.yaml
from templated files. (#191)
Fixed
- Version info in version.py is now set statically with calver, which fixes an issue in which pip would refuse to install projects using calver. (#183)
- Improved robustness of
.nengobones.yml
file detection. (#189) - External tools (such as black/isort) will now run from the same directory as the
.nengobones.yml
file, which should improve the robustness of their config file detection. (#189)
Added
- Added support for new
one_page
option innengo-sphinx-theme
. (#101) - 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 thedocs
directory. (#32) - Added
remote-script.sh
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)
- Added
skip
option to codespell config, which can be used to specify files that should be ignored. (#138) - Added support for projects with type hints through the
py_typed
section. (#140) - Added
min_python
option to the main section. The defaultpython_requires
insetup.py
is now based on this, if not overridden. (#140) - Added support for changing the main branch name with the
main_branch
config option. (#145) - Added template for
version.py
. (#151) - Added
apache
license type. (#160) - Added
proprietary
license type. (#162) - Added several actions for use with Github Actions:
setup
initializes a python environment,generate-and-check
runsbones-generate
andbones-check
,run-script
runs a CI script such asstatic.sh
, andcoverage-report
generates combined coverage reports. (#166) - Added support for
docformatter
(and static checks will now enforce that docformatter has been applied). (#168) - Added support for building and releasing Python projects through the
deploy
CI script. (#172) - Added a
bones check-deploy
script that checks several items that we depend on for releases. (#172)
Changed
- Restrict pylint version to <2.5 due to issue when the package being checked is not installed in the current environment. (#103)
- Increased minimum
pylint
version to 2.5.1 (#32) - Documentation
[source]
links now point to GitHub. (#117) - Separate tokens,
PYPI_TOKEN
andPYPI_TEST_TOKEN
, must now be specified for deploying to PyPI and TestPyPI, respectively. (#127) - Builds for this repository now run on TravisCI.com instead of TravisCI.org. (#130)
- Drop support for Python 3.5. (#123)
- Doc script will now install Sphinx>=3.1.2. (#137)
- Codespell ignore words is now specified via the
codespell.ignore_words
section ofsetup_cfg
(instead of in the static CI script config). As a result, it will now apply to all invocations of codespell (not just from the static script). (#138) bones-format-notebook --check
will now require that allcodespell
checks pass. (#138)- Switched to new version of Codecov uploader and added checksum verification. (#150)
- Increased minimum
black
version to 21.12b0. (#104, #159) - License fields in
setup.py
are now set usinglicense_rst.type
. (#161) - Trove classifiers in
setup.py
are now sorted alphabetically. (#161) - Updated Nengo license and renamed to ABR license. (#157)
- The license type is now specified through a
license
key at the top level. If not specified, it defaults toproprietary
. (#157) - All CI scripts now support running either through Github Actions or TravisCI. (#166)
- Added additional config options to mypy
setup.cfg
template. (#170) - Restrict setuptools version to <64 (fixes issues with various code inspection tools like mypy, pylint, IDE integrations). (#173)
- Removed the
deploy_dists
configuration option for thedeploy
script, and replaced it with a booleanwheel
option. (#172) - Consolidated all scripts under a single
bones
command. Subcommands have the same names as before, without thebones-
prefix (e.g.,bones-generate
is nowbones generate
). (#172)
Removed
- Removed
before_script
,before_cache
,before_deploy
, andafter_deploy
steps from CI scripts (they weren't actually used anywhere). (#166) - Removed
analytics_id
option fordocs/conf.py
. Create a customdocs/conf.py
template and override theanalytics
block if you need to customize analytics tracking. (#169) - Removed support for TravisCI in CI scripts. All downstream repositories should switch to use Github Actions. (#172)
Fixed
- 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)
- Fixed an issue in which CI scripts did not have access to the same configuration options as other templates. (#144)
- Removed pylint disable for
bad-continuation
as it no longer exists. (#163) - Removed pylint disable for
no-self-use
as it is now optional. (#163) - Static checks will not try to check
docs
directory if it doesn't exist. (#165) - Static checks will no longer assume that CI scripts are in a folder named
.ci
(it will look for any scripts in the same folder as the static script). (#166) - Black will now ignore excluded files even if that filename is passed directly to black (e.g. when running through a precommit hook or IDE plugin). (#161)
- Only delete remote build directories more than a day old. (#172)
Changed
- 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)
Added
- 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)
Changed
- Will now use
nengo-bones
andnengo-sphinx-theme
master builds (instead of the latest release), to streamline the process of distributing changes to those core repos. (#97)
Added
- Added
autoautosummary_change_modules
option (for use withnengo_sphinx_theme.ext.autoautosummary
). (#86)
Changed
- Docs script will now use
nengo_sphinx_theme.ext.backoff
, which adds exponential backoff functionality to Sphinx requests. (#86)
Fixed
- Fixed deployment tag conditional check in
.travis.yml
template. (#83)
Changed
- The
bones-check
that TravisCI does now prints diffs for easier debugging. (#80)
Fixed
- Fixed an issue with the
.travis.yml
template caused by the new Jinja2 release. (#80)
Changed
- The default distribution used in builds is now
xenial
. (#79)
Removed
- Removed coverage.py early starting logic. This is no longer necessary as of Nengo 3.0 and causes problems with the new coverage.py 5.0 release. (#78)
Changed
- Failing to install miniconda in
remote.sh
is no longer considered a build error (this can occur, for example, when rerunning a build that already has miniconda installed). (#71)
Added
- Added support for
nengo_sphinx_theme.ext.redirects
, which can be used to automatically add redirects for renamed documentation pages. (#68)
Fixed
- Added locking to
remote.sh
script to avoid possible race conditions during cleanup. (#69)
Added
- Added support for
sphinx.ext.doctest
, which can be used to automatically test code snippets in docstrings. (#67)
Changed
- Updated the
black
version used inpre-commit
hooks. (#67)
Added
- Added a
remote.sh
CI script template for remotely executing commands on an SSH-accessible machine. (#65)
Fixed
- Fixed a crash when a file contained the text "Automatically generated by nengo-bones", but was not present in the config file. (#61, #66)
Added
- Added
nengo_simulator
,nengo_simloader
andnengo_neurons
options to thepytest
section of thesetup.cfg
template to support testing changes in Nengo 3.0. (#58)
Changed
- The default value for
pytest.addopts
insetup.cfg
has been removed because Nengo 3.0 does not require-p nengo.tests.options
. (#58)
Added
- Added
plt_dirname
option to thepytest
section of thesetup.cfg
template to set the plot directory for pytest-plt. (#52) - Added
plt_filename_drop
option to thepytest
section of thesetup.cfg
template to set pruning patterns for pytest-plt. (#52) - Added
rng_salt
option to thepytest
section of thesetup.cfg
template to set the salt for pytest-rng. (#55)
Added
- Added
allclose_tolerances
option to thepytest
section of thesetup.cfg
template to set tolerances for pytest-allclose. (#47)
Added
- Added style guide and release instructions to documentation. (#44)
- Added templates for
.pre-commit-config.yaml
andpyproject.toml
so downstream repositories can easily adopt Black. (#49)
Changed
- We now check that Python source files are autoformatted with Black
in the
static.sh
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 andbad-continuation
pylint check are now disabled by default. (#50)
Added
- The
nengo_bones.templates
module was added to consolidate code that loads and renders templates. (#45)
Changed
- The
docs/conf.py
template has been updated for new versions of Nengo Sphinx Theme. (#46) static.sh
andexamples.sh
will now check any notebooks in thedocs
folder (not justdocs/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 thatbones-check
will be sensitive to changes within a dev version. (#45)
Fixed
- The
static.sh
/examples.sh
script will no longer fail if there are no notebooks in thedocs
folder. (#46)
Added
- Added
codespell_ignore_words
option tostatic.sh.template
, which is a list of words thatcodespell
will ignore. (#35) - Added
analytics_id
option todocs_conf.py.template
, which will enable Google Analytics tracking. (#35)
Changed
codespell
will now ignore_vendor
directories. (#36)
Fixed
- Fixed an issue with
static.sh.template
in which Python files that were not converted from notebooks were deleted. (#16)
Added
- Added
apt_install
option that can be set in thejobs
section toapt install
any customapt
requirements for a job. (#14) - Added templates for
CONTRIBUTING.rst
,CONTRIBUTORS.rst
,LICENSE.rst
,MANIFEST.in
,docs/conf.py
,setup.cfg
, andsetup.py
(#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 ininclude
andextend
tags with thetemplates/
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)
Changed
- The Python version is now specified by the
python
option (instead ofpython_version
), for consistency with.travis.yml
. (#14) - All
nengo-bones
scripts now start withbones-
, to make them easier to find with autocompletion.generate-bones
is nowbones-generate
, andcheck-bones
is nowbones-check
. (#18)
Removed
- Removed
conda
from the CI setup; all installations should be done throughpip
instead. (#14) - Removed the
--template-dir
option from thegenerate-bones
script; use a.templates
directory instead. (#17)
Fixed
- Order of templated dicts should now be deterministic for all Python versions. (#14)
Initial release of NengoBones! Thanks to all of the contributors for making this possible!