Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR migrates the project's package management system from PDM to UV. This change offers several key advantages:
Simplified Installation and Dependency Management: UV is a single, statically-linked binary that handles downloading the required Python version and managing all project dependencies. This streamlines the installation process for users, eliminating the need to manually manage Python versions or worry about polluting system installations. Users only need to install UV and then use it to install
batdetect2
.Improved Reproducibility: UV prioritizes reproducible builds by generating system-agnostic lock files. This ensures consistent dependency resolution across different operating systems (Linux, macOS, Windows) using a single lock file, simplifying development collaboration and deployment.
Enhanced Performance: While not a primary factor for this project, UV generally offers significantly faster dependency resolution compared to PDM, which can be beneficial for CI/CD pipelines.
This migration may require a slight adjustment for users familiar with PDM, but the long-term benefits in terms of ease of use, reproducibility, and performance outweigh the initial learning curve.