Trim the build context and drop unused imports

Add a .dockerignore that whitelists only requirements.txt, start.py and
dsc/. The build context previously included .git, .idea, __pycache__ and
any local .env, which slowed builds and put a secrets file within reach
of any future COPY of the whole tree.

Remove the unused urlparse import from dsc/client.py and the redundant
import os.path from start.py; importing os already binds os.path.

Record both in IMPROVEMENTS.md, including the part still outstanding:
binutils and squashfs-tools remain in the runtime image because the
AppImage is unpacked in the same stage.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Maxim ShulgaandClaude Opus 5 committed 2026-08-02 16:23:04 -07:00
1 parent ff22f05576
commit 2126808cee
4 files changed
+15 -4

No files matched your search

+9
View File
@@ -0,0 +1,9 @@
# Only requirements.txt, dsc/ and start.py belong in the build context.
*
!requirements.txt
!start.py
!dsc/
# Keep local artifacts out even though dsc/ is re-included above.
dsc/**/__pycache__/
dsc/**/*.py[cod]
+6 -2
View File
@@ -171,10 +171,14 @@ Acceptance criteria:
- [ ] Separate configuration, subprocess execution, library resolution, and - [ ] Separate configuration, subprocess execution, library resolution, and
status monitoring so each can be tested independently. status monitoring so each can be tested independently.
- [ ] Remove unused imports and unnecessary dependencies. - [x] Remove unused imports and unnecessary dependencies. Both pinned
requirements are used; `urllib3` is imported directly but only pinned
transitively through `requests`.
- [ ] Add type annotations and static checks at external-input boundaries. - [ ] Add type annotations and static checks at external-input boundaries.
- [ ] Make logging configurable and avoid forced dependency debug logs. - [ ] Make logging configurable and avoid forced dependency debug logs.
- [ ] Add `.dockerignore` and reduce unnecessary image packages. - [ ] Add `.dockerignore` and reduce unnecessary image packages. `.dockerignore`
is in place; `binutils` and `squashfs-tools` are still shipped in the final
image because the AppImage is unpacked in the same stage.
### Establish a visible maintenance process ### Establish a visible maintenance process
-1
View File
@@ -4,7 +4,6 @@ import os
import subprocess import subprocess
import time import time
from typing import Optional from typing import Optional
from urllib.parse import urlparse
from cached_property import cached_property_with_ttl from cached_property import cached_property_with_ttl
import requests import requests
-1
View File
@@ -3,7 +3,6 @@
import argparse import argparse
import logging import logging
import os import os
import os.path
import sys import sys
from dsc import SeafileClient, const from dsc import SeafileClient, const