Message ID | 20201020193555.1493936-6-jsnow@redhat.com |
---|---|
State | New |
Headers | show |
Series | python: create installable package | expand |
On Tue, Oct 20, 2020 at 03:35:45PM -0400, John Snow wrote: > pipenv is a tool used for managing virtual environments with pinned, > explicit dependencies. It is used for precisely recreating python > virtual environments. > > pipenv uses two files to do this: > > (1) Pipfile, which is similar in purpose and scope to what setup.py > lists. It specifies the requisite minimum to get a functional > environment for using this package. > > (2) Pipfile.lock, which is similar in purpose to `pip freeze > > requirements.txt`. It specifies a canonical virtual environment used for > deployment or testing. This ensures that all users have repeatable > results. > > The primary benefit of using this tool is to ensure repeatable CI > results with a known set of packages. Although I endeavor to support as > many versions as I can, the fluid nature of the Python toolchain often > means tailoring code for fairly specific versions. > > Note that pipenv is *not* required to install or use this module; this is > purely for the sake of repeatable testing by CI or developers. > > Here, a "blank" pipfile is added with no dependencies, but specifies > Python 3.6 for the virtual environment. > > Pipfile will specify our version minimums, while Pipfile.lock specifies > an exact loudout of packages that were known to operate correctly. This > latter file provides the real value for easy setup of container images > and CI environments. > > Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Cleber Rosa <crosa@redhat.com>
diff --git a/python/Pipfile b/python/Pipfile new file mode 100644 index 0000000000..9534830b5e --- /dev/null +++ b/python/Pipfile @@ -0,0 +1,11 @@ +[[source]] +name = "pypi" +url = "https://pypi.org/simple" +verify_ssl = true + +[dev-packages] + +[packages] + +[requires] +python_version = "3.6"
pipenv is a tool used for managing virtual environments with pinned, explicit dependencies. It is used for precisely recreating python virtual environments. pipenv uses two files to do this: (1) Pipfile, which is similar in purpose and scope to what setup.py lists. It specifies the requisite minimum to get a functional environment for using this package. (2) Pipfile.lock, which is similar in purpose to `pip freeze > requirements.txt`. It specifies a canonical virtual environment used for deployment or testing. This ensures that all users have repeatable results. The primary benefit of using this tool is to ensure repeatable CI results with a known set of packages. Although I endeavor to support as many versions as I can, the fluid nature of the Python toolchain often means tailoring code for fairly specific versions. Note that pipenv is *not* required to install or use this module; this is purely for the sake of repeatable testing by CI or developers. Here, a "blank" pipfile is added with no dependencies, but specifies Python 3.6 for the virtual environment. Pipfile will specify our version minimums, while Pipfile.lock specifies an exact loudout of packages that were known to operate correctly. This latter file provides the real value for easy setup of container images and CI environments. Signed-off-by: John Snow <jsnow@redhat.com> --- python/Pipfile | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 python/Pipfile