Conversation
9b73d81 to
42b334d
Compare
There was a problem hiding this comment.
Pull request overview
This pull request attempts to upgrade the Python implementation from version 3.12 to 3.14 and modifies the C# PostgreSQL repository to manage timestamp fields (CreatedAt/UpdatedAt) in application code rather than relying on database-generated values.
Changes:
- Upgrade Python version requirement to 3.14 across all configuration files, Docker images, CI/CD workflows, and tooling
- Update C# PostgreSQL repository to explicitly set CreatedAt and UpdatedAt timestamps in code
- Update documentation comments in C# to reflect the change from database-generated to application-managed timestamps
Reviewed changes
Copilot reviewed 6 out of 7 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| src/python/requirements.txt | Updated Python version constraints to 3.14 for all dependencies |
| src/python/pyproject.toml | Updated Python version requirement to 3.14 and tool configurations (Black, Ruff, MyPy) |
| src/python/poetry.lock | Regenerated lockfile for Python 3.14 |
| src/python/README.md | Updated minimum Python version requirement to 3.14 |
| src/python/Dockerfile | Updated base image and paths to Python 3.14 |
| src/python/.python-version | Updated from 3.12.9 to 3.14 |
| src/csharp/LampControlApi/Services/PostgresLampRepository.cs | Modified to set CreatedAt/UpdatedAt timestamps explicitly in code |
| src/csharp/LampControlApi/Infrastructure/Database/LampDbEntity.cs | Updated documentation to reflect application-managed timestamps |
| .github/workflows/python-ci.yml | Updated Python version in CI/CD matrix to 3.14 |
src/python/pyproject.toml
Outdated
| [tool.black] | ||
| line-length = 100 | ||
| target-version = ["py312"] | ||
| target-version = ["py314"] |
There was a problem hiding this comment.
Black does not support "py314" as a target version yet, since Python 3.14 hasn't been released. This will cause Black to fail with an invalid target version error. Use "py313" or another supported version.
| target-version = ["py314"] | |
| target-version = ["py313"] |
src/python/pyproject.toml
Outdated
| [tool.ruff] | ||
| line-length = 100 | ||
| target-version = "py312" | ||
| target-version = "py314" |
There was a problem hiding this comment.
Ruff does not support "py314" as a target version yet, since Python 3.14 hasn't been released. This will cause Ruff to fail with an invalid target version error. Use "py313" or another supported version.
| target-version = "py314" | |
| target-version = "py313" |
src/python/pyproject.toml
Outdated
|
|
||
| [tool.mypy] | ||
| python_version = "3.12" | ||
| python_version = "3.14" |
There was a problem hiding this comment.
MyPy does not support Python version "3.14" yet, since this version hasn't been released. This will cause MyPy to fail with an invalid Python version error. Use "3.13" or another supported version.
src/python/Dockerfile
Outdated
|
|
||
| # Ensure Python can locate third-party packages installed under /usr/local | ||
| ENV PYTHONPATH="/usr/local/lib/python3.11/site-packages" | ||
| ENV PYTHONPATH="/usr/local/lib/python3.14/site-packages" |
There was a problem hiding this comment.
The PYTHONPATH references python3.14, but this version does not exist yet. When Python 3.14 is eventually released, ensure this path matches the actual installation directory in the base image. For now, this should be updated to match the actual Python version being used (e.g., python3.13).
src/python/Dockerfile
Outdated
|
|
||
| # Copy Python packages from build stage | ||
| COPY --from=build-env /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages | ||
| COPY --from=build-env /usr/local/lib/python3.14/site-packages /usr/local/lib/python3.14/site-packages |
There was a problem hiding this comment.
The COPY command references python3.14 directories, but this version does not exist yet. This will cause the Docker build to fail because these directories won't exist in the build stage. Update to match the actual Python version being used.
pydantic-core 2.33.2 used pyo3 0.24.1 which capped Python support at 3.13. After upgrading .python-version to 3.14 in #419, Cloud Build failed because pydantic-core could not compile its Rust extension. Upgrade pydantic to ^2.12.0 (pinning pydantic-core to 2.41.5 which ships pre-built Python 3.14 wheels) so no Rust compilation is needed. Also update pydantic-settings to ^2.12.0 to match. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…421) pydantic-core 2.33.2 used pyo3 0.24.1 which capped Python support at 3.13. After upgrading .python-version to 3.14 in #419, Cloud Build failed because pydantic-core could not compile its Rust extension. Upgrade pydantic to ^2.12.0 (pinning pydantic-core to 2.41.5 which ships pre-built Python 3.14 wheels) so no Rust compilation is needed. Also update pydantic-settings to ^2.12.0 to match. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Summary
Testing