Installation Guide


Sciunit

sciunit is a command-line tool that answers the call for a reusable research object that containerizes and stores applications simply and efficiently, facilitates sharing and collaboration, and eases the task of executing, understanding, and building on shared work.

Installing

[ Note This section introduces the binary distributions of sciunit. --end note ]

Requires: pip>=8.1.1, glibc>=2.17, python2.7 with headers and compiler

Platform: amd64-pc-linux-gnu

Ensure that ~/.local/bin is in your PATH environment variable, and then, run

pip install --user sciunit2

Add --upgrade to the command line arguments to upgrade an existing sciunit installation.

Verify the installation with

sciunit --version

In the following per-distro instructions, if you see a command-line in the form of

export PATH=~/.local/bin:$PATH

, it merely means that you will need the aforementioned binary path in PATH before proceeding; normally you should adjust it according to your login shell and write it to a shell configuration such as ~/.profile.

Ubuntu 16.04

sudo apt update
sudo apt install python-dev python-pip
pip install --user sciunit2

Ubuntu 14.04

sudo apt update
sudo apt install python-dev python-pip
pip install --user -U pip
export PATH=~/.local/bin:$PATH
pip install --user sciunit2

Arch Linux

sudo pacman -S python2-pip
export PATH=~/.local/bin:$PATH
pip2 install --user sciunit2

Fedora 26

sudo dnf install python2-pip python2-devel gcc redhat-rpm-config
pip install --user sciunit2

CentOS 7

sudo yum install -y epel-release
sudo yum install python2-pip python-devel gcc
pip install --user sciunit2

RHEL 7

sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install python2-pip python-devel gcc
pip install --user sciunit2

Debian 9

sudo apt update
sudo apt install python-dev python-pip
export PATH=~/.local/bin:$PATH
pip install --user sciunit2

Debian 8

sudo apt update
sudo apt install python-dev python-pip
pip install --user -U pip
export PATH=~/.local/bin:$PATH
pip install --user sciunit2

OpenSUSE 42

Note that OpenSUSE defaults user-binary path to ~/bin rather than ~/.local/bin, so you may want to symlink one to the other.

sudo zypper install python-pip python-devel gcc
pip install --user -U pip
export PATH=~/.local/bin:$PATH
pip install --user sciunit2

Using

Checkout our tutorial and manpage. The manpage is also available as

man sciunit

after a successful installation.

Build from Source

Instructions for custom build of sciunit2 is available in our Bitbucket project repository. You may want to check it out if you are running on a system that is not supported by the binary distribution.


Sciunit

Deliver reproducibility in your research

SYNOPSIS

sciunit [--version] [--help]

sciunit <command> [<args...>]

DESCRIPTION

A command line utility to create, manage, and share sciunits. A sciunit is a lightweight and portable unit that contains captured, repeatable program executions.

OPTIONS

General Options

--version show program's version number and exit

-h, --help show help message and exit

Commands

sciunit create <name>
Create a new sciunit under ~/sciunit/<name> and open it. If the directory already exists, exit with an error.
sciunit open <name>|<token#>|<path to sciunit.zip>
Open the sciunit under ~/sciunit/<name> or designated by a token# obtained from sciunit copy, or one in a zipped sciunit package by extracting it to a temporary directory.
sciunit open -m <name>
Rename the currently-opened sciunit to <name> and open it.
sciunit exec <executable> [<args...>]

Capture the execution of the given executable with the command line arguments args. The newly-created execution is added to the currently-opened sciunit and assigned execution id "eN", where N is a monotonically-increasing decimal. The first execution created in a sciunit has execution id "e1".

Note that the command line is launched using execvp(3) rather than interpreted by a shell.

sciunit exec -i
Launch the current user's shell and capture the user's interactions with the shell. This may involve executing multiple commands. A new execution is created on exiting the shell.
sciunit repeat <execution id> [<args...>]
Repeat the execution of execution id from the currently-opened sciunit. If args present, use them in place of the command line arguments that were present when the command was captured with the sciunit exec command.
sciunit list
List the existing executions in the currently-opened sciunit.
sciunit show [<execution id>]
Show detailed information about a specific execution (or the most recent execution, if no argument present) in the currently-opened sciunit.
sciunit rm <execution id>

Remove an existing execution from the currently-opened sciunit. A malformed execution id causes an error. Removing a nonexistent execution has no effect.

Note: the execution is removed from the records, but its data remains and may be shared with other executions.

sciunit push <codename> --setup <service>
Create an article on a research object sharing service and attach the currently opened sciunit to the article. Assign different codenames to track multiple articles or multiple versions of an article created from a sciunit. The supported services include figshare (fs) and HydroShare (hs).
sciunit push [<codename>]
Update the last pushed article with the latest sciunit data if no argument present. Otherwise, update the article referred to by codename.
sciunit copy
Copy the currently-opened sciunit to file.io and obtain a token for remotely opening it. The token is invalidated after being accessed or after one day, whichever happens first.
sciunit copy <remote>|<name>
Copy a sciunit to a remote server or ~/sciunit/<name>. The supported remote protocols include Globus.
sciunit copy -n
Archive the currently-opened sciunit to ~/sciunit/<name>.zip.
sciunit gc
Reduce the currently-opened sciunit's disk usage by garbage-collecting the unreferenced execution data.
sciunit alias <newcmd> <sub...>
Add a new entry under the [alias] section in the user-wide config file ~/sciunit/config. The setting enables sciunit <newcmd> [<args...>] to be reinterpreted as sciunit <sub...> [<args...>].
sciunit ignore <path>
Add a new entry under the [ignore] section in the unit-specific config file ~/sciunit/<name>/config. If the path ends with /, exclude any paths prefixed with path when capturing; otherwise, exclude just path.

SEE ALSO

HydroShare: https://www.hydroshare.org/

figshare: https://figshare.com/

Globus: https://www.globus.org/