59 lines
1.5 KiB
Markdown
59 lines
1.5 KiB
Markdown
# 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 <package-name>:
|
|
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
|
|
```
|