thoth-station/micropipenv

[RFE] Support private package repositories

matt-carr opened this issue · 11 comments

Describe the solution you'd like

When poetry adds packages from private repositories, the package source type is "legacy". micropipenv does not support this ("micropipenv supports Git VCS or directories, got legacy instead"). This behaviour is supported via pipenv. It would be nice to have feature parity in this case.

goern commented

@fridex could you have a look at this and triage the issue?

@matt-carr Could you please post poetry.lock and pyproject.toml examples? The URL and package names can be adjusted, just to have a notion of what your use-case is.

goern commented

/kind feature
/priority important-soon
/triage needs-information
/assign @fridex

pyproject.toml

[tool.poetry]
name = "test"
version = "1.0.0"
description = ""
authors = ["Your Name <you@example.com>"]

[[tool.poetry.source]]
name = "private-pypi"
url = "https://pypicloud.mycompany.com/simple/"
secondary = true

[tool.poetry.dependencies]
python = "^3.8"
my-private-package = "1.2.3.4"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

poetry.lock

[[package]]
name = "my-private-package"
version = "1.2.3.4"
description = "description"
category = "main"
optional = false
python-versions = ">=3.6"

[package.dependencies]
python-dateutil = "*"
urllib3 = ">=1.25.3"

[package.source]
type = "legacy"
url = "https://pypicloud.mycompany.com/simple"
reference = "private-pypi"

[[package]]
name = "python-dateutil"
version = "2.8.2"
description = "Extensions to the standard Python datetime module"
category = "main"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"

[package.dependencies]
six = ">=1.5"

[[package]]
name = "six"
version = "1.16.0"
description = "Python 2 and 3 compatibility utilities"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"

[[package]]
name = "urllib3"
version = "1.26.8"
description = "HTTP library with thread-safe connection pooling, file post, and more."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"

[package.extras]
brotli = ["brotlipy (>=0.6.0)"]
secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]

[metadata]
lock-version = "1.1"
python-versions = "^3.8"
content-hash = "fb0baa26dcd8c3e35356f548aecbc04c9bfd4fd6d79a16957f1ad234c19a56b7"

[metadata.files]
my-private-package = [
    {file = "my-private-package-1.2.3.4-py3-none-any.whl", hash = "sha256:5845eba145344b69f5c837c80e75fe515a4978619494a7741324b62878d6c499"},
    {file = "my-private-package-1.2.3.4.tar.gz", hash = "sha256:3c5dd445da75a06977c6c2ef4407dba079e6ccbaa29860c8729c5a66a3424e6e"},
]
python-dateutil = [
    {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"},
    {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"},
]
six = [
    {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
    {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
]
urllib3 = [
    {file = "urllib3-1.26.8-py2.py3-none-any.whl", hash = "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed"},
    {file = "urllib3-1.26.8.tar.gz", hash = "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"},
]

command

➤ micropipenv requirements --method poetry
micropipenv supports Git VCS or directories, got legacy instead

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

/lifecycle stale

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

/lifecycle rotten

Bump? Still very interested in this (unless someone has handled it already in which case ignore me <3 )

Do you want to try to implement it?

Ah sorry not trying to be pushy, I just noticed it had been marked as important earlier and wasn't sure if it had been forgotten.

I'll have time in a couple months to try if nobody else has

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.

/close

@sesheta: Closing this issue.

In response to this:

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.