Skip to content

Use uv and hatch for building and dependency management#4054

Open
dylwil3 wants to merge 3 commits intosnowflakedb:mainfrom
dylwil3:uv-and-hatch
Open

Use uv and hatch for building and dependency management#4054
dylwil3 wants to merge 3 commits intosnowflakedb:mainfrom
dylwil3:uv-and-hatch

Conversation

@dylwil3
Copy link

@dylwil3 dylwil3 commented Jan 22, 2026

Apologies in advance for the "speculative" pull request - I know that is not a maintainer's favorite thing to come across. I'm just curious if you would be interested in migrating the build setup to something a bit more modern.

This removes the setup.py "dynamic" setup in favor of putting everything in pyproject.toml. That means less code to maintain, and it's easier to build and install.

If this is of interest I can spend more time seeing if other parts of the code need to be fixed to support this change (e.g. tox.ini, CI, etc.). I can also make sure all the tests pass - so far I only checked the ones that don't require credentials.

Let me know, and if not then no worries!

@github-actions
Copy link

github-actions bot commented Jan 22, 2026

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@dylwil3
Copy link
Author

dylwil3 commented Jan 22, 2026

I have read the CLA Document and I hereby sign the CLA

@dylwil3
Copy link
Author

dylwil3 commented Jan 22, 2026

recheck

@dylwil3 dylwil3 changed the title Use uv and hatch for building and dependncy management Use uv and hatch for building and dependency management Jan 22, 2026
@sfc-gh-joshi
Copy link
Contributor

Thanks for the PR! This looks like an interesting direction, and would be a very helpful contribution.

I've got a few comments/questions:

  1. We'd like to keep the restrictions on supported Python versions/packages in CONTRIBUTING.md. Snowpark may or may not work with other Python versions, but we can only fully commit to support for versions that we test and run CI for.
  2. We don't want to have a lockfile, since the package/repository needs to be installable in environments with packages that may not match what's available in pypi (particularly the Snowflake Anaconda channel), and debugging lockfile issues would cause some headaches.
  3. Do we still need to keep setup.py around? There's still some dynamic code for protobuf generation needed for builds, and I'm not sure how that fits with a pyproject.toml flow.

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.

2 participants