Skip to content

Move to UV and remove git submodule #118

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft

Move to UV and remove git submodule #118

wants to merge 2 commits into from

Conversation

Jabb0
Copy link

@Jabb0 Jabb0 commented Jul 1, 2025

Change Description

This PR is a draft to remove the requirements txt and instead use dependency locking with uv.

More importantly it gets rid of the git submodule in favor of git source via uv.

Still in draft because the publishing process needs to be checked.

If you used new dependencies: Did you add them to requirements.txt?

Who did you ping on Mattermost to review your PR? Please ping that person again whenever you are ready for another review.

Breaking changes

If you made any breaking changes, please update the version number.
Breaking changes are totally fine, we just need to make sure to keep the users informed and the server in sync.

Does this PR break the API? If so, what is the corresponding server commit?

Does this PR break the user interface? If so, why?


Please do not mark comments/conversations as resolved unless you are the assigned reviewer. This helps maintain clarity during the review process.

Jabb0 added 2 commits July 1, 2025 17:22
Use git source instead of git submodule for commons
@Jabb0 Jabb0 self-assigned this Jul 1, 2025
@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@noahho
Copy link
Collaborator

noahho commented Jul 1, 2025

PR Review

Thanks for this excellent contribution! This PR introduces some much-needed updates to the project's packaging, dependency management, and overall structure. These changes align the project with modern Python best practices and will make it much easier to maintain and contribute to going forward.

What I Like ✅

  • Migration to pyproject.toml: Moving all dependency management out of requirements.txt files and into pyproject.toml is the right move. It centralizes project configuration and follows the current packaging standards (PEP 621).

  • Adoption of uv and uv.lock 🚀: Great to see the adoption of uv. The addition of the uv.lock file is a game-changer for ensuring reproducible builds. This will significantly speed up CI/CD pipelines and make the local development setup much more reliable for everyone.

  • Switch to a src Layout: Moving the package into a src directory is a best practice that helps prevent a whole class of tricky import-related bugs. It’s great to see this implemented.

  • Submodule Replaced with a Proper Dependency: Replacing the tabpfn_common_utils git submodule with a direct git dependency managed by uv is a much cleaner approach. It simplifies the workflow for developers who no longer have to worry about managing submodules.

  • .gitignore Update: The additions for devenv and .envrc are a small but thoughtful touch for improving the local development experience.

Suggestions for Improvement 💡

Honestly, there's very little to criticize here as these changes are all best practices. My only thought is to ensure the project's README.md or a CONTRIBUTING.md file is updated to reflect the new development setup.

  • I'd recommend adding a short section to the documentation outlining the new development setup steps, for example:

    1. Install uv (pip install uv).
    2. Create the virtual environment (uv venv).
    3. Install dependencies (uv pip install -e .[dev]).

This will help new and existing contributors get up to speed quickly with the new workflow.

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.

3 participants