aleph-im / aleph-client

Lightweight Python Client library for the Aleph.im network
MIT License
12 stars 14 forks source link

Choose between Pipfile and setup.cfg #76

Closed hoh closed 2 years ago

hoh commented 2 years ago

We do not use actively use the Pipfile and Pipfile.lock files at the moment, we use setup.cfg instead.

We should have only one way to define dependencies, either setup.cfg or Pipfile.

Originally posted by @hoh in https://github.com/aleph-im/aleph-client/issues/72#issuecomment-1202375613

MHHukiewitz commented 2 years ago

/usr/local/lib/python3.9/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.

I guess we should use Pipfile.

MHHukiewitz commented 2 years ago

@mrhouzlane can you manage this?

hoh commented 2 years ago

Pipfile would be great for development and containerized usage, but we may have to support other library versions based on what is distributed with supported Linux distributions and homebrew.

mrhouzlane commented 2 years ago

We should have only one way to define dependencies, either setup.cfg or Pipfile.

Pipefile is now working with python_version = "3.10" with all necessary packages but it is for development only. Pipefile update packages

MHHukiewitz commented 2 years ago

As I heard, setup.py does some stuff for us to upload the package to PyPI. Just to collect resources, here's some more info on packaging for PyPI: https://packaging.python.org/en/latest/tutorials/packaging-projects/

odesenfans commented 2 years ago

We use setup.cfg on all our projects. I have never used pipfile, but it seems to me like a classical case of "it ain't broke don't fix it". setup.cfg all the way for me.

hoh commented 2 years ago

Packaging for Python has many options, including:

Pipfile and Poetry are great to manage dependencies, upgrade them, freeze them, etc. This is very useful when building web apps so everyone in the team uses the same version. They could be useful for pyaleph.

However aleph-client is a library. We want users to be able to just pip install it from GitHub. Dependencies must be flexible so users can integrate it within their project.

Pipfile and Pipfile.lock were added to aleph-client before I started working on the project and are not actively used. I propose to remove them from this project.

[1] https://pip.pypa.io/en/stable/reference/build-system/