Skip to content

Conversation

nicholasjng
Copy link
Contributor

This is a more future-proof way to package the lakefs wrapper project.

No functional changes intended, except that instead of excluding the tests, we now explicitly include the lakectl and lakefs packages instead, which means that the docs folder not being pasted directly into the site-packages directory anymore.

This also enables lakefs to use PEP517 build backends such as build. In fact, this change was tested with the python -m build . -w command, which gives the expected results.


Hey all, I browsed a bit in the lakefs package trying to locate a version, and saw the opportunity to modernize the wheel builds a little. Feel free to close if this is not your preferred style, but I find the convenience of PEP517 backends worth having.

This is a more future-proof way to package the `lakefs` wrapper project.

No functional changes intended, except that instead of excluding the tests, we now
explicitly include the `lakectl` and `lakefs` packages instead, which means that the
docs folder not being pasted directly into the site-packages directory anymore.

This also enables lakefs to use PEP517 build backends such as `build`. In fact, this
change was tested with the `python -m build . -w` command, which gives the expected results.
Homepage = "https://github.com/treeverse/lakeFS/tree/master/clients/python-wrapper"

[tool.setuptools.packages.find]
where = ["."]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is necessary, it is the default AFAIK.

aws-iam = [
"boto3 >= 1.26.0",
]
test = [
Copy link
Contributor

@skshetry skshetry Oct 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems like a good case for dependency-groups instead of introducing a new extra, but that's upto the maintainers to decide. Alternatively, this could be removed as there is requirements.txt for testing.

@nicholasjng
Copy link
Contributor Author

Thanks for the thorough review! I took over all your proposed changes, and feel the same way about dependency groups.

Comment on lines +31 to +32
all = [ "boto3 >= 1.26.0" ]
aws-iam = [ "boto3 >= 1.26.0" ]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hi, dependency-groups and extras (aka project.optional-dependencies) aren't the same thing. extras are for package distributions whereas dependency-groups are project dependencies, similar to requirements.txt files.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

got it, so test moves into a dependency group, while all and aws-iam return to optional-dependencies?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, looks good as you have done. :)

@itaiad200 itaiad200 requested review from nopcoder, ozkatz and N-o-Z October 8, 2025 08:42
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