Skip to content

Commit

Permalink
Merge pull request #87 from ssteinerx/master
Browse files Browse the repository at this point in the history
Add DEVELOP.md dev environment setup instructions
  • Loading branch information
ralequi committed Apr 26, 2024
2 parents a981bff + ae2d154 commit a07dda0
Showing 1 changed file with 103 additions and 0 deletions.
103 changes: 103 additions & 0 deletions DEVELOP.md
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

0 comments on commit a07dda0

Please sign in to comment.