Since there is positive feedback from the dev community, I am going ahead and implementing this proposal for Python SDK.
@aus...@apache.org <aus...@apache.org> Initially let's move forward with the setuptools as backend for building package and as part of the future work, we can find a better backend than setuptools. Thanks for the feedback. Anand On Mon, Aug 28, 2023 at 12:00 PM Austin Bennett <aus...@apache.org> wrote: > I've thought about this a ton, but haven't been in a position to undertake > the work. Thanks for bringing this up, @Anand Inguva > <ananding...@google.com> ! > > I'd point us to https://python-poetry.org/ ... [ which is where I'd look > take us, but I'm also not able to do all the work, so my > suggestion/preference doensn't matter that much ] > > https://python-poetry.org/docs/pyproject#the-pyprojecttoml-file <- for > info on pyproject.toml file. > > Notice the use of a 'lock' file is very valuable, ex: > https://python-poetry.org/docs/basic-usage/#committing-your-poetrylock-file-to-version-control > > I haven't come across `build`, that might be great too. I'd highlight > that Poetry is pretty common across industry these days, rock-solid, > ecosystem of interoperability, users, etc... If not familiar, PLEASE have > a look at that. > > > > > On Mon, Aug 28, 2023 at 8:04 AM Kerry Donny-Clark via dev < > dev@beam.apache.org> wrote: > >> +1 >> Hi Anand, >> I appreciate this effort. Managing python dependencies has been a major >> pain point for me, and I think this approach would help. >> Kerry >> >> On Mon, Aug 28, 2023 at 10:14 AM Anand Inguva via dev < >> dev@beam.apache.org> wrote: >> >>> Hello Beam Dev Team, >>> >>> I've compiled a design document >>> <https://docs.google.com/document/d/17-y48WW25-VGBWZNyTdoN0WUN03k9ZhJjLp9wtyG1Wc/edit#heading=h.wskna8eurvjv>[1] >>> proposing the integration of pyproject.toml into Apache Beam's Python build >>> process. Your insights and feedback would be invaluable. >>> >>> What is pyproject.toml? >>> pyproject.toml is a configuration file that specifies a project's build >>> dependencies and other project-related metadata in a standardized >>> format. Before pyproject.toml, Python projects often had multiple >>> configuration files (like setup.py, setup.cfg, and requirements.txt). >>> pyproject.toml aims to centralize these configurations into one place, >>> making project setups more organized and straightforward. One of the >>> significant features enabled by pyproject.toml is the ability to perform >>> isolated builds. This ensures that build dependencies are separated from >>> the project's runtime dependencies, leading to more consistent and >>> reproducible builds. >>> >>> [1] >>> https://docs.google.com/document/d/17-y48WW25-VGBWZNyTdoN0WUN03k9ZhJjLp9wtyG1Wc/edit#heading=h.wskna8eurvjv >>> >>> Thanks, >>> Anand >>> >>