diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..190d93e --- /dev/null +++ b/.editorconfig @@ -0,0 +1,62 @@ +root = true + +[*] +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +charset = utf-8 + +[*.py] +indent_style = space +indent_size = 4 +max_line_length = 120 + +[*.go] +indent_style = tab +indent_size = 4 + +[*.{yml,yaml}] +indent_style = space +indent_size = 2 + +[*.{sh,bash}] +indent_style = space +indent_size = 2 + +[*.{toml,cfg,ini}] +indent_style = space +indent_size = 4 + +[*.{js,ts,json}] +indent_style = space +indent_size = 2 + +[*.{html,css}] +indent_style = space +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false + +[Dockerfile*] +indent_style = space +indent_size = 4 + +[*.Dockerfile] +indent_style = space +indent_size = 4 + +[Makefile] +indent_style = tab + +[justfile] +indent_style = space +indent_size = 4 + +[*.{tf,hcl}] +indent_style = space +indent_size = 2 + +[helm-deployments/**/*.yaml] +indent_style = space +indent_size = 2 diff --git a/docker/c-cpp.Dockerfile b/docker/c-cpp.Dockerfile index 38ead4e..5dd26f1 100644 --- a/docker/c-cpp.Dockerfile +++ b/docker/c-cpp.Dockerfile @@ -1,7 +1,8 @@ # syntax=docker/dockerfile:1 # C/C++ execution environment with Docker Hardened Images. +# Uses -dev variant because compilers and dev libraries must be available at runtime. -FROM dhi.io/debian-base:trixie +FROM dhi.io/debian-base:trixie-debian13-dev ARG BUILD_DATE ARG VERSION diff --git a/docker/d.Dockerfile b/docker/d.Dockerfile index da2d92f..b64bf77 100644 --- a/docker/d.Dockerfile +++ b/docker/d.Dockerfile @@ -1,7 +1,8 @@ # syntax=docker/dockerfile:1 # D execution environment with Docker Hardened Images. +# Uses -dev variant because compilers must be available at runtime. -FROM dhi.io/debian-base:trixie +FROM dhi.io/debian-base:trixie-debian13-dev ARG BUILD_DATE ARG VERSION diff --git a/docker/fortran.Dockerfile b/docker/fortran.Dockerfile index 928e1e1..8d20f7a 100644 --- a/docker/fortran.Dockerfile +++ b/docker/fortran.Dockerfile @@ -1,7 +1,8 @@ # syntax=docker/dockerfile:1 # Fortran execution environment with Docker Hardened Images. +# Uses -dev variant because compilers and dev libraries must be available at runtime. -FROM dhi.io/debian-base:trixie +FROM dhi.io/debian-base:trixie-debian13-dev ARG BUILD_DATE ARG VERSION diff --git a/docker/go.Dockerfile b/docker/go.Dockerfile index bf37a74..4f86354 100644 --- a/docker/go.Dockerfile +++ b/docker/go.Dockerfile @@ -3,7 +3,7 @@ ################################ # Stage 1: Build and download dependencies -FROM dhi.io/golang:1.25-debian13-dev AS builder +FROM dhi.io/golang:1.26-debian13-dev AS builder SHELL ["/bin/bash", "-o", "pipefail", "-c"] @@ -26,7 +26,7 @@ RUN cd /tmp/gosetup && \ ################################ # Stage 2: Prepare runtime directories -FROM dhi.io/golang:1.25-debian13-dev AS runtime-deps +FROM dhi.io/golang:1.26-debian13-dev AS runtime-deps SHELL ["/bin/bash", "-o", "pipefail", "-c"] @@ -35,7 +35,7 @@ RUN mkdir -p /mnt/data /mnt/data/go-build && chown -R 65532:65532 /mnt/data ################################ # Stage 3: Minimal runtime image -FROM dhi.io/golang:1.25-debian13 AS final +FROM dhi.io/golang:1.26-debian13 AS final ARG BUILD_DATE ARG VERSION diff --git a/docker/php.Dockerfile b/docker/php.Dockerfile index fe28565..1549d80 100644 --- a/docker/php.Dockerfile +++ b/docker/php.Dockerfile @@ -2,8 +2,8 @@ # PHP execution environment with Docker Hardened Images. # PHP version configuration - single source of truth -ARG PHP_VERSION=8.4.17 -ARG PHP_MAJOR=8.4 +ARG PHP_VERSION=8.5.3 +ARG PHP_MAJOR=8.5 ARG DEBIAN_VERSION=debian13 ARG BUILD_DATE diff --git a/docker/python.Dockerfile b/docker/python.Dockerfile index 197e6d7..c75d8ce 100644 --- a/docker/python.Dockerfile +++ b/docker/python.Dockerfile @@ -51,10 +51,10 @@ ENV PIP_NO_BUILD_ISOLATION=1 \ # Install pip and build tooling with compatible versions RUN --mount=type=cache,target=/root/.cache/pip \ python -m pip install \ - "pip<24.1" \ - "setuptools<70" \ + "pip>=24.1" \ + "setuptools>=70" \ wheel \ - "packaging<24" + "packaging>=24" # Copy requirements files COPY requirements/python-core.txt /tmp/python-core.txt @@ -83,33 +83,34 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN mkdir -p /usr/lib/x86_64-linux-gnu /usr/lib/aarch64-linux-gnu && \ apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - # Runtime libraries (counterparts to -dev packages in builder) - libxml2 \ - libxslt1.1 \ - libffi8 \ - libssl3t64 \ + # Core System Utilities + libgomp1 \ + liblz4-1 \ + # Image Processing (Pillow, OpenCV) + ffmpeg \ libjpeg62-turbo \ libpng16-16t64 \ libtiff6 \ + libwebp7 \ libopenjp2-7 \ - libfreetype6 \ liblcms2-2 \ - libwebp7 \ - libportaudio2 \ - libpulse0 \ - # External tools needed at runtime + # XML/HTML Processing (lxml, beautifulsoup4) + libxml2 \ + libxslt1.1 \ + # Cryptography (cryptography, PyOpenSSL) + libffi8 \ + libssl3t64 \ + # Font Support (Matplotlib, WordCloud) + libfreetype6 \ + fontconfig \ + # External Tools (Runtime executables) poppler-utils \ - tesseract-ocr \ - pandoc \ - ffmpeg \ - flac \ - antiword \ - unrtf \ && apt-get autoremove -y \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* \ && mkdir -p /mnt/data && chown 65532:65532 /mnt/data + ################################ # Final stage - minimal runtime image ################################ @@ -129,13 +130,7 @@ LABEL org.opencontainers.image.title="KubeCodeRun Python Environment" \ COPY --from=runtime-deps /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu COPY --from=runtime-deps /usr/lib/aarch64-linux-gnu /usr/lib/aarch64-linux-gnu COPY --from=runtime-deps /usr/bin/pdftotext /usr/bin/pdftoppm /usr/bin/pdfinfo /usr/bin/ -COPY --from=runtime-deps /usr/bin/tesseract /usr/bin/ -COPY --from=runtime-deps /usr/bin/pandoc /usr/bin/ COPY --from=runtime-deps /usr/bin/ffmpeg /usr/bin/ffprobe /usr/bin/ -COPY --from=runtime-deps /usr/bin/flac /usr/bin/ -COPY --from=runtime-deps /usr/bin/antiword /usr/bin/ -COPY --from=runtime-deps /usr/bin/unrtf /usr/bin/ -COPY --from=runtime-deps /usr/share/tesseract-ocr /usr/share/tesseract-ocr # Copy installed Python packages from builder # DHI Python is installed in /opt/python, not /usr/local diff --git a/docker/r.Dockerfile b/docker/r.Dockerfile index e8343e4..626a44b 100644 --- a/docker/r.Dockerfile +++ b/docker/r.Dockerfile @@ -9,7 +9,7 @@ ARG VCS_REF ################################ # Builder stage - install R and compile packages ################################ -FROM dhi.io/debian-base:trixie AS builder +FROM dhi.io/debian-base:trixie-debian13-dev AS builder SHELL ["/bin/bash", "-o", "pipefail", "-c"] @@ -40,7 +40,7 @@ RUN R -e "options(repos = c(CRAN = 'https://packagemanager.posit.co/cran/__linux ################################ # Final stage - runtime image ################################ -FROM dhi.io/debian-base:trixie AS final +FROM dhi.io/debian-base:trixie-debian13-dev AS final ARG BUILD_DATE ARG VERSION diff --git a/docker/requirements/go.mod b/docker/requirements/go.mod index bd7d5d6..8b9b86a 100644 --- a/docker/requirements/go.mod +++ b/docker/requirements/go.mod @@ -1,18 +1,22 @@ module preload -go 1.25 +go 1.26 require ( - github.com/gorilla/mux v1.8.1 + github.com/davidbyttow/govips/v2 v2.16.0 + github.com/fatih/color v1.18.0 github.com/gin-gonic/gin v1.11.0 - github.com/sirupsen/logrus v1.9.4 + github.com/gocarina/gocsv v0.0.0-20240520201108-78e41c74b4b1 github.com/google/uuid v1.6.0 - github.com/shopspring/decimal v1.4.0 - gonum.org/v1/gonum v0.17.0 + github.com/gorilla/mux v1.8.1 github.com/montanaflynn/stats v0.7.1 - github.com/xuri/excelize/v2 v2.10.0 + github.com/shopspring/decimal v1.4.0 + github.com/sirupsen/logrus v1.9.4 github.com/spf13/cobra v1.10.2 - github.com/fatih/color v1.18.0 - github.com/gocarina/gocsv v0.0.0-20240520201108-78e41c74b4b1 github.com/tidwall/gjson v1.18.0 + github.com/unidoc/unioffice/v2 v2.8.0 + github.com/xuri/excelize/v2 v2.10.0 + github.com/yuin/goldmark v1.7.16 + gonum.org/v1/gonum v0.17.0 + gopkg.in/yaml.v3 v3.0.1 ) diff --git a/docker/requirements/nodejs.txt b/docker/requirements/nodejs.txt index 665e959..e8b5683 100644 --- a/docker/requirements/nodejs.txt +++ b/docker/requirements/nodejs.txt @@ -1,34 +1,58 @@ -# Node.js global packages -# One package per line for npm install -g +# Node.js packages +# One package per line: npm install -g -lodash +# Core utilities +archiver axios -moment -uuid chalk commander -express -fs-extra -csv-parser -json2csv -papaparse -archiver -yauzl -pdf-lib +crypto-js date-fns +fs-extra +lodash +luxon +uuid validator -crypto-js +zod + +# Web scraping & parsing +cheerio + +# Data processing +papaparse mathjs ml-matrix simple-statistics -sharp + +# File formats - Office documents +exceljs +xlsx +pptxgenjs +mammoth + +# File formats - Other +js-yaml +marked +pdf-lib + +# Images jimp +sharp + +# Compression +yauzl + +# TypeScript (recommended local + global) typescript ts-node -xlsx -exceljs -luxon -zod +@types/node + +# Web frameworks +express handlebars -cheerio -marked + +# UI libraries +jquery +jquery-ui-dist +three +p5 diff --git a/docker/requirements/python-analysis.txt b/docker/requirements/python-analysis.txt index ec53ec8..7b2c6ae 100644 --- a/docker/requirements/python-analysis.txt +++ b/docker/requirements/python-analysis.txt @@ -1,19 +1,18 @@ -# Math, science, and analysis packages - -scipy>=1.11 -scikit-learn>=1.3 -statsmodels>=0.14 -sympy>=1.12 -mpmath>=1.3 -numba>=0.58 -llvmlite>=0.41 -numexpr>=2.8 -networkx>=3.2 -lifelines>=0.27 -autograd>=1.6 -autograd-gamma>=0.5 -formulaic>=1.0 -patsy>=0.5 -kiwisolver>=1.4 -joblib>=1.3 -threadpoolctl>=3.2 +# Math, science, and analysis +autograd-gamma>=0.5.0 +autograd>=1.7.0 +formulaic>=1.0.2 +joblib>=1.4.2 +kiwisolver>=1.4.7 +lifelines>=0.30.0 +llvmlite>=0.44.0 +mpmath>=1.3.0 +networkx>=3.4.2 +numba>=0.61.0 +numexpr>=2.10.2 +patsy>=1.0.1 +scikit-learn>=1.7.2 +scipy>=1.16.1 +statsmodels>=0.14.4 +sympy>=1.13.3 +threadpoolctl>=3.5.0 diff --git a/docker/requirements/python-core.txt b/docker/requirements/python-core.txt index 3fbfb33..a6e78cd 100644 --- a/docker/requirements/python-core.txt +++ b/docker/requirements/python-core.txt @@ -1,19 +1,17 @@ -# Core data processing packages -# These are the most stable and form the foundation - -cloudpickle>=3.0 -lz4>=4.3.0 -numpy>=1.24 -pandas>=2.0 -openpyxl>=3.1 -xlrd>=2.0 -XlsxWriter>=3.1 -pyarrow>=14.0 -tabulate>=0.9 -six>=1.16 -packaging>=23.0 -python-dateutil>=2.8 -pytz>=2024.1 -tzdata>=2024.1 -pendulum>=3.0 -pydantic>=2.5 +# Core data processing +cloudpickle>=3.1.0 +lz4>=4.3.3 +numpy>=2.2.1 +pandas>=3.0.0 +openpyxl>=3.1.5 +xlrd>=2.0.1 +XlsxWriter>=3.2.0 +pyarrow>=18.1.0 +tabulate>=0.9.0 +six>=1.17.0 +packaging>=24.2 +python-dateutil>=2.9.0 +pytz>=2025.1 +tzdata>=2025.2 +pendulum>=3.0.0 +pydantic>=2.10.6 diff --git a/docker/requirements/python-documents.txt b/docker/requirements/python-documents.txt index 8317219..6d861d8 100644 --- a/docker/requirements/python-documents.txt +++ b/docker/requirements/python-documents.txt @@ -1,41 +1,34 @@ -# Document processing packages (PDF, Office, etc.) +# Document processing - PDF +pdf2image>=1.17.0 +pdfminer.six>=20231228 +pypdf>=5.1.0 +PyPDF2>=3.0.1 +reportlab>=4.2.5 -# PDF -PyPDF2>=3.0 -pdfminer.six>=20221105 -pdfminer>=20191125 -pdf2image>=1.16 -reportlab>=4.0 - -# Office documents -python-docx>=1.1 -python-pptx>=0.6 -mammoth>=1.6 +# Document processing - Office (Excel, PowerPoint, Word) +docx2python>=3.1.1 docx2txt>=0.8 -docx2python>=2.0 -docxcompose>=1.4 -docxtpl>=0.16 -doc2pdf>=0.2 - -# XML/HTML parsing -beautifulsoup4>=4.12 -lxml>=4.9 -soupsieve>=2.5 -defusedxml>=0.7 -cssselect2>=0.7 -webencodings>=0.5 -tinycss2>=1.2 +docxcompose>=1.4.0 +docxtpl>=0.18.0 +mammoth>=1.8.0 +openpyxl>=3.1.5 +python-docx>=1.1.2 +python-pptx>=1.0.2 -# Text extraction -textract-py3>=1.5 -antiword>=0.1 -pytesseract>=0.3 -pypandoc>=1.12 +# Document processing - XML/HTML +beautifulsoup4>=4.12.3 +cssselect2>=0.7.0 +defusedxml>=0.7.1 +lxml>=5.3.0 +soupsieve>=2.6 +tinycss2>=1.4.0 +webencodings>=0.5.1 -# Other formats -vsdx>=0.5 -compressed-rtf>=1.0 -extract-msg>=0.47 -olefile>=0.47 -ebcdic>=1.1 -ExifRead>=3.0 +# Text and format processing (YAML, Markdown, JSON, CSV) +chardet>=5.2.0 +markdown-it-py>=3.0.0 +markdown>=3.7 +pyparsing>=3.2.1 +python-frontmatter>=1.1.0 +pyyaml>=6.0.2 +toml>=0.10.2 diff --git a/docker/requirements/python-utilities.txt b/docker/requirements/python-utilities.txt index b7a8521..171c571 100644 --- a/docker/requirements/python-utilities.txt +++ b/docker/requirements/python-utilities.txt @@ -1,65 +1,43 @@ -# Utility packages (cryptography, encoding, misc) - -# Cryptography -cryptography>=41.0 -bcrypt>=4.1 -PyNaCl>=1.5 -pycryptodome>=3.19 -passlib>=1.7 - -# Encoding/parsing -chardet>=5.2 -cffi>=1.16 -pycparser>=2.21 -pyparsing>=3.1 -base58>=2.1 -cobble>=0.1 -xxhash>=3.4 - -# Templates and markup -Jinja2>=3.1 -MarkupSafe>=2.1 - -# Barcodes/QR -qrcode>=7.4 -python-barcode>=0.15 - -# Other utilities -argcomplete>=3.2 -babel>=2.14 -deprecation>=2.1 -hachoir>=3.3 -interface-meta>=1.3 -paragraphs>=0.1 -sortedcontainers>=2.4 -tenacity>=8.2 -typing-extensions>=4.9 +# Cryptography and security +bcrypt>=4.2.1 +cryptography>=44.0.0 +passlib>=1.7.4 +pycryptodome>=3.21.0 +PyNaCl>=1.5.0 + +# Utilities +argcomplete>=3.5.3 +babel>=2.16.0 +base58>=2.1.1 +cffi>=1.17.1 +deprecation>=2.1.0 +hachoir>=3.3.0 +Jinja2>=3.1.5 +MarkupSafe>=3.0.2 +pycparser>=2.22 +python-barcode>=0.15.1 +qrcode>=8.0 +regex>=2024.11.6 +sortedcontainers>=2.4.0 +tenacity>=9.0.0 +typing-extensions>=4.12.2 tzlocal>=5.2 -Whoosh>=2.7 -wordcloud>=1.9 -wrapt>=1.16 -regex>=2023.12 - -# HTTP clients -requests>=2.31 -httpx>=0.25 - -# CLI and output formatting -rich>=13.7 -click>=8.1 -typer>=0.9 - -# Data generation and formatting -faker>=22.0 -humanize>=4.9 +wordcloud>=1.9.4 +wrapt>=1.17.2 +xxhash>=3.5.0 + +# HTTP and networking +certifi>=2025.1.31 +httpx>=0.28.1 +requests>=2.32.3 +urllib3>=2.3.0 + +# CLI and formatting +click>=8.1.8 +faker>=33.3.0 +humanize>=4.11.0 +rich>=13.9.4 +typer>=0.15.1 # Configuration -python-dotenv>=1.0 -toml>=0.10 -pyyaml>=6.0 - -# Audio -SpeechRecognition>=3.10 - -# Email -IMAPClient>=3.0 +python-dotenv>=1.0.1 diff --git a/docker/requirements/python-visualization.txt b/docker/requirements/python-visualization.txt index 2ba55a0..dba6e97 100644 --- a/docker/requirements/python-visualization.txt +++ b/docker/requirements/python-visualization.txt @@ -1,14 +1,13 @@ -# Visualization and graphics packages - -matplotlib>=3.8 -seaborn>=0.13 -plotly>=5.18 -pillow>=10.0 -imageio>=2.33 -scikit-image>=0.22 -opencv-python-headless>=4.8 -contourpy>=1.2 -cycler>=0.12 -fonttools>=4.47 -lazy-loader>=0.3 -tifffile>=2024.1 +# Visualization +contourpy>=1.3.1 +cycler>=0.12.1 +fonttools>=4.55.3 +imageio>=2.36.1 +lazy-loader>=0.4 +matplotlib>=3.10.0 +opencv-python-headless>=4.10.0.84 +pillow>=11.1.0 +plotly>=5.24.1 +scikit-image>=0.25.0 +seaborn>=0.13.2 +tifffile>=2025.2.12 diff --git a/docker/requirements/rust-Cargo.toml b/docker/requirements/rust-Cargo.toml index 36071e6..55c343c 100644 --- a/docker/requirements/rust-Cargo.toml +++ b/docker/requirements/rust-Cargo.toml @@ -5,29 +5,38 @@ edition = "2021" [dependencies] # Serialization -serde = { version = "1", features = ["derive"] } -serde_json = "1" +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0.149" +serde_yaml = "0.9.34" # Data formats -csv = "1" -zip = "7" -flate2 = "1" -calamine = "0.32" +csv = "1.4.0" +zip = "8.1.0" +flate2 = "1.1.9" + +# Spreadsheets (Excel, ODS) +calamine = { version = "0.33.0", features = ["dates"] } + +# Office documents (DOCX, PPTX, XLSX) +undoc = "0.1.13" + +# Markdown parsing +pulldown-cmark = "0.13.0" # Images -image = "0.25" +image = "0.25.9" # Utilities -uuid = { version = "1", features = ["v4"] } -chrono = { version = "0.4", features = ["serde"] } -regex = "1" -clap = { version = "4", features = ["derive"] } -anyhow = "1" -thiserror = "2" +uuid = { version = "1.21.0", features = ["v4", "serde"] } +chrono = { version = "0.4.43", features = ["serde"] } +regex = "1.12.3" +clap = { version = "4.5.59", features = ["derive"] } +anyhow = "1.0.101" +thiserror = "2.0.18" # Math/Stats -nalgebra = "0.34" -statrs = "0.18" +nalgebra = "0.34.1" +statrs = "0.18.0" # Plotting -plotters = "0.3" +plotters = "0.3.7" diff --git a/docker/rust.Dockerfile b/docker/rust.Dockerfile index 1a3416b..e4197c0 100644 --- a/docker/rust.Dockerfile +++ b/docker/rust.Dockerfile @@ -8,7 +8,7 @@ ################################ # Builder stage - compile crate dependencies ################################ -FROM dhi.io/rust:1.92-debian13-dev AS builder +FROM dhi.io/rust:1.93-debian13-dev AS builder SHELL ["/bin/bash", "-o", "pipefail", "-c"] @@ -45,7 +45,7 @@ RUN rm -rf /tmp/rust-cache/src /tmp/rust-cache/Cargo.toml /tmp/rust-cache/Cargo. ################################ # Final stage - runtime only ################################ -FROM dhi.io/rust:1.92-debian13-dev AS final +FROM dhi.io/rust:1.93-debian13-dev AS final ARG BUILD_DATE ARG VERSION