* Fix the travis stage that performs the linting, making it fail if the
`make style` target fails instead of ignoring it silently.
* Fix the execution of the deploy stages for the jobs that are the
result of a PR against stable. Now the stages are only executed in the
job associated to the push.
* coverage rule in Makefile
* coverage in cmake
* clean coverage rule
* it looks like there is a proper way to remove the coverage data
* cmake: coverage_erase
* Add coverage target to cmake, fix typo
* Fix travis osx brew python (now upgrade)
* Revise the travis configuration for using `cmake` for the several
targets, and use "stages" instead of parallel jobs:
* define three stages that are executed if the previous one suceeds:
1. "linter and pure python test": executes the linter and a test
without compiling the binaries, with the idea of providing quick
feedback for PRs.
2. "test": launch the test, including the compilation of binaries,
under GNU/Linux Python 3.6 and 3.6; and osx Python 3.6.
3. "deploy doc and pypi": for the stable branch, deploy the docs
to the landing page, and when using a specific commit message,
build the GNU/Linux and osx wheels, uploading them to test.pypi.
* use yaml anchors and definitions to avoid repeating code (and
working around travis limitations).
* Modify the `cmake``configuration to accomodate the stages flow:
* allow conditional creation of compilation and QA targets, mainly
for saving some time in some jobs.
* move the tests to `cmake/tests.cmake`.
* Update the tests:
* add a `requires_qe_access` decorator that retrieves QE_TOKEN and
QE_URL and appends them to the parameters in an unified manner.
* add an environment variable `SKIP_ONLINE_TESTS` that allows to
skip the tests that need network access.
* replace `TRAVIS_FORK_PULL_REQUEST` with the previous two
mechanisms, adding support for AppVeyor as well.
* fix a problem with matplotlib under osx headless, effectively
skipping `test_visualization.py` during the travis osx jobs.
* Move Sphinx to `requirements-dev.txt`.
* Relax the pylint output disabling several warnings.
* Reintroduce the linting of qiskit.extensions and qiskit.qasm.node.
* Add a `style` target to the Makefile that performs pycodestyle, and
reduce the verbosity of `lint` by removing the report.
* Update the Travis configuration in order to add a new step that
performs linter and style checks via an environment variable.
* Use flake8 to find syntax errors & undefined names
flake8 testing of https://github.com/QISKit/qiskit-sdk-py on Python 3.6.3
$ __flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics__
```
./qiskit/dagcircuit/_dagcircuit.py:570:49: F821 undefined name 'n'
nd = input_circuit.multi_graph.node[n]
^
./qiskit/tools/visualization.py:463:70: E999 SyntaxError: EOL while scanning string literal
"""Plot the equal angle slice spin Wigner function of an arbitrary
^
./qiskit/tools/qcvv/tomography.py:805:17: E999 IndentationError: expected an indented block
W[wpt] = W[wpt]+(x[i]/shots)*parity[i]
^
2 E999 IndentationError: expected an indented block
1 F821 undefined name 'n'
3
```
* pylint qiskit test --errors-only
* flake8 --exit-zero to treat all issues as warnings
* pylint --extension-pkg-whitelist=numpy, flake8 E999
* Remove flake8 and focus on pylint
Pylint now finds three issues. I am unable to suggest fixes for the first two. I have suggested a fix for the last issue at f49975ec6e (commitcomment-25627794)
* Fix F821, no-member and logging-too-few-args
Fix issues raised by pylint on "--errors-only" mode, thanks to cclaus.
* Add numpy to the general pylint configuration
* Add runtime check for IBMQuantumExperience version
Add `qiskit._util._check_ibmqe_version()` (invoked on the main import)
for emitting a warning if the installed version of IBMQuantumExperience
does not match the version defined on `setup.py`.
* Rename requires.txt and requires-dev.txt
Rename to "requirements.txt" and "requirements-dev.txt", in order to
conform better to the de-facto practices.
Update the requirements to match the versions specified in setup.py.
* setup.py: OS classifiers, backend, IBMQE version
* Explicitly require IBMQuantumExperience>=1.8.13, as older versions
might not contain all the functionality needed.
* Include "qiskit.backends" as a package instead of "qiskit.simulators".
* Add trove classifiers for the operative systems supported.
* Fix PEP8 warnings for long description.
* Avoid using __version__ in setup.py due to imports
Revert the change of using "__version__" imported from "__init__.py"
directly on "setup.py", as the current importing of the modules from
"__init__.py" causes the building to fail due to the dependencies not
being available at the time of invocation.
Add a "deploy" target to travis that builds the sphinx documentation
and push it to the github pages repository on pushes to the "stable"
branch. A custom script is used that performs the steps (clone the
repository, build the dock, commit the changes, push back) instead of
other solutions (travis-sphinx or travis github pages integration) due
to lacking the features needed for the current setup (pushing to a
specific directory on another repository preserving history).