[Distutils] Re: Best way for a project to provide an optional C module

2020-08-02 Thread Bert JW Regeer
By splitting it into two different packages you end up with the same situation that currently plagues psycopg2/psycopg2-binary whereby if you depend on psycopg2 you can't easily swap in psycopg2-binary and vice-versa as the two don't satisfy the same dependency. Number 3 is kind of what

[Distutils] Best way for a project to provide an optional C module

2020-08-02 Thread Daniele Varrazzo
Hello, packaging psycopg3, I'm wondering what is the best way to provide an optional optimisation module. 1) provide a separate psycopg3-c distribution 2) provide an extra psycopg3[c] 3) try building the extension and fail quietly. 1) seems the cleanest approach: the psycopg3 distribution would

[Distutils] Re: Best way for a project to provide an optional C module

2020-08-02 Thread Daniele Varrazzo
On Sun, 2 Aug 2020 at 21:34, Bert JW Regeer wrote: > > By splitting it into two different packages you end up with the same > situation that currently plagues psycopg2/psycopg2-binary whereby if you > depend on psycopg2 you can't easily swap in psycopg2-binary and vice-versa as > the two don't

[Distutils] Re: Best way for a project to provide an optional C module

2020-08-02 Thread Tzu-ping Chung
Ideally this problem should be solved with the Provides-Dist metadata.[1] The exact semantic to the flag is unfortunately not discussed much currently, and no installer implementations that I know of (including pip) support it at all. This also recently came up in pip’s issue tracker,[2] and I