diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 000000000..31b05dd04 --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,145 @@ +tvb-library for Debian + +THE VIRTUAL BRAIN SCIENTIFIC LIBRARY +==================================== + +The Virtual Brain Project (TVB Project) has the purpose of offering some +modern tools to the Neurosciences community, for computing, simulating +and analyzing functional and structural data of human brains. + +"TVB Scientific Library" is the most important scientific contribution +of TVB Project, but only a part of our code. In order to use this TVB +Python Library (modify/run/test), you are advised to follow the steps +described here: +http://docs.thevirtualbrain.com/manuals/ContributorsManual/ContributorsManual.html#contributors-manual + +The interaction with TVB source code is recommended for advanced users +only, for which the concepts proposed by TVB are known and understood, +and which also have some programming knowledge. + +"TVB Scientific Library" comes in two major forms for code-contributors: +as a light-weight Python library, or plugged into TVB framework +(including Web interface and Persistence of data layers). Depending on +your needs and resources, you could use any of the two available options +for contributing and testing new code. + +"TVB Scientific Library" is a light-weight, stand-alone Python library +that contains all the needed packages in order to run simulations and +analysis on data without the need for the entire TVB Framework. This +implies that no storage will be provided so data from each session will +be lost on close. You need to either persist it yourself in some manner +or use the full TVBFramework where HDF5 / database storage is provided +as default. + +For more details, check: http://www.thevirtualbrain.org/ + +"TVB Scientific Library" contains the following packages: basic, +datatypes, simulator and analyzers. The dependencies between these +packages can be seen in tvb-package-diagram.jpg . Following is a short +description of each of these packages: + +- tvb.basic + +This package is the base of TVB and holds sub-packages that are used by +most of the other packages like logging, global settings and the TVB +traits package. You should rarely (if at all) need to change code in +this package, and should know exactly what you are doing before +attempting to change anything from here. + +- tvb.datatypes + +The simulator and analyzers packages (as well as uploaders and +visualizers in TVB Framework) will need to have a common "language" in +order to work with the same data. In TVB architecture, that "common +language" is represented by Data Types. TVB Data Types declarations are +located in this package. + +Most of the datatypes here have a diamond like inheritance structure of +the following form: + +:: + + DataTypeData + | + / \\ + DataTypeFramework DataTypeScientific + \ / + | + DataType + + +The DataTypeData holds the actual structure of the datatype. +DataTypeScientific holds any methods required from a scientific point of +view. DataTypeFramework should just be ignored from a library user point +of view as it holds framework related methods and will be removed +altogether in the near future. DataType just brings all the above +together and is the class you should actually use in your code. + +- tvb.simulator + +The Simulation Component is the most important component in The Virtual +Brain solution, as it is the component responsible for all the +scientific computation related to brain models and data. + +You can find various demos of using the simulator under +tvb/simulator/demos as well as some nice tutorials under +tvb/simulator/doc/tutorials/ . + +- tvb.analyzers + +Holds modules that can run various analysis of data resulted from the +simulator. There are a few demos which use the PCA analyzer like +tvb/simulator/demos/pca\_analyse\_view\_region and +tvb/simulator/demos/pca\_analyse\_view\_surface . TVB is not strong in +doing data analysis, we barely have a minimum set of analyzers for +immediate needs. + +NOTE: + +To contribute to this repo, you are advised to first fork it under +GitHub (through the web ui), and next clone that fork on your machine, +and use it as you use any other git repository. + +Testing +======= + +For testing the package, the `Pytest `_ +framework is used. Pytest can be installed using pip. + +Pytest will run all files in the current directory and its subdirectories +of the form test_*.py or \*_test.py. +More generally, it follows `standard test discovery rules +`_ + +The command for running our tests has two forms. +Recommendation when working with a git clone of tvb-library:: + + cd [folder_where_tvb_library_is] + pytest tvb/test [--junitxml=path] + +The second alternative form of running TVB tests, when installing TVB from Pypi, is:: + + pip install -U tvb-library + pytest --pyargs tvb.tests.library + + +Coverage +-------- + +A coverage report can be generated with:: + + pip install pytest-cov + cd [folder_where_tvb_library_is] + py.test --cov-config .coveragerc --cov=tvb tvb/tests/ --cov-branch --cov-report xml:[file_where_xml_will_be_generated] + + +Further Resources +================= + +- For issue tracking we are using Jira: http://req.thevirtualbrain.org +- For API documentation and live demos, have a look here: + http://docs.thevirtualbrain.org +- A public mailing list for users of The Virtual Brain can be joined + and followed using: tvb-users@googlegroups.com +- Raw demo IPython Notebooks can be found under: + https://github.com/the-virtual-brain/tvb-documentation/tree/master/demos diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 000000000..955febb16 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +tvb-library (1.5.5.1-1) unstable; urgency=medium + + * Initial release. Closes: #901866 + + -- umar haruna abdullahi Sun, 01 Jul 2018 10:25:24 +0100 diff --git a/debian/compat b/debian/compat new file mode 100644 index 000000000..b4de39476 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +11 diff --git a/debian/control b/debian/control new file mode 100644 index 000000000..730aa9562 --- /dev/null +++ b/debian/control @@ -0,0 +1,31 @@ +Source: tvb-library +Maintainer: the virtual brain +Uploaders: umar haruna abdullahi +Section: python +Priority: optional +Build-Depends: debhelper (>=11), + dh-python, + python-all, + python-setuptools, + python-networkx, + python-numpy, + python-numba, + python-numexpr, + python-matplotlib, + python-sklearn, + python-scipy, + tvb-gdist, + tvb-data +Standards-Version: 4.1.4 +Vcs-Browser: https://github.com/the-virtual-brain/tvb-library +Vcs-Git: https://github.com/the-virtual-brain/tvb-library.git +Homepage: http://www.thevirtualbrain.org + +Package: tvb-library +Architecture: all +Depends: ${misc:Depends}, + ${python:Depends} +Description: most important scientific contribution of TVB Project + This package is the base of TVB and holds sub-packages that are used by + most of the other packages like logging, global settings and the TVB + traits package. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 000000000..1305519a6 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,31 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: tvb-library +Upstream-Contact: TVB TEAM +Source: https://github.com/the-virtual-brain/tvb-library + +Files: * +Copyright: 2012-2017 Baycrest Centre for Geriatric Care ("Baycrest") and others +License: GPL-3.0+ + +Files: debian/* +Copyright: 2018 Baycrest Centre for Geriatric Care ("Baycrest") and others +License: GPL-3.0+ + +License: GPL-3.0+ + This program is free software: you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software Foundation, + either version 3 of the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + PARTICULAR PURPOSE. See the GNU General Public License for more details. + You should have received a copy of the GNU General Public License along with this + program. If not, see . + . + When using The Virtual Brain for scientific publications, please cite it as follows: + Paula Sanz Leon, Stuart A. Knock, M. Marmaduke Woodman, Lia Domide, + Jochen Mersmann, Anthony R. McIntosh, Viktor Jirsa (2013) + The Virtual Brain: a simulator of primate brain network dynamics. + Frontiers in Neuroinformatics (7:10. doi: 10.3389/fninf.2013.00010) + . + On Debian systems, the complete text of the GNU General Public License + Version 3 can be found in `/usr/share/common-licenses/GPL-3'. diff --git a/debian/rules b/debian/rules new file mode 100644 index 000000000..198f5de22 --- /dev/null +++ b/debian/rules @@ -0,0 +1,7 @@ +#!/usr/bin/make -f + +#export DH_VERBOSE = 1 +export PYBUILD_NAME = tvb-library + +%: + dh $@ --with python2 --buildsystem=pybuild diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 000000000..163aaf8d8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides new file mode 100644 index 000000000..d274b72c6 --- /dev/null +++ b/debian/source/lintian-overrides @@ -0,0 +1 @@ +tvb-library source: debian-watch-does-not-check-gpg-signature diff --git a/debian/tvb-library.lintian-overrides b/debian/tvb-library.lintian-overrides new file mode 100644 index 000000000..d24b64dff --- /dev/null +++ b/debian/tvb-library.lintian-overrides @@ -0,0 +1,2 @@ +tvb-library: no-upstream-changelog +tvb-library: dependency-on-python-version-marked-for-end-of-life diff --git a/debian/watch b/debian/watch new file mode 100644 index 000000000..a82904e21 --- /dev/null +++ b/debian/watch @@ -0,0 +1,3 @@ +version=3 +opts=uversionmangle=s/(rc|a|b|c)/~$1/ \ +https://pypi.debian.net/tvb-library/tvb-library-(.+)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz))) diff --git a/setup.py b/setup.py index a6f6eefd2..bd4733b01 100644 --- a/setup.py +++ b/setup.py @@ -44,7 +44,7 @@ TVB_TEAM = "Stuart Knock, Marmaduke Woodman, Paula Sanz Leon, Laurent Pezard, Viktor Jirsa" -TVB_INSTALL_REQUIREMENTS = ["networkx", "numpy", "numba", "numexpr", "matplotlib", +TVB_INSTALL_REQUIREMENTS = ["networkx", "numpy", "numba", "numexpr", "matplotlib==2.1.2", "pytest", "scikit-learn", "scipy", "tvb-gdist", "tvb-data"] with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as fd: