Bug 1668387

Summary: Review Request: poetry - Python dependency management and packaging made easy
Product: [Fedora] Fedora Reporter: Fabio Valentini <decathorpe>
Component: Package ReviewAssignee: Neal Gompa <ngompa13>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: ngompa13, orion, package-review, projects.rg
Target Milestone: ---Flags: ngompa13: fedora-review?
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-05-12 14:18:21 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1666293, 1666294, 1666306, 1666311    
Bug Blocks:    

Description Fabio Valentini 2019-01-22 16:09:01 UTC
Spec URL: https://decathorpe.fedorapeople.org/packages/poetry.spec
SRPM URL: https://decathorpe.fedorapeople.org/packages/poetry-0.12.11-1.fc29.src.rpm

Description:
Poetry helps you declare, manage and install dependencies of Python
projects, ensuring you have the right stack everywhere.

Fedora Account System Username: decathorpe

koji scratch build for rawhide: https://koji.fedoraproject.org/koji/taskinfo?taskID=32193963


Note: This package does probably still require some additional work before it can be accepted.

- It includes a self-update function that probably has to be patched out for the fedora package.

- poetry seems to produce "setup.py" files that are possibly broken (because they use distutils.core::setup instead of setuptools::setup, but the former doesn't support all the same expected keyword arguments, for example for extra or optional dependencies).

This package also depends on my pending reviews for the pylev, pastel, clikit, and cleo python packages.

Comment 1 Neal Gompa 2019-01-25 15:40:46 UTC
Taking this review.

Comment 2 Raphael Groner 2019-01-25 19:17:39 UTC
What's the benefit towards PyPI and setuptools?

Comment 3 Fabio Valentini 2019-01-25 19:43:16 UTC
(In reply to Raphael Groner from comment #2)
> What's the benefit towards PyPI and setuptools?

poetry manages the python package metadata in a machine-readable format (TOML), and allows exporting to the usual "setup.py", i.e. for uploading to PyPI.
So it can be used as a "convenience wrapper" around the standard tools. (Neal, please correct me if I'm wrong here.)

Comment 4 Neal Gompa 2019-01-25 19:49:38 UTC
(In reply to Fabio Valentini from comment #3)
> (In reply to Raphael Groner from comment #2)
> > What's the benefit towards PyPI and setuptools?
> 
> poetry manages the python package metadata in a machine-readable format
> (TOML), and allows exporting to the usual "setup.py", i.e. for uploading to
> PyPI.
> So it can be used as a "convenience wrapper" around the standard tools.
> (Neal, please correct me if I'm wrong here.)

That's basically correct. It replaces conventional setup.py, requirements.txt, Pipfile, Pipfile.lock, etc. with a PEP 518 compliant configuration in pyproject.toml and a simple poetry.lock file for projects that want dependency locking. It supports both virtualenv-oriented stuff (a la pipenv) and normal stuff (a la pip and friends) while also providing backwards compatibility to those tools when you elect to upload your project managed by poetry to PyPI.

Comment 5 Raphael Groner 2019-01-25 20:15:35 UTC
(In reply to Neal Gompa from comment #4)
> (In reply to Fabio Valentini from comment #3)
…

Great, thanks for your explanations.

Comment 6 Orion Poplawski 2019-04-02 02:05:38 UTC
Neal - any progress here?

Comment 7 Neal Gompa 2019-04-02 05:01:53 UTC
(In reply to Orion Poplawski from comment #6)
> Neal - any progress here?

I'm waiting to resolve bug 1666293. Once that's done, I can process the rest of it.

Comment 8 Fabio Valentini 2019-04-27 10:11:53 UTC
Just FYI, poetry claims to be incompatible with requests-toolbelt >= 0.9.0, and on f30, 0.9.1 is available.
I'm not sure if we should continue working on this. The upstream developer acts like he's hostile (or completely indifferent) regarding distribution packaging.

Comment 9 Fabio Valentini 2019-05-12 14:18:21 UTC
I officially give up, as the upstream developer has not reacted at all to any of of the relevant, open bug reports blocking this package for months.

https://github.com/sdispater/poetry/issues/866
https://github.com/sdispater/cachy/issues/2
https://github.com/sdispater/pastel/issues/5
https://github.com/toastdriven/pylev/issues/11