Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added debian directory for building debian package #80

Open
wants to merge 7 commits into
base: trunk
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
145 changes: 145 additions & 0 deletions debian/README.Debian
Original file line number Diff line number Diff line change
@@ -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 <https://docs.pytest.org/>`_
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
<https://docs.pytest.org/en/latest/getting-started.html>`_

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
5 changes: 5 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
tvb-library (1.5.5.1-1) unstable; urgency=medium

* Initial release. Closes: #901866

-- umar haruna abdullahi <umarbrowser20@gmail.com> Sun, 01 Jul 2018 10:25:24 +0100
1 change: 1 addition & 0 deletions debian/compat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
11
31 changes: 31 additions & 0 deletions debian/control
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Source: tvb-library
Maintainer: the virtual brain <tvb.debian@codemart.ro>
Uploaders: umar haruna abdullahi <umarbrowser20@gmail.com>
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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

move to use python3-* packages

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove tvb-data from dependencies

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add pytest to be able to run unittests at package build time
verify that they do run at package build time, if not, adjust debian/rules accordingly with override_dh_auto_test: rule which would trigger/run the tests

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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if you keep packaging in a dedicated debian branch (which would merge releases from master branch, as recommended by @yarikoptic), then add here the option to git -b debian

Homepage: http://www.thevirtualbrain.org

Package: tvb-library
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO -- check how to properly name this, might want to become python3-tvb (python3-tvb-library) and the framework one could be named either just a simple tvb or tvb-framework

Architecture: all
Depends: ${misc:Depends},
${python:Depends}
Description: most important scientific contribution of TVB Project
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Description: most important scientific contribution of TVB Project
Description: the core library of the 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.
31 changes: 31 additions & 0 deletions debian/copyright
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: tvb-library
Upstream-Contact: TVB TEAM <tvb.admin@thevirtualbrain.org>
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 <http://www.gnu.org/licenses/>.
.
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'.
7 changes: 7 additions & 0 deletions debian/rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/usr/bin/make -f

#export DH_VERBOSE = 1
export PYBUILD_NAME = tvb-library

%:
dh $@ --with python2 --buildsystem=pybuild
1 change: 1 addition & 0 deletions debian/source/format
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.0 (quilt)
1 change: 1 addition & 0 deletions debian/source/lintian-overrides
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
tvb-library source: debian-watch-does-not-check-gpg-signature
2 changes: 2 additions & 0 deletions debian/tvb-library.lintian-overrides
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
tvb-library: no-upstream-changelog
tvb-library: dependency-on-python-version-marked-for-end-of-life
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove upon migration to provide python3 packages

3 changes: 3 additions & 0 deletions debian/watch
Original file line number Diff line number Diff line change
@@ -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)))
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove version restriction

"pytest", "scikit-learn", "scipy", "tvb-gdist", "tvb-data"]

with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as fd:
Expand Down