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 >> >