-
Notifications
You must be signed in to change notification settings - Fork 35
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #87 from ssteinerx/master
Add DEVELOP.md dev environment setup instructions
- Loading branch information
Showing
1 changed file
with
103 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
pySMART | ||
=========== | ||
|
||
Copyright (C) 2021-2023 [Rafael Leira](https://github.com/ralequi)\ | ||
Copyright (C) 2021 [Truenas team](https://www.truenas.com/)\ | ||
Copyright (C) 2015 Marc Herndon | ||
|
||
Development | ||
----------- | ||
|
||
To run the tests, or to contribute to pySMART, you will have to set up a | ||
development environment. | ||
|
||
Our development environment will consist of a virtual environment, with the | ||
installation and development dependencies installed. | ||
|
||
See the [Python documentation] for more on creating and using virtual | ||
environment. | ||
|
||
This document will assume a Linux environment. | ||
|
||
The steps are: | ||
|
||
1. Clone this repository, go there | ||
1. Create a virtualenv and activate it | ||
1. Install the dependencies | ||
1. Run the tests | ||
|
||
- Go where you want to clone the repository, clone it, go there: | ||
|
||
```bash | ||
$ cd <wherever you want to clone the repository> | ||
$ git clone https://github.com/truenas/py-SMART | ||
|
||
Cloning into 'py-SMART'... | ||
remote: Enumerating objects: 2243, done. | ||
remote: Counting objects: 100% (839/839), done. | ||
remote: Compressing objects: 100% (362/362), done. | ||
remote: Total 2243 (delta 544), reused 743 (delta 463), pack-reused 1404 | ||
Receiving objects: 100% (2243/2243), 674.95 KiB | 2.38 MiB/s, done. | ||
Resolving deltas: 100% (1518/1518), done. | ||
|
||
$ cd py-SMART | ||
``` | ||
|
||
- Create a virtualenv and activate it | ||
|
||
```bash | ||
$ python -m venv .venv | ||
$ source .venv/bin/activate | ||
(.venv) $ | ||
``` | ||
|
||
We use `.venv` for the directory name of the virtualenv by convention. | ||
Any other legal directory name is fine; we'll assume `.venv`. | ||
- Update pip and setuptools | ||
```bash | ||
$(.venv) $ python -m pip install --upgrade pip setuptools | ||
Requirement already satisfied: pip in <...>/.venv/lib/python3.12/site-packages (23.1) | ||
Collecting pip | ||
Using cached pip-24.0-py3-none-any.whl (2.1 MB) | ||
Requirement already satisfied: setuptools in <...>/.venv/lib/python3.12/site-packages (68.0.0) | ||
Collecting setuptools | ||
Downloading setuptools-69.5.1-py3-none-any.whl (894 kB) | ||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 894.6/894.6 kB 6.1 MB/s eta 0:00:00 | ||
Installing collected packages: setuptools, pip | ||
Attempting uninstall: setuptools | ||
Found existing installation: setuptools 68.0.0 | ||
Uninstalling setuptools-68.0.0: | ||
Successfully uninstalled setuptools-68.0.0 | ||
Attempting uninstall: pip | ||
Found existing installation: pip 23.1 | ||
Uninstalling pip-23.1: | ||
Successfully uninstalled pip-23.1 | ||
Successfully installed pip-24.0 setuptools-69.5.1 | ||
``` | ||
- Install the package including development dependencies | ||
```bash | ||
$(.venv) $ python -m pip install --editable .[dev] | ||
``` | ||
- Run the tests | ||
```bash | ||
$(.venv) $ pytest | ||
=============== test session starts ===================================== | ||
platform linux -- Python 3.12.2, pytest-8.1.1, pluggy-1.5.0 | ||
rootdir: <...>/py-SMART | ||
configfile: pyproject.toml | ||
plugins: cov-5.0.0 | ||
collected 184 items | ||
< test file names, lots and lots of dots> | ||
=============== 184 passed in 0.99s ===================================== | ||
``` | ||
**That's it -- you're ready to start developing on pySMART!** | ||
[Python documentation]: https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/#create-and-use-virtual-environments |