Skip to content
Juan Gonzalez-Gomez edited this page Jun 13, 2021 · 18 revisions

Developers

Instructions for developers or people that want to contribute to this project

Tools needed

  • Python 3. The icm is programmed in Python language
  • Virtual environment. It allows you to test icm and install python packages without breaking anything on your system
    • Windows: It is already available after the python3 installation
    • Installation on Ubuntu 20.04:
sudo apt install python3-venv

Setting the working environment

If it is the first time you are using icm follow these steps:

  • Fork the icm repo in your github account
  • Clone the repo (or your fork, if you want to contribute):
git clone https://github.com/FPGAwars/icm.git
  • Enter into the icm folder
cd icm
  • Create the virtual python environment
make cenv
  • Start the virtual environment
. env/bin/activate
  • Install all the python dependencies:
make deps

Running icm

You can now modify the python source files for adding your new features / bug fixed. Once your are done type these commands:

  • Check that everything is ok:
make tox

If everything was ok you should see something like this:

(env) obijuan@Hoth:~/test/icm$ make tox
python -m tox
[...]
py38 run-test: commands[1] | flake8 icm
py38 run-test: commands[2] | pylint icm

--------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)

___________________________________ summary ____________________________________
  py38: commands succeeded
  congratulations :)
(env) obijuan@Hoth:~/test/icm$
  • Install icm in your python environment
make install
  • Run icm. For example, you can check the version:
(env) obijuan@Hoth:~/test/icm$ icm --version
icm, version 0.4.8

Releasing a new version

When you have finished a new feature or a bug has been fixed it is time for releasing! Follow these steps:

  • Update the version number in the file icm/__init__.py

For example, change the current number:

VERSION = (0, 4, 8)

To the new one:

VERSION = (0, 4, 9)
  • Make sure all the test are passed:
make tox
  • Commit/push your changes
  • Create a new Release in the github repo page. Once it is finished, it will be automatically packed and published on the Pypi repo
  • You are done!

TODO


Developers

  • TODO
Clone this wiki locally