Skip to content

Instantly share code, notes, and snippets.

@umarbrowser
Last active August 12, 2018 12:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save umarbrowser/3ae5357216eb58238bce584bb8ba6d5a to your computer and use it in GitHub Desktop.
Save umarbrowser/3ae5357216eb58238bce584bb8ba6d5a to your computer and use it in GitHub Desktop.

Packaging TVB for the modern world

About

The Virtual Brain (TVB) is a framework for the simulation of the dynamics of large scale brain networks with biologically realistic connectivity, Because of it absence in the most used scientific distribution for windows, Mac and linux, It is too hard for many people in the scientific community to install and use it.
The virtual brain only distribute its packages in form of zip package or source using git and recently using python pypi, If TVB Distributes it’s package using the most used distribution method on scientific community like conda, Neurodebian etc, At the end this project I will deliver all the project deliverables.

Original proposal

The original proposal aimed to create all those if time allowed, Packaging TVB to Anaconda, Packaging and Distribution for NeuroDebian, Develop a Vagrantfile script for virtual machines, Develop a Script( Dockerfile ) for building a docker image on both linux and windows, and if time allowed Develop a Native launcher for TVB Distributions

Accomplishments

Packaging TVB to Anaconda

The first thing i start is finalize packaging the virtual brain to Anaconda. with is a tvb-framework only left and has a lot of work to be done.
Things started pretty slowly, but each week I've managed to make improvements. By spending time reading Pull Request on Conda-forge. Because the virtual brain team are already using it, conda-forge is a github organization containing repositories of conda recipes
This is how they look now:
All the tasks I've solved are also documented in Jira.

Packaging and Distribution for NeuroDebian

The second tasks was Packaging and Distribution for NeuroDebian NeuroDebian Linux. NeuroDebian provides a large collection of popular neuroscience research software for the Debian operating system as well as Ubuntu and other derivatives.

As time passed, I began to gain more and more experience with the technologies I was working with and the overall TVB project as well. From that point on, things went pretty smoothly and I was finishing an upload them to mentors debianIs a place were to put debian packages to be sponsor before the became to debian repository and NeuroDebian are using it.
This is how they look now:
All the tasks I've solved are also documented in Jira.

Tvb-framework

Tvb-library

Tvb-gdist

Tvb-data

The meaning of some words:

  • ITP stands for Intend to package. These are packages which not exist in Debian yet
  • RFS is a request for sponsorship

Windows Dockerfile and Docker image for building The Virtual Brain from source

The Docker Engine and client are not included with Windows and will need to be installed and configured individually. Furthermore, the Docker Engine can accept many custom configurations. Some examples include configuring how the daemon accepts incoming requests, default networking options, and debug/log settings. On Windows,
these configurations can be specified in a configuration file or by using Windows Service control manager. All the tasks I've solved are also documented in Jira

TVB-BUILD

Linux Dockerfile and Docker image for building and running The Virtual Brain from source.

Docker is a tool that can package an application and its dependencies in a virtual container that can run on any Linux server. The virtual brain team recommend to use lattest version of debian64 All the tasks I've solved are also documented in Jira.

TVB-RUN

TVB-BUILD

Develop a Vagrantfile script for virtual machines

Vagrant is an open-source software product for building and maintaining portable virtual software development environments, for VirtualBox, Hyper-V, Docker containers, VMware, and AWS which try to simplify software configuration management of virtualizations in order to increase development productivity.
All the tasks I've solved are also documented in Jira.

Work Left

For the last thing that remain is Develop a Native launcher for TVB Distributions with i will continue to finish it even after the deadline of Google Summer of Code.

Conclusions

I am delighted to say it was a very pleasant one. I think I was really lucky having Lia Domide and Paula Popa as my mentors. they did such a great job in coaching and helping me throughout the project without their support i can't make it this far. Overall I definitely enjoyed working with them. I have acquired new skills and knowledge in docker, python, bash, powershell, containers, virtual machines, And offer a new job from my local community all because of Google Summer of code. Also, the entire TVB project is very appealing to me and I intend to continue contributing and maintain all what i have done and even create new features to THE VIRTUAL BRAIN And it Mentor Organisation INCF.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment