clairvoyance icon indicating copy to clipboard operation
clairvoyance copied to clipboard

[CD] Make Python and Node versions in a single file

Open Privat33r-dev opened this issue 9 months ago • 0 comments

Currently it's a slight mess:

  • poetry.lock:24: python-versions = ">=3.6"
  • pyproject.toml:40: python = ">=3.8,<4.0"
  • dockerfile:2: FROM python:3.10-alpine as python-base
  • tests.yml: [python-versions = ">=3.6](python-version: '3.10')
  • cd.yml: skipped, so kind of random, I guess (If the .python-version file doesn't exist Python or PyPy version from the PATH will be used.)
  • Pypi returns warning on CI because version is skipped.

That's kind of a big mess and pain to update. I might've even missed some Python versions.

I'd recommend to use Python 3.9 version everywhere except for Docker Containers. The reasoning is provided below:

  • We want to support wider array of devices, hence we need to support older versions.
  • Python versions are backward-compatible, but not forward-compatible, so it makes sense to focus on the oldest version to support.
  • According to Status of Python Versions, 3.8 end of life is in 6 months, so it makes sense to skip it straight to 3.9.
  • Performance of Python depends on the version, so it makes sense to ship container with higher version than used for testing (matrix testing can be applied to avoid deprecation issues)

Node versions are another story (less complicated to our luck), but I skip this discussion for now.

Privat33r-dev avatar Apr 30 '24 10:04 Privat33r-dev