Overview
The current setup process for TidesDB Python bindings unnecessarily clones the entire C foundation repository (cfoundation/). While the C foundation is crucial for the Python bindings, only specific files (primarily CMakeLists.txt and core implementation files) are required for building the bindings.
Current Status
- Setup scripts (
setup.sh and setup.ps1) clone the entire C foundation repository
- All auxiliary files, documentation, and tests from the C foundation are downloaded
- This results in:
- Longer setup times
- Unnecessary disk space usage
- Potential confusion for contributors about which files are relevant
Missing Functionality
An optimized setup process that:
- Selectively downloads only required C foundation files
- Maintains proper integration with CMake build system
- Preserves all necessary dependencies and build configurations
Proposed Solution
-
Modify setup scripts to implement sparse checkout or targeted file download:
- Download only CMakeLists.txt and essential source files
- Exclude unnecessary documentation, tests, and auxiliary files
- Maintain proper directory structure for CMake
-
Create a manifest file listing required C foundation components:
- CMakeLists.txt
- Core implementation files
- Required headers
- Build configuration files
-
Update documentation to reflect the optimized setup process:
- Clear explanation of which C foundation components are used
- Instructions for manual file inclusion if needed
- Updated project structure documentation
-
Add verification steps in setup scripts:
- Validate presence of all required files
- Ensure build system integrity
- Check for proper integration with Python bindings
This optimization will significantly reduce setup time, disk usage, and improve the overall developer experience while maintaining all functionality of the Python bindings.
Overview
The current setup process for TidesDB Python bindings unnecessarily clones the entire C foundation repository (
cfoundation/). While the C foundation is crucial for the Python bindings, only specific files (primarily CMakeLists.txt and core implementation files) are required for building the bindings.Current Status
setup.shandsetup.ps1) clone the entire C foundation repositoryMissing Functionality
An optimized setup process that:
Proposed Solution
Modify setup scripts to implement sparse checkout or targeted file download:
Create a manifest file listing required C foundation components:
Update documentation to reflect the optimized setup process:
Add verification steps in setup scripts:
This optimization will significantly reduce setup time, disk usage, and improve the overall developer experience while maintaining all functionality of the Python bindings.