Compatibility Matrix

See the list of Carto-Lab Versions and supported features or package versions.

▼Feature or Package - Carto-Lab Docker Version ▶ 0.13.0 0.19.0 0.24.2 0.28.0 1.0.0
Container OS Debian 11 Debian 12
Conda 23.3.1 24.7.1 24.11.0 25.3.1 25.7.0
Jupyter Lab 3.6.3 4.2.5 4.3.1 4.4.2 4.4.5
Jupyter Server 2.5.0 2.14.2 2.15.0 2.16.0
Python (Server) 3.10.10 3.12.5 3.12.7 3.12.10 3.13.5
Python (worker_env) 3.9.15 3.12.5 3.12.7 3.13.3 3.13.5
notebook 6.5.3 6.5.7
IPython 8.12.0 8.26.0 8.29.0 9.2.0 9.4.0
nodejs / 22.11.0 22.13.0 v24.4.1
Language Server: jupyterlab-lsp / 5.1.0 (x) 5.2.0
Language Server: pyright / 1.1.389 (x) 1.1.400 1.1.403
Jupyter Real Time collaboration (RTC) / 1.16.4 (o) 4.0.2 (x) 4.1.0
jupyterlab_widgets 3.0.7 3.0.13 3.0.13 3.0.15
Jupytext 1.14.5 1.16.4 1.17.1 1.17.2
Jupyterlab-git 0.50.1 0.50.2 0.51.1 0.51.2
Spellchecker 0.7.3 0.8.4
nbextensions 0.7.0
R / 4.2.2 4.4.1
Mapnik 3.1
nbconvert 7.2.10 7.16.4 7.16.6
papermill 2.3.4 2.6.0
geopandas 0.12.2 1.0.1 1.1.1
ipywidgets 8.0.6 8.1.5 8.1.7
matplotlib 3.7.1 3.9.2 3.10.1 3.10.5
shapely 1.7.1 2.0.6 2.1.0 2.1.1
pyproj 3.2.1 3.6.1 3.7.0 3.7.1
pandas 1.5.3 2.2.2 2.2.3 2.3.1
numpy 1.22.4 1.26.4 2.2.5 2.2.6
cartopy 0.20.1 0.23.0 0.24.0 0.25.0
geoviews 1.9.5 1.12.0 1.13.0 1.14.0
Bokeh 2.4.3 3.4.2 3.5.2 3.7.2 3.7.3
Rasterio 1.2.10 1.3.10 1.4.2 1.4.3
GDAL 3.3.3 3.9.2 3.10.0 3.10.3
  • /- Feature not included
  • (x) - Feature test
  • o - Issue or Bug
  • Empty: no change

Note

The :r and :mapnik container tags have slightly different versions due to dependency pinnings. If you want the latest Python packages, as shown in the Matrix above, don't use the :r and :mapnik container tags.

Generated with tests/get_versions.sh .
#!/bin/bash

# Purpose: Get all important versions from the build Carto-Lab Docker Container
# to be listed in the compatibility matrix
# https://cartolab.fdz.ioer.info/matrix/

# Utility function to get Python package version
get_python_version() {
  local env=$1
  local pkg=$2

  # Special handling for jupyter-collaboration
  if [[ "$pkg" == "jupyter-collaboration" ]]; then
    docker compose run jupyterlab /opt/conda/envs/${env}/bin/python -c \
      "from importlib.metadata import version; print(version('${pkg}'))" 2>/dev/null
  else
    docker compose run jupyterlab /opt/conda/envs/${env}/bin/python -c \
      "import ${pkg}; print(${pkg}.__version__)" 2>/dev/null
  fi
}


printf "\nJupyter env package versions: \n\n"
jupyter_packages=(
  "notebook"
  "IPython"
  "jupyterlab_git"
  "jupyterlab_lsp"
  "pyright"
  "jupytext"
  "jupyterlab_widgets"
  "nbconvert"
  "nbclassic"
  "papermill"
  "jupyterlab_spellchecker"
  "jupyter_contrib_nbextensions"
  "jupyter-collaboration"
)

for pkg in "${jupyter_packages[@]}"; do
  version=$(get_python_version jupyter_env $pkg)
  echo "$pkg ${version:-Not Installed}"
done

printf "\nWorker env package versions: \n\n"
worker_packages=(
  "geopandas"
  "ipywidgets"
  "matplotlib"
  "shapely"
  "pyproj"
  "pandas"
  "numpy"
  "cartopy"
  "geoviews"
  "bokeh"
  "rasterio"
)

for pkg in "${worker_packages[@]}"; do
  version=$(get_python_version worker_env $pkg)
  echo "$pkg ${version:-Not Installed}"
done

printf "\nGDAL: \n\n"
docker compose run jupyterlab /bin/bash -c "/opt/conda/envs/worker_env/bin/gdalinfo --version"

printf "\nOS: \n\n"
docker compose run jupyterlab /bin/bash -c "cat /etc/*release"

printf "\njupyterlab Python \n\n"
docker compose run -e JUPYTER_PLATFORM_DIRS=1 jupyterlab \
  /opt/conda/envs/jupyter_env/bin/python -W ignore::DeprecationWarning -c "import jupyterlab; print(jupyterlab.__version__)"

printf "\njupyter_server \n\n"
docker compose run jupyterlab /opt/conda/envs/jupyter_env/bin/python -c "import jupyter_server; print(jupyter_server.__version__)"

printf "\nworker_env Python \n\n"
docker compose run jupyterlab /opt/conda/envs/worker_env/bin/python --version

printf "\njupyter_env Python \n\n"
docker compose run jupyterlab /opt/conda/envs/jupyter_env/bin/python --version

printf "\nMapnik (requires container tag :mapnik) \n\n"
docker compose run jupyterlab /usr/bin/python3 -c "import mapnik;print(mapnik.paths.__all__)"
# echo "\nR Version (requires container tag :r) \n\n"
# docker compose run jupyterlab ls /opt/conda/envs/r_env/bin/

printf "\nConda version: \n\n"
docker compose run jupyterlab conda --version

printf "\nR Version (requires container tag :r) \n\n"
docker compose run jupyterlab conda run -n r_env Rscript -e 'cat(R.version.string, "\n")'

printf "\nnodejs version \n\n"
# docker compose run jupyterlab bash -c "conda init;conda activate jupyter_env; nodejs"
docker compose run jupyterlab /opt/conda/envs/jupyter_env/bin/node --version
1. To extract versions during development, modify your `.env` and add:
COMPOSE_FILE=docker-compose.build.yml
2. Then use bash tests/get_versions.sh. This will output versions from your locally built Docker container. 3. Use an LLM to transpose output into the markdown table

Prompt example

I have a Matrix version table in my doc:

| ▼Feature or Package - Carto-Lab Docker Version ▶ | 0.26.0    | 0.27.1    |             |              |
| ------------------------------------------------ | --------- | --------- | ----------- | ------------ |
| Container OS                                     | Debian 11 |            |             |               |
| Conda                                            | 23.3.1    |            |             |               |
| Jupyter Lab                                      | 3.6.3     |            |             |               |
| Jupyter Server                                   | 2.5.0     |            |             |               |
| Python (Server)                                  | 3.10.10   |            |             |               |
| Python (worker_env)                              | 3.9.15    |            |             |               |
| notebook                                         | 6.5.3     |            |             |               |
| IPython                                          | 8.12.0    |            |             |               |
| nodejs                                           | /         |            |             |               |
| Language Server: jupyterlab-lsp                  | /         |            |             |               |
| Language Server:  pyright                        | /         |            |             |               |
| Jupyter Real Time collaboration (RTC)            | /         |            |             |               |
| jupyterlab_widgets                               | 3.0.7     |            |             |               |
| Jupytext                                         | 1.14.5    |            |             |               |
| Jupyterlab-git                                   |           |            |             |               |
| Spellchecker                                     | 0.7.3     |            |             |               |
| nbextensions                                     | 0.7.0     |            |             |               |
| R                                                | /         |            |             |               |
| Mapnik                                           | 3.1       |            |             |               |
| nbconvert                                        | 7.2.10    |            |             |               |
| papermill                                        | 2.3.4     |            |             |               |
| geopandas                                        | 0.12.2    |            |             |               |
| ipywidgets                                       | 8.0.6     |            |             |               |
| matplotlib                                       | 3.7.1     |            |             |               |
| shapely                                          | 1.7.1     |            |             |               |
| pyproj                                           | 3.2.1     |            |             |               |
| pandas                                           | 1.5.3     |            |             |               |
| numpy                                            | 1.22.4    |            |             |               |
| cartopy                                          | 0.20.1    |            |             |               |
| geoviews                                         | 1.9.5     |            |             |               |
| Bokeh                                            | 2.4.3     |            |             |               |
| Rasterio                                         | 1.2.10    |            |             |               |

I extracted versions for 0.27.1, please use these versions to update the table above:

\```
# paste output from get_versions.sh here
\```