Skip to content

Commit

Permalink
Doc: added page on how to build up dev environment
Browse files Browse the repository at this point in the history
  • Loading branch information
PierreRaybaut committed Sep 15, 2023
1 parent 860dd66 commit e6c7c49
Show file tree
Hide file tree
Showing 3 changed files with 151 additions and 0 deletions.
1 change: 1 addition & 0 deletions doc/dev/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ Development
contribute
howto
v2_to_v3
platform
130 changes: 130 additions & 0 deletions doc/dev/platform.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
Reference test platforms
------------------------

About requirements
^^^^^^^^^^^^^^^^^^

The ``requirements.txt`` mentioned in the following sections is a text file which
contains the list of all the Python packages required for building up the projet
environment. It is used by the ``pip`` command to install all the dependencies.

The ``requirements.txt`` file is generated automatically by the
``toml-to-requirements`` tool. It is based on the ``pyproject.toml`` file
which is the reference file for the project dependencies.

.. warning::

Please note that the generation is not systematic and the ``requirements.txt``
file may not be up-to-date.

To update the ``requirements.txt`` file, you need to install the
``toml-to-requirements`` and execute the following command:

.. code-block:: bash
toml-to-req --toml-file .\pyproject.toml --include-optional
Microsoft Windows 10
^^^^^^^^^^^^^^^^^^^^

First, install the latest version of Python 3.10 from the WinPython project.

.. note::

At the time of writing, the latest version is 3.10.11.1 which can be
download from `here <https://sourceforge.net/projects/winpython/files/WinPython_3.10/3.10.11.1/Winpython64-3.10.11.1dot.exe/download>`_.

Then install all the requirements using the following command from the WinPython
command prompt:

.. code-block:: bash
pip install -r requirements.txt
That's it, you can now run the tests using the following command:

.. code-block:: bash
pytest --unattended guidata
If you want to rely on Visual Studio Code for editing and take advantage of the
project settings and tasks, you will need to set the following environment variable:

.. code-block:: bash
set GUIDATA_PYTHONEXE=C:\WPy64-31110\python-3.11.1.amd64\python.exe
CentOS Stream 8.8
^^^^^^^^^^^^^^^^^

.. note::

The following instructions have been tested on CentOS Stream which is the
reference platform for the project. However, they should work on
any other Linux distribution relying on the ``yum`` package manager.
As for the other distributions, you may need to adapt the instructions
to your specific environment (e.g. use ``apt-get`` instead of ``yum``).

First, install the prerequisites:

.. code-block:: bash
sudo yum install groupinstall "Development Tools" -y
sudo yum install openssl-devel.i686 libffi-devel.i686 bzip2-devel.i686 sqlite-devel -y
Check that ``gcc`` is installed and available in the ``PATH`` environment variable:

.. code-block:: bash
gcc --version
Install OpenSSL 1.1.1:

.. code-block:: bash
wget https://www.openssl.org/source/openssl-1.1.1v.tar.gz
tar -xvf openssl-1.1.1v.tar.gz
cd openssl-1.1.1v
./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib no-shared zlib-dynamic
make
sudo make install
openssl version
which openssl
cd ..
Install Python 3.10.13 (the latest 3.10 version at the time of writing):

.. code-block:: bash
wget https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tgz
tar -xvf Python-3.10.13.tgz
cd Python-3.10.13
./configure --enable-optimizations --with-openssl=/usr --enable-loadable-sqlite-extensions
sudo make altinstall
cd ..
Eventually add the ``/usr/local/bin`` directory to the ``PATH`` environment variable
if Python has warned you about it:

.. code-block:: bash
sudo echo 'pathmunge /usr/local/bin' > /etc/profile.d/py310.sh
chmod +x /etc/profile.d/py310.sh
. /etc/profile # or logout and login again (reload the environment variables)
echo $PATH # check that /usr/local/bin is in the PATH
Create a virtual environment and install the requirements:

.. code-block:: bash
python3.10 -m venv guidata-venv
source guidata-venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
That's it, you can now run the tests using the following command:

.. code-block:: bash
pytest --unattended guidata
20 changes: 20 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Coverage
NumPy>=1.21
PyQt5
QtPy>=1.9
black
h5py>=3.0
isort
pandas
pillow
pylint
pytest
pytest-cov
pytest-qt
pytest-xvfb
python-docs-theme
requests
sphinx
sphinx-copybutton
sphinx_qt_documentation
tomli

0 comments on commit e6c7c49

Please sign in to comment.