Skip to content

Conversation

a-klos
Copy link
Member

@a-klos a-klos commented Sep 10, 2025

This pull request introduces significant improvements to the development and build workflows for both the backend services and Python libraries. The main changes include a clearer separation between development and production Docker builds, enhanced configuration for local development via Tilt, and improved dependency management and testing setup for Python libraries. These updates streamline live development, testing, and linting processes, making them more reliable and easier to maintain.

Build and workflow improvements:

  • Added explicit support for development mode in the Tiltfile, allowing dynamic switching between Dockerfile.dev (for live code updates and fast iteration) and production Dockerfile (for optimized builds). Also updated Docker ignore lists for more targeted builds. [1] [2] [3] [4] [5] [6] [7]
  • Updated GitHub Actions workflows to use Dockerfile.dev for service builds during linting and testing, removed unnecessary build arguments, and set Python version to 3.13 for consistency. [1] [2] [3] [4]

Python library dependency and testing enhancements:

  • Refactored Poetry dependency groups in all Python libraries to separate test, lint, and dev dependencies, added setuptools <80.9 for compatibility, and updated library versions. Also improved pytest configuration for better logging and path setup. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

Docker build improvements for Python libraries:

  • Updated libs/Dockerfile to use Poetry 2.1.3, improved conditional installation logic for dev/test/lint dependencies, and ensured correct installation of shared dependencies for interdependent libraries.

Frontend workflow fixes:

  • Ensured npm install runs before frontend linting and testing in Tilt, and expanded dependency tracking for these local resources. [1] [2]

Dependency version updates:

  • Updated several library versions and dependency specifications, including switching fasttext to a stable release and updating internal library versions to 2.2.1. [1] [2] [3] [4]

Let me know if you want to walk through any of these changes in detail or discuss how they impact your local development workflow!

… management and development workflow

- Updated Dockerfiles for services and libs to use Python 3.13 and 3.11.7.
- Introduced separate Dockerfile.dev for development environments with optimized caching.
- Enhanced dependency installation logic in Dockerfiles to streamline dev and prod setups.
- Updated Poetry version to 2.1.3 across all services and libs.
- Refined pyproject.toml files to include TestPyPI sources and group dependencies for better management.
- Improved logging setup in Dockerfiles for better runtime diagnostics.
- Moved test dependencies to a dedicated group and added pytest and coverage.
- Created a separate lint group with flake8 and related plugins.
- Added debugpy and rag-core libraries to the dev group.
- Updated production dependencies for rag-core libraries to version 2.2.1.
- Updated `pyproject.toml` and `poetry.lock` files to enforce `setuptools` version to be less than 80.9 in multiple services.
- Adjusted per-file ignores for linting in `admin-backend` and `document-extractor`.
- Streamlined Dockerfiles for `document-extractor`, `rag-backend`, and `mcp-server` to improve build efficiency and user permissions.
- Ensured consistent formatting in dependency declarations across services.
- Updated versioning for `pdfextractor_server` to 2.2.1.
- Added minimal library structures in Dockerfiles to facilitate local package recognition by Poetry.
- Moved `pytest` and `pytest-asyncio` to a new test dependency group in `rag-core-lib`.
- Added `coverage` to the test dependencies in `rag-core-lib`.
- Created a separate lint dependency group in `rag-core-lib` and included `flake8` and related packages.
- Updated markers in `poetry.lock` for better platform compatibility.
- Removed `pytest-asyncio` from the `rag-backend` dependencies and adjusted its group to only include `test`.
… Dockerfile cleanup and user permissions; adjust pyproject.toml for local dependencies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant