*aiogram* is an open-source project, and anyone can contribute to it in any possible way
Developing
==========
Before making any changes in the framework code, it is necessary to fork the project and clone
the project to your PC and know how to do a pull-request.
How to work with pull-request you can read in the `GitHub docs <https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request>`_
Also in due to this project is written in Python, you will need Python to be installed
(is recommended to use latest Python versions, but any version starting from 3.8 can be used)
Use virtualenv
--------------
You can create a virtual environment in a directory using :code:`venv` module (it should be pre-installed by default):
..code-block::bash
python -m venv .venv
This action will create a :code:`.venv` directory with the Python binaries and then you will
be able to install packages into that isolated environment.
Activate the environment
------------------------
Linux/ macOS:
..code-block:: bash
source .venv/bin/activate
Windows PoweShell
..code-block:: powershell
.\.venv\Scripts\Activate.ps1
To check it worked, use described command, it should show the :code:`pip` location inside
the isolated environment
Linux, macOS:
..code-block::
which pip
Windows PowerShell
..code-block::
Get-Command pip
Also make you shure you have the latest pip version in your virtual environment to avoid
errors on next steps:
..code-block::
python -m pip install --upgrade pip
Setup project
-------------
After activating the environment install `aiogram` from sources and their dependencies: