# Contributing to devicehub ## Writing code ### Javascript and compatibility with "old" browsers **Warning:** This project is using babel compiler... You need run an additional build step to make build js file ```bash npm install npm run babel ``` NOTE: If you prefer you can use yarn instead, it's compatible NOTE2: This only affect to file `ereuse_devicehub/static/js/main_inventory.js`. ### Coding style #### Python style - Unless otherwise specified, follow [PEP 8](https://www.python.org/dev/peps/pep-0008). Use [flake8](https://pypi.org/project/flake8/) to check for problems in this area. - Use [isort](https://github.com/PyCQA/isort#readme) to automate import sorting. To automatize this work just configure `pre-commit` hooks in your development environment: ```bash # on your virtual environment pip install -r requirements-dev.txt pre-commit install ``` #### HTML (templates) - Template file names should be all lowercase, using underscores instead of camelCase. Do this: `device_detail.html` Don't do this: `DeviceDetail.html`, `Device-detail.html` ## Adding a new dependency to the project This project tracks its packages using pip-tools, it could be installed by running: ``` pip install pip-tools ``` Whenever you need to install a new package using pip install : 1. Put the package name into `requirements.in` instead. ``` # requirements.in ... new_package ``` 2. Compile the requirements ``` pip-compile requirements.in --output-file=requirements.txt ``` 3. Then install upgraded dependencies: ``` pip install -U -r requirements.txt ```