introduction.rst
## Installing WHY
There are two way in which the WHY package can be installed. First, follow the [prerequisite](#prerequisites) instructions. IF you do not need to rebuild documentation or make modifications to the library, follow the instructions under [User Installation](#user-installation). Otherwise, follow the instructions under [Developer Installation](#developer-installation).
### Prerequisites
The WHY requires at least python3.8 and makes use of a number of third-party libraries. The bare minimum packages are automatically installed when you install WHY using pip. Additional dependencies for developers are contained in requirements.txt file. See the
It's recommended that you use WHY within a python virtual environment. Virtual environments are now included natively with Python 3 using venv. Instructions to create a virtual environment can be found [here](https://docs.python.org/3/library/venv.html).
API documentation requires the use of sphinx which will require installing Cmake. Installation instructions can be found [here](https://cmake.org/install/).
### User Installation
First you must clone the repository using the following bash command.
`bash
pip clone git@gitlab.cci.drexel.edu:pjm363/why-senior-project.git
`
From the root path of the repository (the folder where setup.py is located) WHY can be installed using pip using the following command.
`bash
pip install .
`
### Developer Installation Developers need an additional tool, clang-format in order to run the precommit script.
Install via Ubuntu.
`bash
apt-get install clang-format
`
Install via MacOSX with homebrew.
`bash
brew install clang-format
`
Install via [installer](https://llvm.org/builds/) or using chocolatey via.
`bash
choco install llvm
`
## Building API Documentation
To build the API Documentation in HTML format for local browsing, execute the following from the root of the repository.
`
cd docs/
make html
`
This will also cause any examples contained in examples to be generated in the example gallery. All documentation is also built automatically when the ./precommit.sh script is run.