Any contribution must give the copyright to Lars Asplund.
This is necessary to manage the project freely.
Copyright is given by adding the copyright notice to the beginning of each file.

# This Source Code Form is subject to the terms of the Mozilla Public# License, v. 2.0. If a copy of the MPL was not distributed with this file,# You can obtain one at http://mozilla.org/MPL/2.0/.## Copyright (c) 2014-2018, Lars Asplund lars.anders.asplund@gmail.com

Developers should ensure that new code is well covered. As of writing
this paragraph the total coverage was 92%. Missing coverage can be
analyzed by opening the generated htmlcov/index.html produced by the
above commands.

Never use the fact that VHDL is case-insensitive; Do not use Foo
and foo to refer to the same identifier.

Name array types <base_type_name>_vec_t

Name packages with suffix _pkg

Name files the same as the package or entity they contain such as <entity_name>.vhd

Never put more than one entity/package in the same file.

Keep the architecture in the same file as the entity unless there
are several architectures. When there are several architectures put
them all in separate files named
<entity_name>_<architecture_name>.vhd.

Put comments documenting functions and procedures above the
declaration in the package header rather than the definition in the
package body.

VUnit uses the Python tox tool in
the CI flow. Typically developers do not need to run this on their
local machine.

Tox makes it easier to automatically test VUnit in various
configurations. Tox automates creation of virtual environments and
installation of dependencies needed for testing. In fact, all of the
tests can be run in a single command:

vunit/ > tox

If tox is not available in your Python environment, it can be installed from
PyPI with pip:

vunit/ > pip install tox

For most developers, running the full testsuite will likely lead to failed test
cases because not all Python interpreters or HDL simulators are installed in
their environment. More focused testing is possible by specifying which tox
“environments” should be tested. For example, assume a developer uses Python 2.7
and Modelsim and would like to test changes using tools available in his
environment:

vunit/ > tox -e py27-unit,py27-acceptance-modelsim

A full list of test environments can be seen by issuing the following command:

Releases are automatically made by Travic CI on any master commit
that has a new version set in vunit/about.py together with a
corresponding release note in docs/release_notes/X.Y.Z.rst. The
release note files in docs/release_notes/ are used to
automatically generate the release notes.

Travic CI makes a release by uploading a new package to PyPI and
setting a release tag named vX.Y.Z in Git.

A new release will not be made if the the X.Y.Z release is already
on PyPI or the repo tag is already set.