Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Choose between Pipfile and setup.cfg #76

Closed
hoh opened this issue Aug 2, 2022 · 7 comments · Fixed by #100
Closed

Choose between Pipfile and setup.cfg #76

hoh opened this issue Aug 2, 2022 · 7 comments · Fixed by #100

Comments

@hoh
Copy link
Member

hoh commented Aug 2, 2022

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 #72 (comment)

@MHHukiewitz
Copy link
Member

/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
Copy link
Member

@mrhouzlane can you manage this?

@hoh
Copy link
Member Author

hoh commented Aug 17, 2022

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
Copy link
Contributor

mrhouzlane commented Sep 5, 2022

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
Copy link
Member

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
Copy link
Contributor

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
Copy link
Member Author

hoh commented Sep 5, 2022

Packaging for Python has many options, including:

  • Using setup.py or setup.cfg: The old and simple way to manage library build, setup and installation.
  • Using pyproject.toml: The new recommended way with a better approach to dependency management [1]
  • Using PipFile: Great to manage and freeze dependencies for deployments
  • Using Poetry: The most modern way to manage dependencies for deployments

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/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants