refactor: rename the application package to docsgpt

The backend import package is now docsgpt, the name it will carry on PyPI;
application was far too generic to install into anyone's site-packages.
git mv plus a mechanical rewrite of every import, dotted string and path
reference: 734 Python files, the compose files, Dockerfile, workflows, docs,
setup scripts, devcontainer, k8s manifests, vscode config, pytest and coverage
config, .gitignore. Behaviour is unchanged.

Kept for one release:
- A top-level application package whose meta-path finder resolves
  application.x.y to the already-imported docsgpt.x.y object, so old imports
  and entry points (celery -A application.app.celery,
  uvicorn application.asgi:asgi_app) keep working with a FutureWarning.
- Celery registers every application.* task name as an alias of its
  docsgpt.* task on start-up, so messages queued by the previous release still
  run. The redbeat key prefix moves to redbeat:docsgpt:v2: so schedule entries
  the previous release wrote are left unread instead of firing twice.

The backend image builds from the repository root (docker build -f
docsgpt/Dockerfile .) so it can ship the alias package; a root .dockerignore
allow-lists docsgpt/ and application/ and keeps caches, local data, .env
files, the sample index files and the Dockerfile out. Compose and the image
workflows point at the new context.
This commit is contained in:
Alex committed 2026-09-07 10:20:43 +01:00
1 parent 3e7f1f91b4
commit 574f96341e
984 files changed
+9847 -9682

No files matched your search

+4 -4
View File
@@ -4,7 +4,7 @@ on:
push:
branches: [main]
paths:
- 'application/version.py'
- 'docsgpt/version.py'
workflow_dispatch:
permissions:
@@ -23,12 +23,12 @@ jobs:
with:
persist-credentials: false
- name: Read version from application/version.py
- name: Read version from docsgpt/version.py
id: ver
run: |
VERSION=$(python3 -c "g={}; exec(open('application/version.py').read(), g); print(g['__version__'])")
VERSION=$(python3 -c "g={}; exec(open('docsgpt/version.py').read(), g); print(g['__version__'])")
if [ -z "$VERSION" ]; then
echo "::error::Could not read __version__ from application/version.py"
echo "::error::Could not read __version__ from docsgpt/version.py"
exit 1
fi
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
+2 -2
View File
@@ -28,13 +28,13 @@ jobs:
run: |
python -m pip install --upgrade pip
pip install bandit # Bandit is needed for this action
if [ -f application/requirements.txt ]; then pip install -r application/requirements.txt; fi
if [ -f docsgpt/requirements.txt ]; then pip install -r docsgpt/requirements.txt; fi
- name: Run Bandit scan
uses: PyCQA/bandit-action@v1
with:
severity: medium
confidence: medium
targets: application/
targets: docsgpt/
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+2 -2
View File
@@ -63,9 +63,9 @@ jobs:
- name: Build and push platform-specific images
uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6.19.2
with:
file: './application/Dockerfile'
file: './docsgpt/Dockerfile'
platforms: ${{ matrix.platform }}
context: ./application
context: .
push: true
build-args: |
EXTRAS=${{ matrix.variant == '-docling' && 'docling' || '' }}
+2 -2
View File
@@ -65,9 +65,9 @@ jobs:
- name: Build and push platform-specific images
uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6.19.2
with:
file: './application/Dockerfile'
file: './docsgpt/Dockerfile'
platforms: ${{ matrix.platform }}
context: ./application
context: .
push: true
build-args: |
EXTRAS=${{ matrix.variant == '-docling' && 'docling' || '' }}
+11 -10
View File
@@ -8,14 +8,15 @@ on:
workflow_dispatch:
pull_request:
paths:
- 'application/Dockerfile'
- 'application/.dockerignore'
- 'docsgpt/Dockerfile'
- '.dockerignore'
- 'application/**'
- 'application/requirements*.txt'
- 'application/scripts/prefetch_models.py'
- 'application/scripts/verify_offline.py'
- 'application/vectorstore/model_registry.py'
- 'application/parser/tokenization.py'
- 'application/vectorstore/embeddings_local.py'
- 'docsgpt/scripts/prefetch_models.py'
- 'docsgpt/scripts/verify_offline.py'
- 'docsgpt/vectorstore/model_registry.py'
- 'docsgpt/parser/tokenization.py'
- 'docsgpt/vectorstore/embeddings_local.py'
- '.github/workflows/docker-image-verify.yml'
permissions:
@@ -40,8 +41,8 @@ jobs:
- name: Build the image
uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6.19.2
with:
file: ./application/Dockerfile
context: ./application
file: ./docsgpt/Dockerfile
context: .
platforms: linux/amd64
load: true
tags: docsgpt:verify${{ matrix.variant }}
@@ -63,4 +64,4 @@ jobs:
IMAGE: docsgpt:verify${{ matrix.variant }}
run: |
docker run --rm --network none "$IMAGE" \
python -m application.scripts.verify_offline
python -m docsgpt.scripts.verify_offline
+1 -1
View File
@@ -36,4 +36,4 @@ jobs:
run: |
uv lock --check
bash scripts/export_requirements.sh
git diff --exit-code -- application/requirements.txt application/requirements-docling.txt application/requirements-milvus.txt
git diff --exit-code -- docsgpt/requirements.txt docsgpt/requirements-docling.txt docsgpt/requirements-milvus.txt
+1 -1
View File
@@ -26,7 +26,7 @@ jobs:
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Test with pytest and generate coverage report
run: |
python -m pytest -n auto --cov=application --cov-report=xml --cov-report=term-missing
python -m pytest -n auto --cov=docsgpt --cov-report=xml --cov-report=term-missing
- name: Upload coverage reports to Codecov
if: github.event_name == 'pull_request' && matrix.python-version == '3.12'
uses: codecov/codecov-action@v5