jiffyclub / palettable

Color palettes for Python
https://jiffyclub.github.io/palettable/
Other
768 stars 73 forks source link

The official release of palettable is broken #47

Closed has2k1 closed 1 year ago

has2k1 commented 1 year ago

Immediate Problem

palettable requires setuptools as a runtime dependency but it is not listed in the official release. This was fixed in https://github.com/jiffyclub/palettable/commit/b20cdca13647941deaaa2c4b15cdb9c56b234add, was not released.

Up to now, this issue has effectively been masked by at-least one of:

  1. Virtual environments tend to pre-install setuptools when they are created. This is not a standard requirement.
  2. Packages that depend on palettable may also have included setuptools as a runtime dependency.

The "new" packaging & installation standards (e.g PEP 518, PEP 621) have now been around long enough that installation tools & other packages have started to strictly adhere to them. That means fewer chances of setuptools being installed in the user environment.

Larger Problem

palettable vendors ez_setup as a way to sidestep setuptools during installation, yet setuptools is a runtime dependency! Juggling build/installation time and runtime dependencies is best done in a standards compliant way. ez_setup predates these standards and may contribute to or mask other installation problems.

Solution Possible immediate solution: Make a release. Better immediate solution: Consider PR https://github.com/jiffyclub/palettable/pull/46, remove setuptools as a runtime dependency and make a release. Final solution: Move to a standard installation process.

jiffyclub commented 1 year ago

I've merged #46 and released version 3.3.1 based on that. I'm a bit out of date on Python packaging (this package was originally made over 10 years ago!) so I'm going to brush up and see about updating to a more recent packaging design.

has2k1 commented 1 year ago

pyopensci has a comprehensive python packaging guide with a relevant page on how to use pyproject.toml.

jiffyclub commented 1 year ago

I've released version 3.3.3 with pyproject.toml based setup, hopefully this takes care of things for you. Thanks for the pointer! For my own future reference these are the pages I found most useful: