502 Bad gateway after Update

Please verify that this bug has NOT been raised before.

[X] I checked and didn't find similar issue

Describe the bug*
Coming from The Subredit   a cupple of days ago went to upgrade my inventreee instance , but it wasnt succsesfull .
The first log said that i had not specified A backup dir at my config , i did that with adding backup_dir:  {backup folder}  in the config the giving premmisions with chown
were stating that the prosses had finished with no issue .
the service is runing
Steps to Reproduce

sudo apt update
sudo apt upgrade
"502  Bad Gateway"

Expected behavior
" 200 ok " and open the inventree webapp
Deployment Method

[ ] Docker
[X] Bare metal

Version Information
issue appeared on upgrade to latest
Relevant log output
# Setting base environment variables
# Using existing config file: /etc/inventree/config.yaml
# Collected environment variables:
#    INVENTREE_MEDIA_ROOT=/opt/inventree/data/media
#    INVENTREE_STATIC_ROOT=/opt/inventree/data/static
#    INVENTREE_BACKUP_DIR=null
#    INVENTREE_PLUGINS_ENABLED=true
#    INVENTREE_PLUGIN_FILE=null
#    INVENTREE_SECRET_KEY_FILE=null
#    INVENTREE_DB_ENGINE=sqlite3
#    INVENTREE_DB_NAME=/opt/inventree/database.sqlite3
#    INVENTREE_DB_USER=null
#    INVENTREE_DB_HOST=null
#    INVENTREE_DB_PORT=null
# Getting the IP address of the server via web service
IP address is <IP_ADDRESS>
# Setting up python enviroment
Requirement already satisfied: invoke in ./env/lib/python3.9/site-packages (1.7.3)
Requirement already satisfied: wheel in ./env/lib/python3.9/site-packages (0.38.4)
# Stopping nginx
# Setting up nginx to /etc/nginx/sites-enabled/inventree.conf
# Starting nginx
# (Re)creating init scripts
Nothing to do.
Nothing to do.
# Enabling InvenTree on boot
# Admin data already exists - skipping
# Stopping InvenTree
# Updating InvenTree
# inv update| Installing required python packages from 'requirements.txt'
# inv update| Requirement already satisfied: pip in ./env/lib/python3.9/site-packages (22.3.1)
# inv update| Collecting arrow==1.2.3
# inv update|   Downloading arrow-1.2.3-py3-none-any.whl (66 kB)
# inv update|      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 66.4/66.4 kB 1.2 MB/s eta 0:00:00
# inv update| Requirement already satisfied: asgiref==3.5.2 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 9)) (3.5.2)
# inv update| Requirement already satisfied: babel==2.10.3 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 11)) (2.10.3)
# inv update| Requirement already satisfied: bleach[css]==5.0.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 13)) (5.0.1)
# inv update| Requirement already satisfied: blessed==1.19.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 15)) (1.19.1)
# inv update| Requirement already satisfied: brotli==1.0.9 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 17)) (1.0.9)
# inv update| Collecting certifi==2022.9.24
# inv update|   Downloading certifi-2022.9.24-py3-none-any.whl (161 kB)
# inv update|      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 161.1/161.1 kB 3.2 MB/s eta 0:00:00
# inv update| Requirement already satisfied: cffi==1.15.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 23)) (1.15.1)
# inv update| Collecting charset-normalizer==2.1.1
# inv update|   Downloading charset_normalizer-2.1.1-py3-none-any.whl (39 kB)
# inv update| Requirement already satisfied: coreapi==2.3.3 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 29)) (2.3.3)
# inv update| Requirement already satisfied: coreschema==0.0.4 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 31)) (0.0.4)
# inv update| Requirement already satisfied: cryptography==3.4.8 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 33)) (3.4.8)
# inv update| Collecting cssselect2==0.7.0
# inv update|   Downloading cssselect2-0.7.0-py3-none-any.whl (15 kB)
# inv update| Requirement already satisfied: defusedxml==0.7.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 39)) (0.7.1)
# inv update| Requirement already satisfied: diff-match-patch==20200713 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 43)) (20200713)
# inv update| Collecting django==3.2.16
# inv update|   Downloading Django-3.2.16-py3-none-any.whl (7.9 MB)
# inv update|      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.9/7.9 MB 11.8 MB/s eta 0:00:00
# inv update| Requirement already satisfied: django-allauth==0.51.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 71)) (0.51.0)
# inv update| Requirement already satisfied: django-allauth-2fa==0.10.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 75)) (0.10.0)
# inv update| Requirement already satisfied: django-cleanup==6.0.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 77)) (6.0.0)
# inv update| Requirement already satisfied: django-cors-headers==3.13.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 79)) (3.13.0)
# inv update| Requirement already satisfied: django-crispy-forms==1.14.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 81)) (1.14.0)
# inv update| Collecting django-dbbackup==4.0.2
# inv update|   Downloading django_dbbackup-4.0.2-py3-none-any.whl (56 kB)
# inv update|      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.2/56.2 kB 28.0 MB/s eta 0:00:00
# inv update| Requirement already satisfied: django-error-report==0.2.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 85)) (0.2.0)
# inv update| Requirement already satisfied: django-filter==22.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 87)) (22.1)
# inv update| Collecting django-formtools==2.4
# inv update|   Downloading django_formtools-2.4-py3-none-any.whl (154 kB)
# inv update|      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 154.4/154.4 kB 16.0 MB/s eta 0:00:00
# inv update| Requirement already satisfied: django-import-export==2.5.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 91)) (2.5.0)
# inv update| Requirement already satisfied: django-js-asset==2.0.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 93)) (2.0.0)
# inv update| Requirement already satisfied: django-maintenance-mode==0.16.3 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 95)) (0.16.3)
# inv update| Requirement already satisfied: django-markdownify==0.9.2 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 97)) (0.9.2)
# inv update| Requirement already satisfied: django-money==2.1.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 99)) (2.1.1)
# inv update| Requirement already satisfied: django-mptt==0.11.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 101)) (0.11.0)
# inv update| Requirement already satisfied: django-otp==1.1.3 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 103)) (1.1.3)
# inv update| Requirement already satisfied: django-picklefield==3.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 105)) (3.1)
# inv update| Requirement already satisfied: django-q==1.3.9 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 107)) (1.3.9)
# inv update| Requirement already satisfied: django-redis==5.2.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 109)) (5.2.0)
# inv update| Requirement already satisfied: django-sql-utils==0.6.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 111)) (0.6.1)
# inv update| Requirement already satisfied: django-sslserver==0.22 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 113)) (0.22)
# inv update| Requirement already satisfied: django-stdimage==5.3.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 115)) (5.3.0)
# inv update| Requirement already satisfied: django-user-sessions==1.7.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 117)) (1.7.1)
# inv update| Collecting django-weasyprint==2.2.0
# inv update|   Downloading django_weasyprint-2.2.0-py3-none-any.whl (9.7 kB)
# inv update| Requirement already satisfied: django-xforwardedfor-middleware==2.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 121)) (2.0)
# inv update| Collecting djangorestframework==3.14.0
# inv update|   Downloading djangorestframework-3.14.0-py3-none-any.whl (1.1 MB)
# inv update|      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 11.9 MB/s eta 0:00:00
# inv update| Requirement already satisfied: et-xmlfile==1.1.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 125)) (1.1.0)
# inv update| Collecting feedparser==6.0.10
# inv update|   Downloading feedparser-6.0.10-py3-none-any.whl (81 kB)
# inv update|      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 81.1/81.1 kB 18.1 MB/s eta 0:00:00
# inv update| Collecting fonttools[woff]==4.37.4
# inv update|   Downloading fonttools-4.37.4-py3-none-any.whl (960 kB)
# inv update|      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 960.8/960.8 kB 11.6 MB/s eta 0:00:00
# inv update| Requirement already satisfied: gunicorn==20.1.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 131)) (20.1.0)
# inv update| Requirement already satisfied: html5lib==1.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 133)) (1.1)
# inv update| Collecting idna==3.4
# inv update|   Downloading idna-3.4-py3-none-any.whl (61 kB)
# inv update|      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.5/61.5 kB 25.4 MB/s eta 0:00:00
# inv update| Collecting importlib-metadata==5.0.0
# inv update|   Downloading importlib_metadata-5.0.0-py3-none-any.whl (21 kB)
# inv update| Requirement already satisfied: itypes==1.2.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 139)) (1.2.0)
# inv update| Requirement already satisfied: jinja2==3.1.2 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 141)) (3.1.2)
# inv update| Requirement already satisfied: markdown==3.4.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 143)) (3.4.1)
# inv update| Requirement already satisfied: markuppy==1.14 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 145)) (1.14)
# inv update| Requirement already satisfied: markupsafe==2.1.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 147)) (2.1.1)
# inv update| Collecting oauthlib==3.2.1
# inv update|   Downloading oauthlib-3.2.1-py3-none-any.whl (151 kB)
# inv update|      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 151.7/151.7 kB 16.5 MB/s eta 0:00:00
# inv update| Requirement already satisfied: odfpy==1.4.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 151)) (1.4.1)
# inv update| Requirement already satisfied: openpyxl==3.0.10 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 153)) (3.0.10)
# inv update| Requirement already satisfied: pdf2image==1.16.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 155)) (1.16.0)
# inv update| Requirement already satisfied: pillow==9.2.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 157)) (9.2.0)
# inv update| Requirement already satisfied: py-moneyed==1.2 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 165)) (1.2)
# inv update| Requirement already satisfied: pycparser==2.21 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 169)) (2.21)
# inv update| Collecting pydyf==0.5.0
# inv update|   Downloading pydyf-0.5.0-py3-none-any.whl (6.8 kB)
# inv update| Collecting pyjwt[crypto]==2.5.0
# inv update|   Downloading PyJWT-2.5.0-py3-none-any.whl (20 kB)
# inv update| Collecting pyphen==0.13.0
# inv update|   Downloading pyphen-0.13.0-py3-none-any.whl (2.0 MB)
# inv update|      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.0/2.0 MB 11.8 MB/s eta 0:00:00
# inv update| Requirement already satisfied: python-barcode[images]==0.14.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 177)) (0.14.0)
# inv update| Requirement already satisfied: python-dateutil==2.8.2 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 179)) (2.8.2)
# inv update| Collecting python-fsutil==0.7.0
# inv update|   Downloading python_fsutil-0.7.0-py3-none-any.whl (12 kB)
# inv update| Requirement already satisfied: python3-openid==3.2.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 183)) (3.2.0)
# inv update| Collecting pytz==2022.4
# inv update|   Downloading pytz-2022.4-py2.py3-none-any.whl (500 kB)
# inv update|      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 500.8/500.8 kB 12.3 MB/s eta 0:00:00
# inv update| Requirement already satisfied: pyyaml==6.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 191)) (6.0)
# inv update| Requirement already satisfied: qrcode[pil]==7.3.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 193)) (7.3.1)
# inv update| Requirement already satisfied: rapidfuzz==0.7.6 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 197)) (0.7.6)
# inv update| Requirement already satisfied: redis==3.5.3 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 199)) (3.5.3)
# inv update| Collecting regex==2022.9.13
# inv update|   Downloading regex-2022.9.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (769 kB)
# inv update|      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 770.0/770.0 kB 12.7 MB/s eta 0:00:00
# inv update| Requirement already satisfied: requests==2.28.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 205)) (2.28.1)
# inv update| Requirement already satisfied: requests-oauthlib==1.3.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 210)) (1.3.1)
# inv update| Collecting sentry-sdk==1.9.10
# inv update|   Downloading sentry_sdk-1.9.10-py2.py3-none-any.whl (162 kB)
# inv update|      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 163.0/163.0 kB 15.3 MB/s eta 0:00:00
# inv update| Collecting sgmllib3k==1.0.0
# inv update|   Downloading sgmllib3k-1.0.0.tar.gz (5.8 kB)
# inv update|   Preparing metadata (setup.py): started
# inv update|   Preparing metadata (setup.py): finished with status 'done'
# inv update| Requirement already satisfied: six==1.16.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 216)) (1.16.0)
# inv update| Collecting sqlparse==0.4.3
# inv update|   Downloading sqlparse-0.4.3-py3-none-any.whl (42 kB)
# inv update|      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42.8/42.8 kB 68.9 MB/s eta 0:00:00
# inv update| Requirement already satisfied: tablib[html,ods,xls,xlsx,yaml]==3.2.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 226)) (3.2.1)
# inv update| Requirement already satisfied: tinycss2==1.1.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 230)) (1.1.1)
# inv update| Collecting types-cryptography==3.3.23
# inv update|   Downloading types_cryptography-3.3.23-py3-none-any.whl (30 kB)
# inv update| Requirement already satisfied: uritemplate==4.1.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 237)) (4.1.1)
# inv update| Collecting urllib3==1.26.12
# inv update|   Downloading urllib3-1.26.12-py2.py3-none-any.whl (140 kB)
# inv update|      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 140.4/140.4 kB 16.7 MB/s eta 0:00:00
# inv update| Requirement already satisfied: wcwidth==0.2.5 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 243)) (0.2.5)
# inv update| Requirement already satisfied: weasyprint==54.3 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 245)) (54.3)
# inv update| Requirement already satisfied: webencodings==0.5.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 249)) (0.5.1)
# inv update| Requirement already satisfied: xlrd==2.0.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 255)) (2.0.1)
# inv update| Requirement already satisfied: xlwt==1.3.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 257)) (1.3.0)
# inv update| Collecting zipp==3.9.0
# inv update|   Downloading zipp-3.9.0-py3-none-any.whl (5.8 kB)
# inv update| Requirement already satisfied: zopfli==0.2.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 261)) (0.2.1)
# inv update| Requirement already satisfied: setuptools in ./env/lib/python3.9/site-packages (from django-money==2.1.1->-r requirements.txt (line 99)) (44.1.1)
# inv update| Building wheels for collected packages: sgmllib3k
# inv update|   Building wheel for sgmllib3k (setup.py): started
# inv update|   Building wheel for sgmllib3k (setup.py): finished with status 'done'
# inv update|   Created wheel for sgmllib3k: filename=sgmllib3k-1.0.0-py3-none-any.whl size=6066 sha256=ba78ee0205dd6f59bc4c7f2f647a5a4177a22d994b3ea9cb26db30541ca0c022
# inv update|   Stored in directory: /tmp/pip-ephem-wheel-cache-v1r3zn84/wheels/00/a1/4a/3aaa30857be3b96a4a11fccfa1336686def7d898b8be2509dd
# inv update| Successfully built sgmllib3k
# inv update| Installing collected packages: types-cryptography, sgmllib3k, pytz, python-fsutil, zipp, urllib3, sqlparse, regex, pyphen, pyjwt, pydyf, oauthlib, idna, fonttools, feedparser, charset-normalizer, certifi, sentry-sdk, importlib-metadata, django, cssselect2, arrow, djangorestframework, django-formtools, django-dbbackup, django-weasyprint
# inv update|   Attempting uninstall: pytz
# inv update|     Found existing installation: pytz 2022.1
# inv update|     Uninstalling pytz-2022.1:
# inv update|       Successfully uninstalled pytz-2022.1
# inv update|   Attempting uninstall: python-fsutil
# inv update|     Found existing installation: python-fsutil 0.6.1
# inv update|     Uninstalling python-fsutil-0.6.1:
# inv update|       Successfully uninstalled python-fsutil-0.6.1
# inv update|   Attempting uninstall: zipp
# inv update|     Found existing installation: zipp 3.8.1
# inv update|     Uninstalling zipp-3.8.1:
# inv update|       Successfully uninstalled zipp-3.8.1
# inv update|   Attempting uninstall: urllib3
# inv update|     Found existing installation: urllib3 1.26.11
# inv update|     Uninstalling urllib3-1.26.11:
# inv update|       Successfully uninstalled urllib3-1.26.11
# inv update|   Attempting uninstall: sqlparse
# inv update|     Found existing installation: sqlparse 0.4.2
# inv update|     Uninstalling sqlparse-0.4.2:
# inv update|       Successfully uninstalled sqlparse-0.4.2
# inv update|   Attempting uninstall: pyphen
# inv update|     Found existing installation: pyphen 0.12.0
# inv update|     Uninstalling pyphen-0.12.0:
# inv update|       Successfully uninstalled pyphen-0.12.0
# inv update|   Attempting uninstall: pyjwt
# inv update|     Found existing installation: PyJWT 2.4.0
# inv update|     Uninstalling PyJWT-2.4.0:
# inv update|       Successfully uninstalled PyJWT-2.4.0
# inv update|   Attempting uninstall: pydyf
# inv update|     Found existing installation: pydyf 0.2.0
# inv update|     Uninstalling pydyf-0.2.0:
# inv update|       Successfully uninstalled pydyf-0.2.0
# inv update|   Attempting uninstall: oauthlib
# inv update|     Found existing installation: oauthlib 3.2.0
# inv update|     Uninstalling oauthlib-3.2.0:
# inv update|       Successfully uninstalled oauthlib-3.2.0
# inv update|   Attempting uninstall: idna
# inv update|     Found existing installation: idna 3.3
# inv update|     Uninstalling idna-3.3:
# inv update|       Successfully uninstalled idna-3.3
# inv update|   Attempting uninstall: fonttools
# inv update|     Found existing installation: fonttools 4.34.4
# inv update|     Uninstalling fonttools-4.34.4:
# inv update|       Successfully uninstalled fonttools-4.34.4
# inv update|   Attempting uninstall: charset-normalizer
# inv update|     Found existing installation: charset-normalizer 2.1.0
# inv update|     Uninstalling charset-normalizer-2.1.0:
# inv update|       Successfully uninstalled charset-normalizer-2.1.0
# inv update|   Attempting uninstall: certifi
# inv update|     Found existing installation: certifi 2022.6.15
# inv update|     Uninstalling certifi-2022.6.15:
# inv update|       Successfully uninstalled certifi-2022.6.15
# inv update|   Attempting uninstall: sentry-sdk
# inv update|     Found existing installation: sentry-sdk 1.9.0
# inv update|     Uninstalling sentry-sdk-1.9.0:
# inv update|       Successfully uninstalled sentry-sdk-1.9.0
# inv update|   Attempting uninstall: importlib-metadata
# inv update|     Found existing installation: importlib-metadata 4.12.0
# inv update|     Uninstalling importlib-metadata-4.12.0:
# inv update|       Successfully uninstalled importlib-metadata-4.12.0
# inv update|   Attempting uninstall: django
# inv update|     Found existing installation: Django 3.2.15
# inv update|     Uninstalling Django-3.2.15:
# inv update|       Successfully uninstalled Django-3.2.15
# inv update|   Attempting uninstall: cssselect2
# inv update|     Found existing insPlugin configuration file does not exist - creating default file
Traceback (most recent call last):
  File "/opt/inventree/InvenTree/manage.py", line 23, in <module>
    execute_from_command_line(sys.argv)
  File "/opt/inventree/env/lib/python3.9/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
    utility.execute()
  File "/opt/inventree/env/lib/python3.9/site-packages/django/core/management/__init__.py", line 363, in execute
    settings.INSTALLED_APPS
  File "/opt/inventree/env/lib/python3.9/site-packages/django/conf/__init__.py", line 82, in __getattr__
    self._setup(name)
  File "/opt/inventree/env/lib/python3.9/site-packages/django/conf/__init__.py", line 69, in _setup
    self._wrapped = Settings(settings_module)
  File "/opt/inventree/env/lib/python3.9/site-packages/django/conf/__init__.py", line 170, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 790, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/opt/inventree/InvenTree/InvenTree/settings.py", line 148, in <module>
    DBBACKUP_STORAGE_OPTIONS = {'location': config.get_backup_dir()}
  File "/opt/inventree/InvenTree/InvenTree/config.py", line 174, in get_backup_dir
    bd.mkdir(parents=True, exist_ok=True)
  File "/usr/lib/python3.9/pathlib.py", line 1312, in mkdir
    self._accessor.mkdir(self, mode)
FileExistsError: [Errno 17] File exists: '/opt/inventree/InvenTree/null'
tallation: cssselect2 0.6.0
# inv update|     Uninstalling cssselect2-0.6.0:
# inv update|       Successfully uninstalled cssselect2-0.6.0
# inv update|   Attempting uninstall: arrow
# inv update|     Found existing installation: arrow 1.2.2
# inv update|     Uninstalling arrow-1.2.2:
# inv update|       Successfully uninstalled arrow-1.2.2
# inv update|   Attempting uninstall: djangorestframework
# inv update|     Found existing installation: djangorestframework 3.13.1
# inv update|     Uninstalling djangorestframework-3.13.1:
# inv update|       Successfully uninstalled djangorestframework-3.13.1
# inv update|   Attempting uninstall: django-formtools
# inv update|     Found existing installation: django-formtools 2.3
# inv update|     Uninstalling django-formtools-2.3:
# inv update|       Successfully uninstalled django-formtools-2.3
# inv update|   Attempting uninstall: django-weasyprint
# inv update|     Found existing installation: django-weasyprint 2.1.0
# inv update|     Uninstalling django-weasyprint-2.1.0:
# inv update|       Successfully uninstalled django-weasyprint-2.1.0
# inv update| Successfully installed arrow-1.2.3 certifi-2022.9.24 charset-normalizer-2.1.1 cssselect2-0.7.0 django-3.2.16 django-dbbackup-4.0.2 django-formtools-2.4 django-weasyprint-2.2.0 djangorestframework-3.14.0 feedparser-6.0.10 fonttools-4.37.4 idna-3.4 importlib-metadata-5.0.0 oauthlib-3.2.1 pydyf-0.5.0 pyjwt-2.5.0 pyphen-0.13.0 python-fsutil-0.7.0 pytz-2022.4 regex-2022.9.13 sentry-sdk-1.9.10 sgmllib3k-1.0.0 sqlparse-0.4.3 types-cryptography-3.3.23 urllib3-1.26.12 zipp-3.9.0
# inv update| Installing plugin packages from 'null'
# inv update| Backing up InvenTree database...
# Set permissions for data dir and media: /opt/inventree/data
# Starting InvenTree
####################################################################################
This InvenTree install uses nginx, the settings for the webserver can be found in
/etc/nginx/sites-enabled/inventree.conf
Try opening InvenTree with either
http://localhost/ or

Admin user data:
   Email:
   Username:
   Password:
####################################################################################

>  invoke update
Installing required python packages from 'requirements.txt'
Requirement already satisfied: pip in ./env/lib/python3.9/site-packages (22.3.1)
Requirement already satisfied: arrow==1.2.3 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 7)) (1.2.3)
Requirement already satisfied: asgiref==3.5.2 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 9)) (3.5.2)
Requirement already satisfied: babel==2.10.3 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 11)) (2.10.3)
Requirement already satisfied: bleach[css]==5.0.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 13)) (5.0.1)
Requirement already satisfied: blessed==1.19.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 15)) (1.19.1)
Requirement already satisfied: brotli==1.0.9 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 17)) (1.0.9)
Requirement already satisfied: certifi==2022.9.24 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 19)) (2022.9.24)
Requirement already satisfied: cffi==1.15.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 23)) (1.15.1)
Requirement already satisfied: charset-normalizer==2.1.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 27)) (2.1.1)
Requirement already satisfied: coreapi==2.3.3 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 29)) (2.3.3)
Requirement already satisfied: coreschema==0.0.4 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 31)) (0.0.4)
Requirement already satisfied: cryptography==3.4.8 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 33)) (3.4.8)
Requirement already satisfied: cssselect2==0.7.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 37)) (0.7.0)
Requirement already satisfied: defusedxml==0.7.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 39)) (0.7.1)
Requirement already satisfied: diff-match-patch==20200713 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 43)) (20200713)
Requirement already satisfied: django==3.2.16 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 45)) (3.2.16)
Requirement already satisfied: django-allauth==0.51.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 71)) (0.51.0)
Requirement already satisfied: django-allauth-2fa==0.10.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 75)) (0.10.0)
Requirement already satisfied: django-cleanup==6.0.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 77)) (6.0.0)
Requirement already satisfied: django-cors-headers==3.13.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 79)) (3.13.0)
Requirement already satisfied: django-crispy-forms==1.14.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 81)) (1.14.0)
Requirement already satisfied: django-dbbackup==4.0.2 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 83)) (4.0.2)
Requirement already satisfied: django-error-report==0.2.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 85)) (0.2.0)
Requirement already satisfied: django-filter==22.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 87)) (22.1)
Requirement already satisfied: django-formtools==2.4 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 89)) (2.4)
Requirement already satisfied: django-import-export==2.5.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 91)) (2.5.0)
Requirement already satisfied: django-js-asset==2.0.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 93)) (2.0.0)
Requirement already satisfied: django-maintenance-mode==0.16.3 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 95)) (0.16.3)
Requirement already satisfied: django-markdownify==0.9.2 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 97)) (0.9.2)
Requirement already satisfied: django-money==2.1.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 99)) (2.1.1)
Requirement already satisfied: django-mptt==0.11.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 101)) (0.11.0)
Requirement already satisfied: django-otp==1.1.3 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 103)) (1.1.3)
Requirement already satisfied: django-picklefield==3.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 105)) (3.1)
Requirement already satisfied: django-q==1.3.9 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 107)) (1.3.9)
Requirement already satisfied: django-redis==5.2.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 109)) (5.2.0)
Requirement already satisfied: django-sql-utils==0.6.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 111)) (0.6.1)
Requirement already satisfied: django-sslserver==0.22 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 113)) (0.22)
Requirement already satisfied: django-stdimage==5.3.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 115)) (5.3.0)
Requirement already satisfied: django-user-sessions==1.7.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 117)) (1.7.1)
Requirement already satisfied: django-weasyprint==2.2.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 119)) (2.2.0)
Requirement already satisfied: django-xforwardedfor-middleware==2.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 121)) (2.0)
Requirement already satisfied: djangorestframework==3.14.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 123)) (3.14.0)
Requirement already satisfied: et-xmlfile==1.1.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 125)) (1.1.0)
Requirement already satisfied: feedparser==6.0.10 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 127)) (6.0.10)
Requirement already satisfied: fonttools[woff]==4.37.4 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 129)) (4.37.4)
Requirement already satisfied: gunicorn==20.1.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 131)) (20.1.0)
Requirement already satisfied: html5lib==1.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 133)) (1.1)
Requirement already satisfied: idna==3.4 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 135)) (3.4)
Requirement already satisfied: importlib-metadata==5.0.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 137)) (5.0.0)
Requirement already satisfied: itypes==1.2.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 139)) (1.2.0)
Requirement already satisfied: jinja2==3.1.2 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 141)) (3.1.2)
Requirement already satisfied: markdown==3.4.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 143)) (3.4.1)
Requirement already satisfied: markuppy==1.14 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 145)) (1.14)
Requirement already satisfied: markupsafe==2.1.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 147)) (2.1.1)
Requirement already satisfied: oauthlib==3.2.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 149)) (3.2.1)
Requirement already satisfied: odfpy==1.4.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 151)) (1.4.1)
Requirement already satisfied: openpyxl==3.0.10 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 153)) (3.0.10)
Requirement already satisfied: pdf2image==1.16.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 155)) (1.16.0)
Requirement already satisfied: pillow==9.2.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 157)) (9.2.0)
Requirement already satisfied: py-moneyed==1.2 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 165)) (1.2)
Requirement already satisfied: pycparser==2.21 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 169)) (2.21)
Requirement already satisfied: pydyf==0.5.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 171)) (0.5.0)
Requirement already satisfied: pyjwt[crypto]==2.5.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 173)) (2.5.0)
Requirement already satisfied: pyphen==0.13.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 175)) (0.13.0)
Requirement already satisfied: python-barcode[images]==0.14.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 177)) (0.14.0)
Requirement already satisfied: python-dateutil==2.8.2 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 179)) (2.8.2)
Requirement already satisfied: python-fsutil==0.7.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 181)) (0.7.0)
Requirement already satisfied: python3-openid==3.2.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 183)) (3.2.0)
Requirement already satisfied: pytz==2022.4 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 185)) (2022.4)
Requirement already satisfied: pyyaml==6.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 191)) (6.0)
Requirement already satisfied: qrcode[pil]==7.3.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 193)) (7.3.1)
Requirement already satisfied: rapidfuzz==0.7.6 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 197)) (0.7.6)
Requirement already satisfied: redis==3.5.3 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 199)) (3.5.3)
Requirement already satisfied: regex==2022.9.13 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 203)) (2022.9.13)
Requirement already satisfied: requests==2.28.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 205)) (2.28.1)
Requirement already satisfied: requests-oauthlib==1.3.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 210)) (1.3.1)
Requirement already satisfied: sentry-sdk==1.9.10 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 212)) (1.9.10)
Requirement already satisfied: sgmllib3k==1.0.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 214)) (1.0.0)
Requirement already satisfied: six==1.16.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 216)) (1.16.0)
Requirement already satisfied: sqlparse==0.4.3 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 222)) (0.4.3)
Requirement already satisfied: tablib[html,ods,xls,xlsx,yaml]==3.2.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 226)) (3.2.1)
Requirement already satisfied: tinycss2==1.1.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 230)) (1.1.1)
Requirement already satisfied: types-cryptography==3.3.23 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 235)) (3.3.23)
Requirement already satisfied: uritemplate==4.1.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 237)) (4.1.1)
Requirement already satisfied: urllib3==1.26.12 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 239)) (1.26.12)
Requirement already satisfied: wcwidth==0.2.5 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 243)) (0.2.5)
Requirement already satisfied: weasyprint==54.3 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 245)) (54.3)
Requirement already satisfied: webencodings==0.5.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 249)) (0.5.1)
Requirement already satisfied: xlrd==2.0.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 255)) (2.0.1)
Requirement already satisfied: xlwt==1.3.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 257)) (1.3.0)
Requirement already satisfied: zipp==3.9.0 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 259)) (3.9.0)
Requirement already satisfied: zopfli==0.2.1 in ./env/lib/python3.9/site-packages (from -r requirements.txt (line 261)) (0.2.1)
Requirement already satisfied: setuptools in ./env/lib/python3.9/site-packages (from django-money==2.1.1->-r requirements.txt (line 99)) (44.1.1)
Installing plugin packages from '/opt/inventree/InvenTree/plugins.txt'
Backing up InvenTree database...
Backing Up Database: /opt/inventree/database.sqlite3
Writing file to default-Inventree-2022-12-30-125957.dump.gz
Backing up InvenTree media files...
Writing file to Inventree-2022-12-30-125959.tar.gz
Running InvenTree database migrations...
========================================
No changes detected
Operations to perform:
  Apply all migrations: account, admin, auth, authtoken, build, common, company, contenttypes, django_q, error_report, exchange, label, order, otp_static, otp_totp, part, plugin, report, sites, socialaccount, stock, user_sessions, users
Running migrations:
  No migrations to apply.
Operations to perform:
  Synchronize unmigrated apps: InvenTree, allauth, allauth_2fa, corsheaders, crispy_forms, dbbackup, django_cleanup, django_filters, django_otp, djmoney, formtools, import_export, maintenance_mode, markdownify, messages, mptt, rest_framework, staticfiles
  Apply all migrations: account, admin, auth, authtoken, build, common, company, contenttypes, django_q, error_report, exchange, label, order, otp_static, otp_totp, part, plugin, report, sites, socialaccount, stock, user_sessions, users
Synchronizing apps without migrations:
  Creating tables...
    Running deferred SQL...
Running migrations:
  No migrations to apply.
System check identified no issues (1 silenced).
========================================
InvenTree database migrations completed!
Rebuilding Part objects
Rebuilding PartCategory objects
Rebuilding StockItem objects
Rebuilding StockLocation objects
Rebuilding Build objects
render api.js
render barcode.js
render helpers.js
render report.js
render model_renderers.js
render stock.js
render bom.js
render plugin.js
render tables.js
render label.js
render company.js
render filters.js
render search.js
render pricing.js
render order.js
render modals.js
render table_filters.js
render build.js
render news.js
render forms.js
render notification.js
render attachment.js
render part.js
render charts.js
rendered all files in /opt/inventree/InvenTree/templates/js/translated

624 static files copied to '/opt/inventree/data/static', 2250 unmodified.
13:00:36 [Q] INFO Enqueued 2141
InvenTree translation coverage: 22%
File “/opt/inventree/InvenTree/locale/hu/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/ja/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/nl/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/es_MX/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/no/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/pl/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/ru/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/cs/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/ko/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/it/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/vi/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/id/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/el/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/he/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/sv/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/th/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/de/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/fa/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/fr/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/pt/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/da/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/zh/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/es/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/pt_br/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/en/LC_MESSAGES/django.po” is already compiled and up to date.
File “/opt/inventree/InvenTree/locale/tr/LC_MESSAGES/django.po” is already compiled and up to date.

> sudo systemctl status inventree
● inventree.service
     Loaded: loaded (/etc/systemd/system/inventree.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-12-30 07:52:16 EST; 2h 1min ago
   Main PID: 348 (sleep)
      Tasks: 1 (limit: 4676)
     Memory: 192.0K
        CPU: 1ms
     CGroup: /system.slice/inventree.service
             └─348 /bin/sleep infinity

Dec 30 07:52:16 Inventree systemd[1]: Started inventree.service.

@finos2 what version exactly were you upgrading from and on which exact os (kernel version and architecture) are you on?

@finos2 can please also confirm that the backup for is set in the package config, not in the config file. You can do this by running 'inventree config' and checking that backup dir is not null.

@matmair

what version exactly were you upgrading from and on which exact os (kernel version and architecture) are you on?

I Am runing it on a VM on proxmox , x86 ,  OS:  Debian 5.10.158-2 (2022-12-13) x86_64
im not sure about the version , it was deployed around mid november , id guess 0.8.4

can you please also confirm that the backup dir is set in the package config, not in the config file. You can do this by running 'inventree config' and checking that backup dir is not null.

the output of inventree config was
APP_GROUP=inventree
APP_HOME=/opt/inventree
APP_NAME=inventree
APP_RUNNER_CLI=systemctl
APP_RUNNER_TYPE=systemd
APP_SAFE_NAME=inventree
APP_USER=inventree
APP_WIZARDS=
FORWARDED_ALLOW_IPS=*
GUNICORN_CMD_ARGS=--access-logfile -
HOME=/home/inventree
INVENTREE_CONFIG_FILE=/etc/inventree/config.yaml
LANG=en_US.UTF-8
OLDPWD=/opt/inventree
ORIGINAL_PWD=/opt/inventree
PATH=/opt/inventree/.heroku/python/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.:/usr/sbin
PORT=6000
PWD=/opt/inventree
PYTHONHASHSEED=random
PYTHONPATH=/opt/inventree
PYTHONUNBUFFERED=true
ROOT_PATH=/
SHLVL=0

I dont realy see a mention about backup...

@finos2 that looks all nominal. You checked for the process status - can you please do the same for inventree-web and inventree-worker?
Also please check if there are any ports exposed on your server with sudo lsof -i -P -n | grep LISTEN.
I am suspecting some misconfiguration is killing the gunicorn server on startup.
Just to cover our bases: Did you change the port inventree is served internally or do you have anything running on port 5000/6000?

sudo systemctl status inventree-web

● inventree-web.service
     Loaded: loaded (/etc/systemd/system/inventree-web.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-12-30 09:55:36 EST; 3 days ago
   Main PID: 1718 (sleep)
      Tasks: 1 (limit: 4676)
     Memory: 144.0K
        CPU: 1ms
     CGroup: /system.slice/inventree-web.service
             └─1718 /bin/sleep infinity

Dec 30 09:55:36 Inventree systemd[1]: Started inventree-web.service.

&
● inventree-worker.service
     Loaded: loaded (/etc/systemd/system/inventree-worker.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-12-30 09:55:36 EST; 3 days ago
   Main PID: 1720 (sleep)
      Tasks: 1 (limit: 4676)
     Memory: 144.0K
        CPU: 1ms
     CGroup: /system.slice/inventree-worker.service
             └─1720 /bin/sleep infinity

Dec 30 09:55:36 Inventree systemd[1]: Started inventree-worker.service.

both runing
Now , about the ports , it was runing , or for being precice,  i was accresing it,  on port 80 .
sudo lsof -i -P -n | grep LISTEN
sshd      419      root    3u  IPv4  11688      0t0  TCP *:22 (LISTEN)
sshd      419      root    4u  IPv6  11699      0t0  TCP *:22 (LISTEN)
nginx    6204      root    6u  IPv4  37863      0t0  TCP *:80 (LISTEN)
nginx    6205  www-data    6u  IPv4  37863      0t0  TCP *:80 (LISTEN)

@finos2 can you try to run sudo service inventree restart and then sudo service inventree-web-1 status? The inventree-web service is just an empty parent process for the web processes that are spawned so there might be more logs there.

The output of sudo service inventree-web-1 status
     Loaded: loaded (/etc/systemd/system/inventree-web-1.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Wed 2023-01-18 06:25:02 EST; 5s ago
    Process: 1008 ExecStart=/usr/bin/inventree run web (code=exited, status=3)
   Main PID: 1008 (code=exited, status=3)
        CPU: 1.153s

Jan 18 06:25:01 Inventree systemd[1]: inventree-web-1.service: Main process exited, code=exited, status=3/NOTIMPLEMENTED
Jan 18 06:25:01 Inventree systemd[1]: inventree-web-1.service: Failed with result 'exit-code'.
Jan 18 06:25:01 Inventree systemd[1]: inventree-web-1.service: Consumed 1.153s CPU time.
Jan 18 06:25:02 Inventree systemd[1]: inventree-web-1.service: Scheduled restart job, restart counter is at 5.
Jan 18 06:25:02 Inventree systemd[1]: Stopped inventree-web-1.service.
Jan 18 06:25:02 Inventree systemd[1]: inventree-web-1.service: Consumed 1.153s CPU time.
Jan 18 06:25:02 Inventree systemd[1]: inventree-web-1.service: Start request repeated too quickly.
Jan 18 06:25:02 Inventree systemd[1]: inventree-web-1.service: Failed with result 'exit-code'.
Jan 18 06:25:02 Inventree systemd[1]: Failed to start inventree-web-1.service.```

i tryed doing systemctl restart  , but the issue wasnt fixed

Ok, so we found the problematic component.
@finos2 could you look into the journal to see what the process logs out error-wise?

there was nothing on the journal .
but i did some testing myself . and i found out that somehow , at the webserver's configuration there was enabled IPv6.
I do not use ipv6 on my network .  once i disabled that inventree was back .

@matmair its been a week .
i worked with it , seems to be stable for now .
Out of curiosity and for sake of completenes of the issue , you mentioned smt about a "problematic component"
What was it , could you please explain it with a few words then close the issue ?

@finos2 ok that is good.
The problematic component was `inventree-web-1´ as it was exiting while starting up - you can see that in the logs. I think the problem was that the server could not bind to the local port (maybe something else was running on there / IP v6 was not enabled/available on your host somehow)?

@finos2 thanks for the pointers. It is always DNS. In my experience localhost tends to be more reliable but you really can not make a setup that fits all.

I think this is specific to the users setup. Windows and most distros resolve localhost to the internal bind addresses by default, I would keep it bound to that.

Im comming back to this issue with the same problem .
502 after update to the latest relese using apt install --only-upgrade inventree
All inventree services runing normaly and even after my tweek on the nginx file (mention above) i still cannot open inventree...
this time tho i noticed this on nginx logs
2023/12/29 16:02:40 [error] 7523#7523: *4 connect() failed (111: Connection refused) while connecting to upstream, client: <IP_ADDRESS>, server: , request: "GET /favicon.ico HTTP/1.1", upstream: "http://<IP_ADDRESS>:6000/favicon.ico", host: "<IP_ADDRESS>", referrer: "http://<IP_ADDRESS>/"

and when perfoming a curl <IP_ADDRESS>:6000  i get connection refused .. This time there is something wrong with inventree server

@eimparas Same situation here after the upgrade; tried the nginx tweak, and verified that IPv6 was still disabled in /etc/sysctl.conf.

funny thing for me is that systemctl | grep "inventree" returns that all services are running :
  session-43.scope                                                                            loaded active running   Session 43 of user inventree
  inventree-web-1.service                                                                     loaded active running   inventree-web-1.service
  inventree-web.service                                                                       loaded active running   inventree-web.service
  inventree-worker-1.service                                                                  loaded active running   inventree-worker-1.service
  inventree-worker.service                                                                    loaded active running   inventree-worker.service
  inventree.service                                                                           loaded active running   inventree.servic

But   sudo service inventree-web-1 status returns :
● inventree-web-1.service
     Loaded: loaded (/etc/systemd/system/inventree-web-1.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2024-01-03 03:24:12 EST; 4s ago
   Main PID: 2628301 (gunicorn)
      Tasks: 1 (limit: 2323)
     Memory: 90.1M
        CPU: 2.188s
     CGroup: /system.slice/inventree-web-1.service
             └─2628301 /opt/inventree/env/bin/python3 env/bin/gunicorn --chdir /opt/inventree/InvenTree -c InvenTree/gunicorn.conf.py InvenTree.wsgi -b <IP_ADDRESS>:6000

Jan 03 03:24:17 Inventree inventree-web-1.service[2628301]:     with maintenance_mode_on():
Jan 03 03:24:17 Inventree inventree-web-1.service[2628301]:   File "/opt/inventree/env/lib/python3.9/site-packages/maintenance_mode/core.py", line 76, in __enter__
Jan 03 03:24:17 Inventree inventree-web-1.service[2628301]:     self.old_value = get_maintenance_mode()
Jan 03 03:24:17 Inventree inventree-web-1.service[2628301]:   File "/opt/inventree/env/lib/python3.9/site-packages/maintenance_mode/core.py", line 42, in get_mainten>Jan 03 03:24:17 Inventree inventree-web-1.service[2628301]:     return backend.get_value()
Jan 03 03:24:17 Inventree inventree-web-1.service[2628301]:   File "/opt/inventree/env/lib/python3.9/site-packages/maintenance_mode/backends.py", line 66, in get_val>Jan 03 03:24:17 Inventree inventree-web-1.service[2628301]:     return self.from_str_to_bool_value(statefile.read())
Jan 03 03:24:17 Inventree inventree-web-1.service[2628301]:   File "/opt/inventree/env/lib/python3.9/site-packages/maintenance_mode/backends.py", line 21, in from_st>Jan 03 03:24:17 Inventree inventree-web-1.service[2628301]:     raise ValueError("state value is not 0|1")
Jan 03 03:24:17 Inventree inventree-web-1.service[2628301]: ValueError: state value is not 0|1
Jan 03 03:24:17 Inventree systemd[1]: inventree-web-1.service: Main process exited, code=exited, status=1/FAILURE
Jan 03 03:24:17 Inventree systemd[1]: inventree-web-1.service: Failed with result 'exit-code'.
Jan 03 03:24:17 Inventree systemd[1]: inventree-web-1.service: Consumed 2.536s CPU time.

maybe that @matmair who responed last time on the issue has a idea what went wrong

As a sanity check I reverted my InvenTree VM, and tried the upgrade again (after manually stopping all inventree services). Same result. Also checked if the nginx conf was changed, but other than some comments it was identical to the pre-upgrade version.
sudo apt install --only-upgrade inventree returns:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be upgraded:
  inventree
1 upgraded, 0 newly installed, 0 to remove and 8 not upgraded.
Need to get 0 B/117 MB of archives.
After this operation, 32.5 MB of additional disk space will be used.
Reading changelogs... Done
(Reading database ... 73097 files and directories currently installed.)
Preparing to unpack .../inventree_0.13.0-1702638825.301afaa9.focal_amd64.deb ...
Unpacking inventree (0.13.0-1702638825.301afaa9.focal) over (0.12.8-1698964278.a7487ff8.focal) ...
Setting up inventree (0.13.0-1702638825.301afaa9.focal) ...
# Setting base environment variables
# Using existing config file: /etc/inventree/config.yaml

[notice] A new release of pip is available: 23.3.1 -> 23.3.2
[notice] To update, run: pip install --upgrade pip
# Collected environment variables:
#    INVENTREE_MEDIA_ROOT=/opt/inventree/data/media
#    INVENTREE_STATIC_ROOT=/opt/inventree/data/static
#    INVENTREE_BACKUP_DIR=/opt/inventree/data/backup
#    INVENTREE_PLUGINS_ENABLED=true
#    INVENTREE_PLUGIN_FILE=/etc/inventree/plugins.txt
#    INVENTREE_SECRET_KEY_FILE=/etc/inventree/secret_key.txt
#    INVENTREE_DB_ENGINE=postgresql
#    INVENTREE_DB_NAME=inventree
#    INVENTREE_DB_USER=inventree
#    INVENTREE_DB_HOST=localhost
#    INVENTREE_DB_PORT=5432
# Getting the IP address of the server via web service
IP address is <IP_ADDRESS>
# Setting up python environment
Requirement already satisfied: invoke in ./env/lib/python3.9/site-packages (2.1.3)
Requirement already satisfied: wheel in ./env/lib/python3.9/site-packages (0.40.0)

[notice] A new release of pip is available: 23.3.1 -> 23.3.2
[notice] To update, run: pip install --upgrade pip
# Stopping nginx
# Setting up nginx to /etc/nginx/sites-enabled/inventree.conf
# Starting nginx
# (Re)creating init scripts
Nothing to do.
Nothing to do.
# Enabling InvenTree on boot
# Admin data already exists - skipping
# Stopping InvenTree
# Updating InvenTree
Requirement already satisfied: wheel in ./env/lib/python3.9/site-packages (0.40.0)

[notice] A new release of pip is available: 23.3.1 -> 23.3.2
[notice] To update, run: pip install --upgrade pip
No idea what '--no-frontend' is!
# Set permissions for data dir and media: /opt/inventree/data
# Starting InvenTree
####################################################################################
This InvenTree install uses nginx, the settings for the webserver can be found in
/etc/nginx/sites-enabled/inventree.conf
Try opening InvenTree with either
http://localhost/ or http://<IP_ADDRESS>/

I recall previous upgrades showed misc. database migration stuff, that seems to be not the case during this upgrade (from 0.12 -> 0.13). Running on Debian 11.

@eimparas Running inv update manually & rebooting did the trick!
@SchrodingersGat @matmair maybe something is wrong with the upgrade script (seems to skip running inv update)?

@JustusRijke
inv: command not found` did you mean inventree update?

I tryed it with the venv in the install dir and i got
 inv update
Traceback (most recent call last):
  File "/opt/inventree/env/bin/inv", line 8, in <module>
    sys.exit(program.run())
  File "/opt/inventree/env/lib/python3.9/site-packages/invoke/program.py", line 373, in run
    self.parse_collection()
  File "/opt/inventree/env/lib/python3.9/site-packages/invoke/program.py", line 465, in parse_collection
    self.load_collection()
  File "/opt/inventree/env/lib/python3.9/site-packages/invoke/program.py", line 699, in load_collection
    module, parent = loader.load(coll_name)
  File "/opt/inventree/env/lib/python3.9/site-packages/invoke/loader.py", line 76, in load
    module = imp.load_module(name, fd, path, desc)
  File "/usr/lib/python3.9/imp.py", line 234, in load_module
    return load_source(name, filename, file)
  File "/usr/lib/python3.9/imp.py", line 171, in load_source
    module = _load(spec)
  File "<frozen importlib._bootstrap>", line 711, in _load
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 790, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/opt/inventree/tasks.py", line 352, in <module>
    def update(c, skip_backup=False, frontend: bool = False):
  File "/opt/inventree/env/lib/python3.9/site-packages/invoke/tasks.py", line 357, in inner
    obj = klass(
  File "/opt/inventree/env/lib/python3.9/site-packages/invoke/tasks.py", line 76, in __init__
    self.positional = self.fill_implicit_positionals(positional)
  File "/opt/inventree/env/lib/python3.9/site-packages/invoke/tasks.py", line 167, in fill_implicit_positionals
    args, spec_dict = self.argspec(self.body)
  File "/opt/inventree/env/lib/python3.9/site-packages/invoke/tasks.py", line 153, in argspec
    spec = inspect.getargspec(func)
  File "/usr/lib/python3.9/inspect.py", line 1122, in getargspec
    raise ValueError("Function has keyword-only parameters or annotations"
ValueError: Function has keyword-only parameters or annotations, use inspect.signature() API which can support them

@eimparas I have a bare metal setup, with InvenTree installed using the installer. First, I stopped all inventree services (using systemctl stop), then ran the following commands:
ls /opt/inventree
source ./env/bin/activate
inv update
reboot now

@JustusRijke
just run your commands .
 sudo systemctl stop inventree-web
inventree@Inventree:~$ sudo systemctl stop inventree-web-1
inventree@Inventree:~$ sudo systemctl stop inventree-worker
inventree@Inventree:~$ sudo systemctl stop inventree-worker-1

inventree@Inventree:~$ systemctl | grep "inventree"
  session-49.scope                                                                            loaded active running   Session 49 of user inventree

inventree@Inventree:~$ ls /opt/inventree/
backportrc.json  commit.json      data              docker-compose.yml  env        log                Procfile         requirements-dev.in   runtime.txt  tasks.py
backup           contrib          database.sqlite3  docker.dev.env      images     null               README.md        requirements-dev.txt  SECURITY.md  vendor
branches.json    CONTRIBUTING.md  deploy            Dockerfile          InvenTree  package.json       readthedocs.yml  requirements.in       setup.cfg    VERSION
ci               crowdin.yml      docker            docs                LICENSE    package-lock.json  RELEASE.md       requirements.txt      src          yarn.lock
inventree@Inventree:~$ cd /opt/inventree/
inventree@Inventree:/opt/inventree$ ls
backportrc.json  commit.json      data              docker-compose.yml  env        log                Procfile         requirements-dev.in   runtime.txt  tasks.py
backup           contrib          database.sqlite3  docker.dev.env      images     null               README.md        requirements-dev.txt  SECURITY.md  vendor
branches.json    CONTRIBUTING.md  deploy            Dockerfile          InvenTree  package.json       readthedocs.yml  requirements.in       setup.cfg    VERSION
ci               crowdin.yml      docker            docs                LICENSE    package-lock.json  RELEASE.md       requirements.txt      src          yarn.lock

inventree@Inventree:/opt/inventree$ source ./env/bin/activate
(env) inventree@Inventree:/opt/inventree$ inv update

Traceback (most recent call last):
  File "/opt/inventree/env/bin/inv", line 8, in <module>
    sys.exit(program.run())
  File "/opt/inventree/env/lib/python3.9/site-packages/invoke/program.py", line 373, in run
    self.parse_collection()
  File "/opt/inventree/env/lib/python3.9/site-packages/invoke/program.py", line 465, in parse_collection
    self.load_collection()
  File "/opt/inventree/env/lib/python3.9/site-packages/invoke/program.py", line 699, in load_collection
    module, parent = loader.load(coll_name)
  File "/opt/inventree/env/lib/python3.9/site-packages/invoke/loader.py", line 76, in load
    module = imp.load_module(name, fd, path, desc)
  File "/usr/lib/python3.9/imp.py", line 234, in load_module
    return load_source(name, filename, file)
  File "/usr/lib/python3.9/imp.py", line 171, in load_source
    module = _load(spec)
  File "<frozen importlib._bootstrap>", line 711, in _load
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 790, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/opt/inventree/tasks.py", line 352, in <module>
    def update(c, skip_backup=False, frontend: bool = False):
  File "/opt/inventree/env/lib/python3.9/site-packages/invoke/tasks.py", line 357, in inner
    obj = klass(
  File "/opt/inventree/env/lib/python3.9/site-packages/invoke/tasks.py", line 76, in __init__
    self.positional = self.fill_implicit_positionals(positional)
  File "/opt/inventree/env/lib/python3.9/site-packages/invoke/tasks.py", line 167, in fill_implicit_positionals
    args, spec_dict = self.argspec(self.body)
  File "/opt/inventree/env/lib/python3.9/site-packages/invoke/tasks.py", line 153, in argspec
    spec = inspect.getargspec(func)
  File "/usr/lib/python3.9/inspect.py", line 1122, in getargspec
    raise ValueError("Function has keyword-only parameters or annotations"
ValueError: Function has keyword-only parameters or annotations, use inspect.signature() API which can support them

curl <IP_ADDRESS> For me to returns :
<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.18.0</center>
</body>
</html>

Hm, seems to be a different problem. Also noticed that at my system, inventree.service was running.
I've created a new issue #6156 for the installer issue.
Are you able to revert back to your previous installation (VM snapshot), and post the log output of apt install --only-upgrade inventree?

I am not sure if this is being reviewed still or not.  I tried to do an update on December 28 and I have not been able to get it running since.  just the 502 error.  I was also updating python to 3.10 and thought that was the cause.  After fighting with it and even trying to build a new system, I decided to come look here and saw that the new report was closed -  issue https://github.com/inventree/InvenTree/issues/6156  and pointed back here.  I have also seen where there are new reedit threads started since the first of the week saying the same thing is happening to them.
Is there anything that I can do to help get the installer and inventree back up and running?

Which of the possible fixes described in this issue have you tried already?

I have tried a new install and I keep getting 'tee: /etc/apt/trusted.gpg.d/pkgr-inventree.gpg: Permission denied'
When i tried systemctl | grep "inventree"
Only  inventree-worker-1.service  was not running
I tried your suggestion from above:
ls /opt/inventree
source ./env/bin/activate
inv update
reboot now
I had the same issue and return  that @eimparas posted.  But if changed it to:
cd /opt/inventree
source ./env/bin/activate
inv update
reboot now
inv update ran as expected but ended with 'tee: /etc/apt/trusted.gpg.d/pkgr-inventree.gpg: Permission denied'
and the reboot now dosen't work
Trying sudo apt install --only-upgrade inventree
sudo apt reinstall --only-upgrade inventree
and the one line installer
all ended with 'tee: /etc/apt/trusted.gpg.d/pkgr-inventree.gpg: Permission denied'

BTW  here is the reddit that I found
https://www.reddit.com/r/InvenTree/comments/18pdia4/502_bad_gateway_new_install_cannot_use_the_single/

Hm I think this is yet another variant of the 502 problem. Possibly related to the others but to keep things clear my suggestion is to create a new issue, and go from there.

Hm, seems to be a different problem. Also noticed that at my system, inventree.service was running but not on your system. Are you able to revert back to your previous installation (VM snapshot), and post the log output of apt install --only-upgrade inventree?

Im unable to revert back ... i was "smart" enough to get a snapshot before this upgrade ... what could go wrong  :-/

please don't reuse closed issues, I have no idea how the missbehaving setups look like and what versions we are talking about from this conversation

@eimparas your original issue seems that there is an empty maintenance_mode_state.txt in your static directory (see error message ValueError: state value is not 0|1). That could happen if there was still a worker/server process running when the update started.
Not sure if you env is still intact after the other commands but that would be a point to start off at (in a new issue)


Keep a record of generated datasets with metadata

As discussed in our previous comp-chem meetings, this will be important especially if we are ever automatically uploading to a database. We will want to keep track of some metadata so we can see which "experiment" various sets of docking results come from.
My proposal is to keep a csv somewhere, perhaps in the recently created data/ directory, that has these columns:
Columns

ID: probably just a number?
Path_Data: lilac relative path to dataset
Path_CSV: lilac relative path to csv results file
Type: (see type options below)
Status: (see status options below)
Notes: this is actually maybe the most important column, detailing what was done to produce this dataset and why it is different than the others
Source: not sure how to standardize this but it would be good to have a version controlled link to the source files used to generate this dataset. Could be as simple as writing out the datetime the dataset was generated and the input files used (i.e. what arguments were passed to hallucinate_fragalysis.py)

Type Options:

Docking: just the raw docking result, unfiltered
Fauxalysis: the 'hallucinated' fragalysis dataset that has been curated

Status Options:

Planned
Running
Finished
Packaged (turned into a zip file ready to be handed off)
Delivered (given to someone)
Blocked - {reason}

great! Another status option could be blocked with a reason, e.g. a dependency. We could also consider .yaml instead of .csv, it seems to me most of this type of recording has been done this way in other repos in the lab?

added! yaml could be good to, I was just thinking CSV might be nice for people further down in the pipeline so that they can look at it will excel or google sheets or something! Either way

Yes, both options are good and we do need to think of who's going to be the potential user of this metadata and how would they access it. YAML is more human readable and doesn't require specific software to parse it, but is this what we expect from the users of this metadata? I don't know.

started a version here: https://github.com/choderalab/covid-moonshot-ml/blob/hallucinate-fragalysis/data/datasets.yaml

Stale


Add user support

We should add user accounts to this

They now technically are implemented in userspace. Still need to implement this in kernelspace.

Actually, I could keep it in userspace, by architecting VirtualKernels in a certain way.


Create a tutorial for non JS/TS dev to create a Data Visualization web component

The goal is to create a accurate enough tutorial to allow people that only have notions of javascript/typescript to develop data visualization web component, so that there is very little help required from someone else.

Review ok

Hi @gaetanmuck and @perrauda, I love the tutorial you wrote!
The issue can only be set to validation done, if it is also deployed on production.
Is it correct, that the tutorial is not yet on production?
If so, can you @gaetanmuck please update the status and assignee of the issue and organize the next steps to finish the issue (i.e. to deploy it on prod.)?


Context Menu Bellow

Context menu has a typo: "Insert menu bellow". Bellow has an extra "L".

Thx, fixed in 3.3.5


HOTT-2087: Surface hjid for all geographical areas

Jira link
https://transformuk.atlassian.net/browse/HOTT-2087
What?
I have added/removed/altered:

[x] Adds globally-excluded geographical area factory trait
[x] Enable no exclusions in cached_geographical_area_service
[x] Pass exclude_none filter to service
[x] Adds hjid to geo area serializer
[x] Adds missing spec for serializer
[x] Adds exclude_none behaviour checks

Why?
I am doing this because:
We need this to automate the pipeline for providing XLSX files for HMRC (amongst other people).

When the file includes a membership in the UK CDS file we need to be able to look up the description by the hjid.
When the file includes memberships for excluded geographical areas we still want to show these in the file

This is being consumed https://github.com/trade-tariff/download-CDS-files/pull/2


The Modbus Slave ID of the inverter. Defaults to 1   .. In case of 1 Master and 1 Slave, what to do?

Hi, I have a MAster 12KW Deye 3phase inverter and 1 Slave 12KW 3 phase inverter setup
What do I need to put?
The Modbus Slave ID of the inverter. Defaults to 1   in the MASTER
The Modbus Slave ID of the inverter, to 2 in the SLAVE (?)
or??
Thanks

I did put Modbus Slave id to 1 (default) for the master, and 2 for the Slave (as is also in Deye setting).... but the Slave home assistant entities are all created but are all UNKNOWN status

How did you configure two inverters in one HACS?
Can you show your config files?


manpage output doesn't show default values, env vars used

Can you please elaborate on this so it's more clear? What do you mean by env vars used?

I mean if you supply the "env:" parameter to an argument.


[DOCU 3362/3349] homepage refresh

Description
What did you change and why?
Related Jira ticket
WIP. Copy needed
Testing instructions
Netlify link:
Checklist

[x] Review label added
[x] PR pointed to correct branch (main for immediate publishing, or a release branch: e.g. release/gateway-3.2, release/deck-1.17)

I think the icons need to be smaller + having more whitespace around them. They're not really designed to be that big in relation to the other elements. How about something like this:

Agree with the icons being too large, but I also think there is something off about the highlighting would it make sense for the highlighting to reach all the way to the edges of the container?

Can these align some how?

@Guaris I'll align the items to the left.
The highlighting is the same one we have in prod right now, the cards have padding so links/buttons stretch to the container's width minus the padding.

@acgoldsmith the icon's color in konnect is gray, and the sidebar is blue, like this

we can make the icons have the same gray color or a similar blue to the one the banner has (it's a gradient so it technically isn't just one color).
Another option would be to add a blue banner to the cards and make the icons gray, something like this

Gray icon example

@fabianrbz, thanks for suggestion, I'd meant the docs nav:

The styling there is what I'm hoping we can recreate on the homepage

I've updated the icons

I'm not sure where it's located in the homepage file, but the gorilla graphic below the Plugin Hub tile looks a bit odd since it's not centered. I'd probably be in favor of just removing it?

I'm not sure where it's located in the homepage file, but the gorilla graphic below the Plugin Hub tile looks a bit odd since it's not centered. I'd probably be in favor of just removing it?

+1 on this.

I think this one is my fault. The header text for the Kong Gateway and Kong Mesh tiles isn't styled the same way as the header text for Kong Konnect (different colour, grey vs dark blue). We should make them all dark blue.
One more thing: it feels like the swirly headers for Konnect, Gateway, and Mesh don't really go with anything anymore. Anyone have alternative ideas? I realize that just removing them will make the cards probably look really empty.

Yeah, here's what it looks like without them

And different background colors from the design system:

Unfortunately, the card compontent is still being developed 🚧 and it's currently empty :/


Allow use of the table name as a column name in FTS tables

Currently, it's not possible to use the table name of an FTS table as a column name in SQLDelight (https://github.com/square/sqldelight/issues/1340), so a statement like the following would be considered invalid, though it shouldn't be.
SELECT * FROM docs WHERE docs MATCH ? ORDER BY rank(matchinfo(docs));
This change fixes that and adds tests to verify that the cases described in the SQLite FTS docs work as expected.
-- Example schema
CREATE VIRTUAL TABLE docs USING fts4(content);

-- Example queries
SELECT * FROM docs WHERE docs MATCH 'sqlite';              -- OK.
SELECT * FROM docs WHERE docs.docs MATCH 'sqlite';         -- OK.
SELECT * FROM docs WHERE main.docs.docs MATCH 'sqlite';    -- OK.
SELECT * FROM docs WHERE main.docs MATCH 'sqlite';         -- Error.

Source: https://www.sqlite.org/fts3.html

looks like only the test part got committed?

Oops.

real nice, thanks


FIX: Revision of previous PR #337 / MELODIC did not converge

This PR tries to resolve a bug introduced in #337. When MELODIC did not
converge, self._out_report was rewritten from the input although it
had been manipulated before.
For reliability, the MELODICRPT interface is not a mixin anymore.

Tested on a separate dataset I knew was failing. This fix is fully operational.


Feature Request: GUI for odrivetool

Consider adding a user friendly GUI to replace/supplement the command-line-only odrivetool features.

@lsiempel, there is a thread about UI on ODrive forum. If you haven't looked at it please check out the following link:
https://discourse.odriverobotics.com/t/ui-for-odrivetool/1944/39

Thanks for getting back to me - but the url is dead?
On Wed, 1 May 2019 at 20:00, naktamello<EMAIL_ADDRESS>wrote:

@lsiempel https://github.com/lsiempel, there is a thread about UI on
ODrive forum. If you haven't looked at it please check out the following
link:
https://discourse.odriverobotics.com/t/ui-for-odrivetool/1944/39
http://url
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/madcowswe/ODrive/issues/333#issuecomment-488539441,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABWGTSVXZQVAQCT5AF4LBTTPTJKOPANCNFSM4HJIQFOQ
.

Nvm - url is live - hyperlink dead.
On Wed, 1 May 2019 at 20:12, Lewis Siempelkamp<EMAIL_ADDRESS>wrote:

Thanks for getting back to me - but the url is dead?
On Wed, 1 May 2019 at 20:00, naktamello<EMAIL_ADDRESS>wrote:

@lsiempel https://github.com/lsiempel, there is a thread about UI on
ODrive forum. If you haven't looked at it please check out the following
link:
https://discourse.odriverobotics.com/t/ui-for-odrivetool/1944/39
http://url
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/madcowswe/ODrive/issues/333#issuecomment-488539441,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABWGTSVXZQVAQCT5AF4LBTTPTJKOPANCNFSM4HJIQFOQ
.

Fantastic - will try to get this up and running!
Thanks for the heads up!
-Lewis
On Wed, 1 May 2019 at 20:12, Lewis Siempelkamp<EMAIL_ADDRESS>wrote:

Nvm - url is live - hyperlink dead.
On Wed, 1 May 2019 at 20:12, Lewis Siempelkamp <
<EMAIL_ADDRESS>wrote:

Thanks for getting back to me - but the url is dead?
On Wed, 1 May 2019 at 20:00, naktamello<EMAIL_ADDRESS>wrote:

@lsiempel https://github.com/lsiempel, there is a thread about UI on
ODrive forum. If you haven't looked at it please check out the following
link:
https://discourse.odriverobotics.com/t/ui-for-odrivetool/1944/39
http://url
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/madcowswe/ODrive/issues/333#issuecomment-488539441,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABWGTSVXZQVAQCT5AF4LBTTPTJKOPANCNFSM4HJIQFOQ
.


Should we be allowing to rebindAll to pick up inherited properties?

I have been exploring how d3-dispatch v1.0.0 works with d3fc-rebind and would like to be able to rebind the 'on' property in a component.
Since rebindAll uses Object.keys, which does not include properties in the prototype chain, and myDispatchInstance.on is an inherited property it looks like I can not rebind the on without having to do some workaround in the consuming code.
Do we think we should be allowing to rebind and rebindAll to pick up inherited properties?

I am not sure this is the best example, but here is a gist showing this issue:
https://gist.github.com/matthewdunsdon/1379c0c32ea0e1123ec69b41a174b0cc

I agree, this is unexpected behaviour. Within d3fc we don't use prototype inheritance, however rebind should work regardless of the internal implementation of a component.
Do you fancy creating a PR?

Good spot. I'm not sure there's a good technique to allow this though. I
think we'll end up dragging in methods from higher up the prototype chain.
Can anyone propose an algorithm?
Two alternatives jump to mind -
The transforms are pluggable so just supply a custom one which rebinds
direct prototype methods.
Just use include("on") in this case (or the shorthand alias).
What do you think?
On Thu, 21 Jul 2016 at 22:01, Colin Eberhardt<EMAIL_ADDRESS>wrote:

I agree, this is unexpected behaviour. Within d3fc we don't use prototype
inheritance, however rebind should work regardless of the internal
implementation of a component.
Do you fancy creating a PR?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/d3fc/d3fc-rebind/issues/12#issuecomment-234382842,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAadMYXkA6gE16QRFKz7qkPt7_LYAY6zks5qX94rgaJpZM4JSABx
.

:bulb: One idea I had was that we allow items on the prototype chain to be included by default.  With this is place, we could either:

Add a exclude prototype chain properties transform — fc.excludeAllInherited()
Add specific transforms for include to only use own properties — fc.includeOwn(...names)
Update existing include transform (so that only allows own properties) and add specific transforms to use prototype chain — fc.includeInherited(...names)

I may need to think about this more.
:thought_balloon: I am not sure how we would want exclude to play in the second or third case.

Sorry, I'd missed exactly what was causing the issue so my previous suggestions are invalid.
Thinking it through, I have a few requirements for a solution -

As already noted, rebind('x') should work for any property named x no matter where it is located.
I would like to avoid complicating rebindAll for users following the standard non-prototype pattern as I think this will be the most common use case. I.e. don't make them explicitly exclude prototypical properties (e.g. rebindAll(includeOwn/excludeInherited())).
I don't want to lose the ability to specify bespoke transforms e.g. rebindAll(x => x.toLowerCase()).

Whilst I think any of @matthewdunsdon's suggestions would fix this issue, I think they'd all fall foul of 1. As a slight twist I'd propose pulling the include/exclude inherited functionality up to the top-level -

Add new method rebindDeep which has similar functionality to rebindAll but additionally includes properties from the prototype chain.
Modify rebind to skip the iteration (i.e. delegation to rebindAll) and directly create the rebound methods (src/createReboundMethod.js is already a standalone, probably left over from a refactor).

Any comments?

Actually thinking about #13, maybe we should just convert the whole thing to a component e.g. -
rebind().keys(['foo', 'bar']).prefix('x').inherited(true)(target, source)
```

And add a shorthand -

```js
rebind('foo', 'bar')(target, source)

And after some more thinking, I'm not sure how my suggestion would handle the equivalent of includeMap.

For now I've implemented the fix to rebind (b5c7013) which fixes the reported issue (rebinding on from d3.dispatch). I'm not going to implement rebindDeep or similar as I don't want to bloat the API with another method if there isn't an actual issue to be solved.


Resolve uninitialized constant ActiveModel::Serializers::Xml

This fixes a NameError that prevents related from being loaded.

@colstrom  If you fix the conflict I will merge this pull request ASAP.


generate:doctrine:crud creates php views?

Hi,
I'm using SensioGeneratorBundle to create my CRUD's. In first instance I run this command:
php app/console generate:doctrine:crud --entity=ProjectNameBundle:Entity --format=annotation --with-write --route-prefix=test --no-interaction
It's working fine. But I need to create my views using php... normally this command creates my views using twig. Is it possible to create views in php? How can i do this?
Thanks in advance.

You should seriously take another look at Twig.  It is more secure and powerful than using php views, and it is compiled down to php for performance.


Do not require the mithril client to create the DB directory

Why
When mithril-client CLI is instructed to snapshot download it expects to be able to create the db directory inside the --download-dir which points to the parent directory instead of the db directory where the download actually occurs. When the db directory already exists it results in an error.
 Error: Unpack directory '/cardano/db' already exists, please move or delete it.

At first glance this seems simple to resolve, just remove the directory. However, this is opinionated behavior limits the node operators choices and can lead to unnecessary complications, changes to file system layouts, even failures in some designs.
When a node operator:

Provides a dedicated partition for the db directory and the path is a mount point.
Uses:

Docker/Podman and uses a container volume mounted to the db directory
Kubernetes (k8s) and uses a Persistent Volume (PV) mounted to the db directory

For a basic POC of the issue a bare metal reproduction scenario is provided:
Steps to reproduce

Create a partition and format filesystem, etc.
Mount the filesystem on /cardano/db
Run mithril-client --aggregator-endpoint $AGGREGATOR_ENDPOINT snapshot download --genesis-verification-key $GENESIS_VERIFICATION_KEY --download-dir /cardano
Observe error Error: Unpack directory '/cardano/db' already exists, please move or delete it.
Try and remove the directory rmdir /cardano/db
Observe error rmdir: failed to remove '/cardano/db': Device or resource busy

While this is only bare metal, in most of the mentioned cases it is essentially not viable to simply rmdir /path/to/db and let the Mithril client create the directory. While at first glance this may seem simple, just make the mount point the parent directory, this leads to other complications when the db directory or it's parent directory:

Is the root file system
Contains one or more separate mount points
Is a Docker (container) volume
Is a persistent volume (k8s PV)

Workarounds to these issues don't only result in unwanted file system layouts, but can result in requiring additional IO after the download to relocate the data when separate file systems are required, which can also lead to double the required storage being available. Separate than this it can create unwanted dependency relationships which eventually lead to other issues.
I filed this as a feature request, but the opinionated nature of this design choice I feel comes close to what I would define as a bug or flaw in the design due to the unnecessary requirements it may impose on node operators integrating mithril into existing designs which may have been in use for multiple years without changes.
What

Do not require the db directory to be created by the mithril client to download, just for it to be empty.

This could be achieved just by removing the requirement to create the directory when it is empty. Or having the --download-dir target the actual db directory instead of its parent directory, and is required to be empty.

Thanks @TrevorBenson for creating this issue.
In order to avoid breaking changes in the client CLI, we could also support a new option like --allow-empty-download-dir or --skip-create-download-dir that would allow the behavior that you expect?

Thanks @TrevorBenson for creating this issue.
In order to avoid breaking changes in the client CLI, we could also support a new option like --allow-empty-download-dir or --skip-create-download-dir that would allow the behavior that you expect?

Yes, additional parameters would be acceptable to achieve the expected behavior.

Hi @TrevorBenson, thanks for the issue.
After rethinking a bit about this issue as a team, we decided to just accept existing, but empty, db directory (if the directory doesn't exist it will be created, same behavior as before). No extra parameter needed.
This behavior is implemented in #1581 that we can merge as soon as today if it's alright for you.

Hi @TrevorBenson, thanks for the issue.
After rethinking a bit about this issue as a team, we decided to just accept existing, but empty, db directory (if the directory doesn't exist it will be created, same behavior as before). No extra parameter needed.
This behavior is implemented in #1581 that we can merge as soon as today if it's alright for you.

This sounds perfectly acceptable.
Thank you


Support Remaining Ion Types

I discovered today that round-tripping from Ion to partiql_value::Value using partiql_extension_ion and back again converts all symbols to strings.   I know that full support for Ion is incomplete, but I don't see an issue for finishing this, so I am adding one now.
Support for any remaining Ion types must also be included in the partiql_extension_ion so round-tripping described above is not lossy.

Also, to be clear, typed nulls are part of this too.
AFAIK the list for full Ion support is now:

sexp type
symbol type
typed nulls


Have all revocation signatures in a single message to the watchtower

It makes sense as it's how we are using them in the daemon right now, and this way you can't be in a state where part of the revocation signatures were ACKed but not all

What about outsourced WTs that shouldn't be trusted with the Emergency?

Good point...

This was discussed on another medium with Jacob (and others). Outsourced watchtower are out of the scope for v0, but actually separating each transaction sig sharing allows us to more granularly allocate fee-bumping UTXOs: only do once we receive the signature for the UnvaultEmergency and Cancel transactions (wallet implicitly signals us the vault became active).


Infinte slider reset glitch

It seems that having infinite set to true causes a bug to occur in which after reaching the end of the slides it does not smoothly continue over to a clone but rather glitches back to the first element. The cloned elements are visible but it does not flow over to them. My settings are as follows:
const settings = {       dots: true,       infinite: true,       slidesToShow: 3,       slidesToScroll: 1,       autoplay: true,       autoplaySpeed: 2000,       pauseOnHover: true, };

I am not able to reproduce this anymore. Maybe it got fixed around 8feb5cd.
If someone is still able to regenerate it, please feel free to suggest reopening the issue.

Hi, I'm currently still getting this bug


When the node exceeds 1000 +, it takes a long time to remove the node. Can you optimize it? thank you!

Here's an example
https://codepen.io/wlhz/pen/XWaeOry

you can use the queryEachTime: true renderPerNode option see https://github.com/sgratzl/cytoscape.js-layers/blob/bdac7762dfd420b97849b9ccff0346f262a82857/src/elements/common.ts#L2-L21
to force that the list of nodes will be queried each time. This has the side effect that instead of position/add/removal the plugin will listen to render events of cytoscape. Thus only rendering one update instead of rendering each node removal individually.

you can use the queryEachTime: true renderPerNode option see
https://github.com/sgratzl/cytoscape.js-layers/blob/bdac7762dfd420b97849b9ccff0346f262a82857/src/elements/common.ts#L2-L21
to force that the list of nodes will be queried each time. This has the side effect that instead of position/add/removal the plugin will listen to render events of cytoscape. Thus only rendering one update instead of rendering each node removal individually.

That's OK. Thank you very much!


5 More Reasons to Choose Apache Pulsar Over Apache Kafka / Chris Bartholomew @ DataStax Blog at Medium

URL: https://medium.com/building-the-open-data-stack/5-more-reasons-to-choose-apache-pulsar-over-apache-kafka-c09b259e3691
Review (1-2 sentences): Do you like platform comparisons? I've read almost nothing about Apache Pulsar. But after point about tiered storage in Pulsar, when you can move old messages to cheaper storage to store it always, I was inspired.

Published in Digest #8.


TFLite can't quantize op transpose_conv

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 18.04
TensorFlow installed from (source or binary): binary
TensorFlow version (or github SHA if from source): 1.15.2, 2.1.0

Quantization doesn't support op: TRANSPOSE_CONV
import tensorflow as tf
import numpy as np

def gen_calibration_dataset():
    for _ in range(10):
        yield [np.random.rand(1,2,2,2).astype(np.float32)]

def get_keras_model_conv():
    input_0 = tf.keras.layers.Input(shape=[2, 2, 2])
    transpose_conv_1 = tf.keras.layers.Conv2DTranspose(filters=2, kernel_size=[2, 2],
                                                       use_bias=False, padding="same")(input_0)
    model = tf.keras.models.Model(inputs=[input_0], outputs=[transpose_conv_1])
    model.summary()
    return model

def gen_model():
    keras_model = get_keras_model_conv()
    keras_model.save('test_model.h5')
    converter = tf.compat.v1.lite.TFLiteConverter.from_keras_model_file('test_model.h5')
    converter.optimizations = [tf.lite.Optimize.DEFAULT]
    #converter.target_spec.supported_ops = [tf.lite.OpsSet.TFLITE_BUILTINS_ACTIVATIONS_INT16_WEIGHTS_INT8]
    converter.target_spec.supported_ops = [tf.lite.OpsSet.TFLITE_BUILTINS_INT8]
    converter.inference_input_type = tf.int8
    converter.inference_output_type = tf.int8
    converter.representative_dataset = gen_calibration_dataset
    tflite_quant_model = converter.convert()
    open('test.tflite', 'wb').write(tflite_quant_model)

print("TF version: {}".format(tf.__version__))
gen_model()

error mesg:

Traceback (most recent call last):
File "test_RICH.py", line 30, in
gen_model()
File "test_RICH.py", line 26, in gen_model
tflite_quant_model = converter.convert()
File "/envs/tf-nightly/lib/python3.6/site-packages/tensorflow_core/lite/python/lite.py", line 469, in convert
self.experimental_new_quantizer)
File "/envs/tf-nightly/lib/python3.6/site-packages/tensorflow_core/lite/python/lite.py", line 243, in _calibrate_quantize_model
inference_output_type, allow_float, enable_mlir_quantizer)
File "/envs/tf-nightly/lib/python3.6/site-packages/tensorflow_core/lite/python/optimize/calibrator.py", line 81, in calibrate_and_quantize
enable_mlir_quantizer)
File "/envs/tf-nightly/lib/python3.6/site-packages/tensorflow_core/lite/python/optimize/tensorflow_lite_wrap_calibration_wrapper.py", line 115, in QuantizeModel
return _tensorflow_lite_wrap_calibration_wrapper.CalibrationWrapper_QuantizeModel(self, *args)
RuntimeError: Quantization not yet supported for op: TRANSPOSE_CONV

This is working for me in nightly -- please try upgrading to tf-nightly==2.2.0.dev20200212 and running your test again.

This is working for me in nightly -- please try upgrading to tf-nightly==2.2.0.dev20200212 and running your test again.

thanks for have a quick look. yes, works on tf-nightly, issue closed.

When i tried the above code (v1 or v2 lite converter) for a keras model, it adds a quantize layer at beginning and dequantize layer at the end(netron viewer). I even tried to do the same with a saved model version of the same keras model; but results are same. Also tried with nightly versions dev20200212 and dev20200216. Anybody else facing this issue and how can it be resolved?
Here is the code:
converter = tf.lite.TFLiteConverter.from_keras_model(reshape_model)
#converter.experimental_new_converter=True
converter.target_spec.supported_ops = [tf.lite.OpsSet.TFLITE_BUILTINS_INT8]
converter.inference_input_type = tf.uint8
converter.inference_output_type = tf.uint8
converter.optimizations = [tf.lite.Optimize.DEFAULT]
converter.representative_dataset = representative_dataset_gen

tflite_quant_model = converter.convert()
open("/content/quant_model.tflite", "wb").write(tflite_quant_model)

It looks like we need to have a uint8 input and output for converting it for acclerators like coral TPU.
pnet.h5.zip

i have the same error, as "Cannot set tensor: Got value of type UINT8 but expected type FLOAT32 for input 201, name: input_1 ", and the input type still float32 for mobilenetv2
[{'name': 'input_1', 'index': 201, 'shape': array([  1, 128, 128,   3], dtype=int32), 'shape_signature': array([], dtype=int32), 'dtype': <class 'numpy.float32'>, 'quantization': (0.0, 0), 'quantization_parameters': {'scales': array([], dtype=float32), 'zero_points': array([], dtype=int32), 'quantized_dimension': 0}, 'sparsity_parameters': {}}]

@mlinxiang  At which phase of conversion are you getting this error? Are your model inputs still float? If you view your model using a tool like netron, i suppose you will see both input and outputs as float. It may have added a quantize layer at beginning and a dequantize at the end  even though quantization was successful?

just as you say, input output are float32, and follow with *quant is int8 which as expect need to be uint8.  i change input image to float the model run success, and result is right, but this tflite model can't run on my mtk platform which has an apu core which need all uint8 tflite model

@mlinxiang I faced simialar problem with my model.  My input  images were actually normalized between -2.0 to +2.0 range (instead of 0.0 to 255.0)  during training. When i tried to convert it to full integer format with quantization, it resulted in a model (with tf2.0 nightly using v1 converter as shown in the code) similar to yours with quantize and dequantize layers at the ends. Accelerators may not support (i believe) these layers explicitly. I used tf.int8 instead of tf.uint8 during post-training quantization(with representative dataset) according to the aforementioned code. Finally it got rid of these layers and new inputs were of type int8. I successfully converted to coral edge tpu  format and was able to run it without any issues so far. After adding appropriate normalization in code  it seems to give correct results.

when i change code to follow everything is ok
converter = tf.compat.v1.lite.TFLiteConverter.from_keras_model_file(keras_model_h5)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
converter.target_spec.supported_ops = [tf.lite.OpsSet.TFLITE_BUILTINS_INT8]
converter.inference_input_type = tf.uint8
converter.inference_output_type = tf.uint8
converter.representative_dataset = rep_data_gen
tflite_model = converter.convert()
open(tflite_model_path, "wb").write(tflite_model)

But that's the same code @psunn has given in the issue right? Didn'tt you try that in the first place?Still is it running in the device?

his type is as follow
converter.inference_input_type = tf.int8
converter.inference_output_type = tf.int8

Interesting ...my case was just reverse. As per the official documentation it was tf.uint8; but it resulted in extra dequantize and quantize layers in my case and removed them when i changed it to tf.int8i.e there were not explicit quantize or dequantize layers in model when use tf.int8. May be it depends on value ranges of activation's of the original model !!!
By the way is it working as expected ? Does the device run the dequantize layer without error?

compared the quant model and float model on my 3.3k test images, my model acc increase from float:3.1648   to  quant: 5.3375 pixel distance, most result are similar, but some blur or bad quality image result are really bad, float model is more balance.
maybe quant-aware training is a better choice as my previous exps, but keras not support right now

Yes, post-training quantization seems to degrade the output quality, especially in scenarios where high pixel accuracies or precise boundaries are desired. Even int tf 1.x, quantization aware training support only limited convolutional architectures. But on the flip side it gives 40x speed-up, reduced power, memory etc. !!!


Updated documentation in readme.md.

Separated build commands.
Added commands to run dev server.

LGTM, Thanks for your work :rocket:


Extend RSS Feed

Extend the feed to provide more data such as

Tags
Authors
Preview-Image

https://gohugo.io/templates/rss/

In accordance to https://www.rssboard.org/rss-specification I suggest the following tags instead:

a single author (we support a single author at the moment afaik)
a list of category (for each tag)
a enclosure for the preview image (don't know how to calculate the image size for the length attribute in Hugo)

🙇


CloudDB Chat App constantly crashes in iOS

Describe the bug

CloudDB Chat App constantly crashes in iOS.
CloudDBChatApp_FINAL.aia.zip
Affects
iOS

[ ] Designer
[ ] Blocks editor
[ ] Projects Explorer
[x] Companion
[ ] Compiled apps
[ ] Buildserver
[x] Debugging
[ ] Other... (please describe)

Expected behavior

Should not crash.
Steps to reproduce

Try to run AI2 Companion

This is now fixed in iOS companion version 2.64.5 (1).