Skip to content

Latest commit

 

History

History
103 lines (79 loc) · 3.33 KB

DEVELOP.md

File metadata and controls

103 lines (79 loc) · 3.33 KB

pySMART

Copyright (C) 2021-2023 Rafael Leira
Copyright (C) 2021 Truenas team
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
  2. Create a virtualenv and activate it
  3. Install the dependencies
  4. Run the tests
  • Go where you want to clone the repository, clone it, go there:

    $ 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

    $ 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

    $(.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

    $(.venv) $ python -m pip install --editable .[dev]
  • Run the tests

    $(.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!