Today I was reminded of the fact that building a python package requires you to list what non-source-code files need to appear in the final build artifact.
And apparently the way to do that is to make a MANIFEST.in
at the top level of the repository. I just learned this is
a setuptools concept and I wonder what it is like in the pyproject.toml
world.
The python packaging world was changing even when I first got into my professional career, but there were enough scripts to automate builds and practices around it that I internalized to think about how else this could be done. And so I’d like to get to know some of the more popular packaging solutions for python and document my findings here.
Note to self: come back to this with a little MVP project thing that can show the differences how setuptools
and
pyproject.toml
handle these files the same / differently.
Some questions to answer:
- Given JSON files in some
src/
directory, or nested deeper, how do you make these appear and readable by the project after apip install
? - Does anything need to change after a
pip install -e .
? - What’s the easiest build tool to pick to support a
pyproject.toml
project?