Skip to content

Commit

Permalink
Merge pull request #5278 from janezd/update-installation-instructions
Browse files Browse the repository at this point in the history
README.md: Update installation instructions
  • Loading branch information
markotoplak authored Feb 23, 2021
2 parents f72c884 + 31394c0 commit 3617a5b
Showing 1 changed file with 137 additions and 77 deletions.
214 changes: 137 additions & 77 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,17 @@
</p>
<p align="center">
<a href="https://orange.biolab.si/download" alt="Latest release">
<img src="https://img.shields.io/github/v/release/biolab/orange3?label=download" /></a>
<img src="https://img.shields.io/github/v/release/biolab/orange3?label=download" />
</a>
<a href="https://orange3.readthedocs.io/en/latest/?badge=latest" alt="Documentation">
<img src="https://readthedocs.org/projects/orange3/badge/?version=latest"></a>
<img src="https://readthedocs.org/projects/orange3/badge/?version=latest">
</a>
<a href="https://discord.gg/FWrfeXV" alt="Discord">
<img src="https://img.shields.io/discord/633376992607076354?logo=discord&color=7389D8&logoColor=white&label=Discord"> </a>
</p>

# Orange
[Orange] is a data mining and visualization toolbox for novice and expert alike. To explore data with Orange, one requires __no__ programming or in-depth mathematical knowledge. We believe that workflow-based data science tools democratize data science by hiding complex underlying mechanics and exposing intuitive concepts. Anyone who owns data, or is motivated to peek into data, should have the means to do so.
# Orange Data Mining
[Orange] is a data mining and visualization toolbox for novice and expert alike. To explore data with Orange, one requires __no programming or in-depth mathematical knowledge__. We believe that workflow-based data science tools democratize data science by hiding complex underlying mechanics and exposing intuitive concepts. Anyone who owns data, or is motivated to peek into data, should have the means to do so.

<p align="center">
<a href="https://orange.biolab.si/download">
Expand All @@ -21,124 +25,180 @@

[Orange]: https://orange.biolab.si/

## Contributing

[![GitHub Actions](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fbiolab%2Forange3%2Fbadge&label=build)](https://actions-badge.atrox.dev/biolab/orange3/goto)
[![codecov](https://img.shields.io/codecov/c/github/biolab/orange3)](https://codecov.io/gh/biolab/orange3)
[![Contributor count](https://img.shields.io/github/contributors-anon/biolab/orange3)](https://github.com/biolab/orange3/graphs/contributors)
[![Latest GitHub commit](https://img.shields.io/github/last-commit/biolab/orange3)](https://github.com/biolab/orange3/commits/master)
## Installing

Want to get involved? Join us on [![Discord](https://img.shields.io/discord/633376992607076354?logo=discord&color=7389D8&logoColor=white&label=Discord)](https://discord.gg/FWrfeXV), introduce yourself in #general!
### Easy installation

Take a look at our [contributing guide](https://github.com/irgolic/orange3/blob/README-shields/CONTRIBUTING.md), it might answer some questions, and it outlines the standards we adhere to.
For easy installation, [![Download](https://img.shields.io/github/v/release/biolab/orange3?label=download)](https://orange.biolab.si/download) the latest released Orange version from our website. To install an add-on, head to `Options -> Add-ons...` in the menu bar.

Check out our widget development [![docs](https://readthedocs.org/projects/orange-widget-base/badge/?version=latest)](https://orange-widget-base.readthedocs.io/en/latest/?badge=latest) for a comprehensive guide on writing Orange widgets.
### Installing with Conda

If you're looking for a good starting point, check out our [![good first issues](https://img.shields.io/github/issues/biolab/orange3/good%20first%20issue?label=good%20first%20issues)](https://github.com/biolab/orange3/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22).
First, install [Miniconda](https://docs.conda.io/en/latest/miniconda.html) for your OS.

Then, create a new conda environment, and install orange3:

### The Orange Ecosystem
```Shell
# Add conda-forge to your channels for access to the latest release
conda config --add channels conda-forge

The development of Orange is primarily split into three repositories:
# Create and activate an environment for Orange
conda create python=3 --yes --name orange3
conda activate orange3

[biolab/orange-canvas-core](https://www.github.com/biolab/orange-canvas-core) implements canvas elements,
[biolab/orange-widget-base](https://www.github.com/biolab/orange-widget-base) implements a widget window's interface elements,
[biolab/orange3](https://www.github.com/biolab/orange3) brings it all together and implements the base data mining toolbox.
# Install Orange
conda install orange3
```

Additionally, add-ons implement additional widgets for more specific use cases. [Anyone can write an add-on.](https://github.com/biolab/orange3-example-addon) Below is a list of our first-party add-ons:
For installation of an add-on, use:
```Shell
conda install orange3-<addon name>
```
[See specific add-on repositories for details.](https://github.com/biolab/)

[biolab/orange3-text](https://www.github.com/biolab/orange3-text)
[biolab/orange3-bioinformatics](https://www.github.com/biolab/orange3-bioinformatics)
[biolab/orange3-timeseries](https://www.github.com/biolab/orange3-timeseries)
[biolab/orange3-single-cell](https://www.github.com/biolab/orange3-single-cell)
[biolab/orange3-imageanalytics](https://www.github.com/biolab/orange3-imageanalytics)
[biolab/orange3-educational](https://www.github.com/biolab/orange3-educational)
[biolab/orange3-geo](https://www.github.com/biolab/orange3-geo)
[biolab/orange3-associate](https://www.github.com/biolab/orange3-associate)
[biolab/orange3-network](https://www.github.com/biolab/orange3-network)
#### Running

### Setting up
Activate the environment,
```Shell
conda activate orange3
```
and run either `orange-canvas` or `python3 -m Orange.canvas`.

1. Set up a __virtual environment__. We recommend [Miniconda](https://docs.conda.io/en/latest/miniconda.html).
`conda create python=3 --name orange3`
2. __Fork__ your chosen repository.
Press the fork button in top-right corner of the page
3. __Clone__ it.
`git clone ssh://[email protected]/<your-username>/<repo-name>`
4. __Install__ it.
`pip install -e .` or `python setup.py develop`
Add `--help` for a list of program options.

Now you're ready to work with git. See GitHub's guides on [pull requests](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/proposing-changes-to-your-work-with-pull-requests), [forks](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/working-with-forks) if you're unfamiliar.
If you're having trouble, get in touch on [![Discord](https://img.shields.io/discord/633376992607076354?logo=discord&color=7389D8&logoColor=white&label=Discord)](https://discord.gg/FWrfeXV).
Starting up for the first time may take a while.

## Installing
### Installing with pip

For easy installation, [![Download](https://img.shields.io/github/v/release/biolab/orange3?label=download)](https://orange.biolab.si/download) the latest released Orange version from our website.
To install Orange with pip, run the following.

### Installing with Miniconda / Anaconda
```Shell
# Install build requirements via your system's package manager
sudo apt install virtualenv build-essential python3-dev

Orange requires Python 3.6 or newer.
# Create an environment for Orange and its dependencies
virtualenv --python=python3 --system-site-packages orange3venv

First, install [Miniconda] for your OS. Create virtual environment for Orange:
# Activate the environment
source orange3venv/bin/activate

```Shell
conda create python=3 --name orange3
# Install Orange
pip install orange3
```
In your Anaconda Prompt add conda-forge to your channels:

#### Running

Activate the environment by `source orange3venv/bin/activate`. Then run `orange-canvas` or `python3 -m Orange.canvas`. Add `--help` for a list of program options.

Starting up for the first time may take a while.

### Installing with winget (Windows only)

To install Orange with [winget](https://docs.microsoft.com/en-us/windows/package-manager/winget/), run:

```Shell
conda config --add channels conda-forge
winget install --id UniversityofLjubljana.Orange
```

This will enable access to the latest Orange release. Then install Orange3:
## Developing

[![GitHub Actions](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fbiolab%2Forange3%2Fbadge&label=build)](https://actions-badge.atrox.dev/biolab/orange3/goto) [![codecov](https://img.shields.io/codecov/c/github/biolab/orange3)](https://codecov.io/gh/biolab/orange3) [![Contributor count](https://img.shields.io/github/contributors-anon/biolab/orange3)](https://github.com/biolab/orange3/graphs/contributors) [![Latest GitHub commit](https://img.shields.io/github/last-commit/biolab/orange3)](https://github.com/biolab/orange3/commits/master)

Want to write a widget? [Use the Orange3 example add-on template.](https://github.com/biolab/orange3-example-addon)

Want to get involved? Join us on [![Discord](https://img.shields.io/discord/633376992607076354?logo=discord&color=7389D8&logoColor=white&label=Discord)](https://discord.gg/FWrfeXV), introduce yourself in #general!

Take a look at our [contributing guide](https://github.com/irgolic/orange3/blob/README-shields/CONTRIBUTING.md) and [style guidelines](https://github.com/biolab/orange-widget-base/wiki/Widget-UI).

Check out our widget development [![docs](https://readthedocs.org/projects/orange-widget-base/badge/?version=latest)](https://orange-widget-base.readthedocs.io/en/latest/?badge=latest) for a comprehensive guide on writing Orange widgets.

### The Orange ecosystem

The development of core Orange is primarily split into three repositories:

[biolab/orange-canvas-core](https://www.github.com/biolab/orange-canvas-core) implements the canvas,
[biolab/orange-widget-base](https://www.github.com/biolab/orange-widget-base) is a handy widget GUI library,
[biolab/orange3](https://www.github.com/biolab/orange3) brings it all together and implements the base data mining toolbox.

Additionally, add-ons implement additional widgets for more specific use cases. [Anyone can write an add-on.](https://github.com/biolab/orange3-example-addon) Some of our first-party add-ons:

- [biolab/orange3-text](https://www.github.com/biolab/orange3-text)
- [biolab/orange3-bioinformatics](https://www.github.com/biolab/orange3-bioinformatics)
- [biolab/orange3-timeseries](https://www.github.com/biolab/orange3-timeseries)
- [biolab/orange3-single-cell](https://www.github.com/biolab/orange3-single-cell)
- [biolab/orange3-imageanalytics](https://www.github.com/biolab/orange3-imageanalytics)
- [biolab/orange3-educational](https://www.github.com/biolab/orange3-educational)
- [biolab/orange3-geo](https://www.github.com/biolab/orange3-geo)
- [biolab/orange3-associate](https://www.github.com/biolab/orange3-associate)
- [biolab/orange3-network](https://www.github.com/biolab/orange3-network)
- [biolab/orange3-explain](https://www.github.com/biolab/orange3-explain)

### Setting up for core Orange development

First, fork the repository by pressing the fork button in the top-right corner of this page.

Set your GitHub username,

```Shell
conda install orange3
export MY_GITHUB_USERNAME=replaceme
```

[Miniconda]: https://docs.conda.io/en/latest/miniconda.html

To install the add-ons, follow a similar recipe:
create a conda environment, clone your fork, and install it:

```Shell
conda install orange3-<addon name>
conda create python=3 --yes --name orange3
conda activate orange3

git clone ssh://[email protected]/$MY_GITHUB_USERNAME/orange3

pip install -e orange3
```

See specific add-on repositories for details.
Now you're ready to work with git. See GitHub's guides on [pull requests](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/proposing-changes-to-your-work-with-pull-requests), [forks](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/working-with-forks) if you're unfamiliar. If you're having trouble, get in touch on [![Discord](https://img.shields.io/discord/633376992607076354?logo=discord&color=7389D8&logoColor=white&label=Discord)](https://discord.gg/FWrfeXV).

### Installing with pip
#### Running

To install Orange with pip, run the following.
Run Orange with `python -m Orange.canvas` (after activating the conda environment).

```Shell
# Install some build requirements via your system's package manager
sudo apt install virtualenv build-essential python3-dev
`python -m Orange.canvas -l 2 --no-splash --no-welcome` will skip the splash screen and welcome window, and output more debug info. Use `-l 4` for more.

# Create a separate Python environment for Orange and its dependencies ...
virtualenv --python=python3 --system-site-packages orange3venv
# ... and make it the active one
source orange3venv/bin/activate
Add `--clear-widget-settings` to clear the widget settings before start.

# Install Orange
pip install orange3
```
To explore the dark side of the Orange, try `--style=fusion:breeze-dark`

### Installing with winget (Windows only)
Argument `--help` lists all available options.

To install Orange with [winget](https://docs.microsoft.com/en-us/windows/package-manager/winget/), run:
To run tests, use `unittest Orange.tests Orange.widgets.tests`


### Setting up for development of all components

Should you wish to contribute Orange's base components (the widget base and the canvas), you must also clone these two repositories from Github instead of installing them as dependencies of Orange3.

First, fork all the repositories to which you want to contribute.

Set your GitHub username,

```Shell
winget install --id UniversityofLjubljana.Orange
export MY_GITHUB_USERNAME=replaceme
```

### Starting Orange GUI

To start Orange GUI from the command line, run:
create a conda environment, clone your forks, and install them:

```Shell
orange-canvas
# or
python3 -m Orange.canvas
conda create python=3 --yes --name orange3
conda activate orange3

git clone ssh://[email protected]/$MY_GITHUB_USERNAME/orange-widget-base
pip install -e orange-widget-base

git clone ssh://[email protected]/$MY_GITHUB_USERNAME/orange-canvas-core
pip install -e orange-canvas-core

git clone ssh://[email protected]/$MY_GITHUB_USERNAME/orange3
pip install -e orange3

# Repeat for any add-on repositories
```

Append `--help` for a list of program options.
It's crucial to install `orange-base-widget` and `orange-canvas-core` before `orange3` to ensure that `orange3` will use your local versions.

0 comments on commit 3617a5b

Please sign in to comment.