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

Repository "private" does not exist | Since 1.1.0 #3114

Open
3 tasks done
RobinFrcd opened this issue Oct 7, 2020 · 19 comments
Open
3 tasks done

Repository "private" does not exist | Since 1.1.0 #3114

RobinFrcd opened this issue Oct 7, 2020 · 19 comments
Labels
area/repo Meta-issues for the repository/forge itself kind/bug Something isn't working as expected status/triage This issue needs to be triaged

Comments

@RobinFrcd
Copy link

RobinFrcd commented Oct 7, 2020

[[tool.poetry.source]]
name = "private"
url = "https://my.private.repo/simple"
secondary = true

Issue

When running a poetry install with a private repo (poetry config http-basic.private is set correctly), I get:

  Stack trace:

  7  /usr/local/lib/python3.7/site-packages/poetry/installation/executor.py:199 in _execute_operation
      197│
      198│             try:
    → 199│                 result = self._do_execute_operation(operation)
      200│             except EnvCommandError as e:
      201│                 if e.e.returncode == -2:

  6  /usr/local/lib/python3.7/site-packages/poetry/installation/executor.py:273 in _do_execute_operation
      271│             return 0
      272│
    → 273│         result = getattr(self, "_execute_{}".format(method))(operation)
      274│
      275│         if result != 0:

  5  /usr/local/lib/python3.7/site-packages/poetry/installation/executor.py:408 in _execute_install
      406│
      407│     def _execute_install(self, operation):  # type: (Install) -> None
    → 408│         return self._install(operation)
      409│
      410│     def _execute_update(self, operation):  # type: (Update) -> None

  4  /usr/local/lib/python3.7/site-packages/poetry/installation/executor.py:434 in _install
      432│             archive = self._download_link(operation, Link(package.source_url))
      433│         else:
    → 434│             archive = self._download(operation)
      435│
      436│         operation_message = self.get_operation_message(operation)

  3  /usr/local/lib/python3.7/site-packages/poetry/installation/executor.py:575 in _download
      573│
      574│     def _download(self, operation):  # type: (Operation) -> Path
    → 575│         link = self._chooser.choose_for(operation.package)
      576│
      577│         return self._download_link(operation, link)

  2  /usr/local/lib/python3.7/site-packages/poetry/installation/chooser.py:60 in choose_for
       58│         """
       59│         links = []
    →  60│         for link in self._get_links(package):
       61│             if link.is_wheel and not Wheel(link.filename).is_supported_by_environment(
       62│                 self._env

  1  /usr/local/lib/python3.7/site-packages/poetry/installation/chooser.py:92 in _get_links
       90│                 repository = self._pool.repository("pypi")
       91│         else:
    →  92│             repository = self._pool.repository(package.source_reference)
       93│
       94│         links = repository.find_links_for_package(package)

  ValueError

  Repository "private" does not exist.

  at /usr/local/lib/python3.7/site-packages/poetry/repositories/pool.py:53 in repository
       49│
       50│         if name in self._lookup:
       51│             return self._repositories[self._lookup[name]]
       52│
    →  53│         raise ValueError('Repository "{}" does not exist.'.format(name))
       54│
       55│     def add_repository(
       56│         self, repository, default=False, secondary=False
       57│     ):  # type: (Repository, bool, bool) -> Pool

If I downgrade to 1.0.10, everything works fine. This error popped at the 1.1.0

@RobinFrcd RobinFrcd added kind/bug Something isn't working as expected status/triage This issue needs to be triaged labels Oct 7, 2020
@abn
Copy link
Member

abn commented Oct 7, 2020

@RobinFrcd can you provide a sanitised output of poetry config repository please?

@RobinFrcd
Copy link
Author

{'private': {'url': 'https://my.private.repo/simple/'}}

@abn
Copy link
Member

abn commented Oct 7, 2020

@RobinFrcd I am unable to reproduce this.

root@610e2455d140:/foobar# poetry add --source private foobar^C
root@610e2455d140:/foobar# cat pyproject.toml | tail -n 10

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

[[tool.poetry.source]]
name = "private"
url = "https://my.private.repo/simple"
secondary = true

root@610e2455d140:/foobar# poetry config repositories
{'private': {'url': 'https://my.private.repo/simple'}}
root@610e2455d140:/foobar# poetry  config http-basic.private username password
No suitable keyring backends were found
Using a plaintext file to store and retrieve credentials
root@610e2455d140:/foobar# poetry add --source private foobar

  ConnectionError

  HTTPSConnectionPool(host='my.private.repo', port=443): Max retries exceeded with url: /simple/foobar/ (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f84fe257040>: Failed to establish a new connection: [Errno -2] Name or service not known'))

  at /usr/local/lib/python3.8/site-packages/requests/adapters.py:516 in send
      512│             if isinstance(e.reason, _SSLError):
      513│                 # This branch is for urllib3 v1.22 and later.
      514│                 raise SSLError(e, request=request)
      515│ 
    → 516│             raise ConnectionError(e, request=request)
      517│ 
      518│         except ClosedPoolError as e:
      519│             raise ConnectionError(e, request=request)
      520│ 

@RobinFrcd
Copy link
Author

Well, the URL I gave as an example is not a valid one. I can't give the private repo I'm using for privacy reasons. The error I get is on the poetry install, not the add --source.

@RobinFrcd RobinFrcd changed the title Repository "private" does not exist | Since 1.0.0 Repository "private" does not exist | Since 1.1.0 Oct 7, 2020
@abn
Copy link
Member

abn commented Oct 7, 2020

@RobinFrcd yeah; I am aware; i just want to demonstrate that the code got past the credential fetching.

@abn
Copy link
Member

abn commented Oct 7, 2020

Can you maybe try in a container or a clean environent? Just want to make sure this is not somehting environment specific.

@RobinFrcd
Copy link
Author

Alright, I managed to make it work by tweaking the toml. I moved tool.poetry.dependencies to the top.

I had (which is working on 1.0.10 but not on 1.1.0+)

[[tool.poetry.source]]
name = "private"
url = "https://my.private.repo/simple/"
secondary = true

[tool.poetry]
name = "metrics"
version = "0"
description = ""
authors = [""]

[tool.black]
line-length = 88
target-version = ['py37']
include = '\.pyi?$'
exclude = '''
/(
    \.eggs
  | \.git
  | \.hg
  | \.mypy_cache
  | \.tox
  | \.venv
  | _build
  | buck-out
  | build
  | dist
)/
'''

[tool.coverage.run]
omit = [
    'tests/*',
    '*_pb2.py',
    '*_pb2_grpc.py'
]

[tool.poetry.dependencies]
python = "^3.7"
google-api-python-client = "==1.9.1"
grpcio = "==1.29.0"
grpcio-status = "==1.29.0"
private-logger = "==2.0.2"
protobuf = "==3.11.1"
sentry-sdk = "==0.15.1"
taskipy = ">=1.3.0"
numpy = "*"

[tool.poetry.dev-dependencies]
black = "==19.3b0"
flake8 = "==3.7.9"
mypy = "==0.770"

[tool.taskipy.tasks]
black = "black ."
mypy = "mypy . --ignore-missing-imports"
linter = "flake8 ."

And switched it to

[[tool.poetry.source]]
name = "private"
url = "https://my.private.repo/simple/"
secondary = true

[tool.poetry]
name = "metrics"
version = "0"
description = ""
authors = [""]

[tool.poetry.dependencies]
python = "^3.7"
google-api-python-client = "==1.9.1"
grpcio = "==1.29.0"
grpcio-status = "==1.29.0"
private-logger = "==2.0.2"
protobuf = "==3.11.1"
sentry-sdk = "==0.15.1"
taskipy = ">=1.3.0"
numpy = "*"

[tool.poetry.dev-dependencies]
black = "==19.3b0"
flake8 = "==3.7.9"
mypy = "==0.770"

[tool.black]
line-length = 88
target-version = ['py37']
include = '\.pyi?$'
exclude = '''
/(
    \.eggs
  | \.git
  | \.hg
  | \.mypy_cache
  | \.tox
  | \.venv
  | _build
  | buck-out
  | build
  | dist
)/
'''

[tool.coverage.run]
omit = [
    'tests/*',
    '*_pb2.py',
    '*_pb2_grpc.py'
]

[tool.taskipy.tasks]
black = "black ."
mypy = "mypy . --ignore-missing-imports"
linter = "flake8 ."

And now it works with 1.1.0+.

So I don't know if we should close the issue, I think it's still a bug.

@ChameleonTartu
Copy link

I get a similar issue with the 1.1.2 version. link-python-common is a private repo project.

  • Installing link-python-common (1.0.0): Failed

  RuntimeError

  Unable to find installation candidates for link-python-common (1.0.0)

  at ~/.poetry/lib/poetry/installation/chooser.py:73 in choose_for
       69│             links.append(link)
       70│ 
       71│         if not links:
       72│             raise RuntimeError(
    →  73│                 "Unable to find installation candidates for {}".format(package)
       74│             )
       75│ 
       76│         # Get the best link
       77│         chosen = max(links, key=lambda link: self._sort_key(package, link))

Example of toml file:

[[tool.poetry.source]]
name = "example-test-pypi"
url = "https://exmaple-url-pypi/pypi"
secondary=true

[tool.poetry]
name = "my-example-project-toml"
version = "0.1.0"
description = ""

[tool.poetry.dependencies]
python = "^3.7.7"
link-python-common = "^1.0.0"
xmljson = "^0.2.0"
returns = "^0.13.0"
typing_extensions = "3.7.4"
attrs = "19.1.0"
defusedxml = "^0.6.0"

[tool.poetry.dev-dependencies]
pytest = "^5.1"
mypy = "^0.770.0"
wemake-python-styleguide = "^0.14.0"
pre-commit = "^1.18"
requests = "^2.23.0"

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

Also, I set poetry config http-basic.example-test-pypi my_example_pypy_user my_example_pypi_password

Is there anything I can do to fix this? I can make a PR if you guide me on where and what should be fixed.

@finswimmer finswimmer added the area/repo Meta-issues for the repository/forge itself label Oct 16, 2020
@SharpEdgeMarshall
Copy link

@ChameleonTartu same issue as yours

@akoltsov-spoton
Copy link

akoltsov-spoton commented Dec 11, 2020

Workaround pip install -U 'poetry<1.1.0'
failed with 1.1.0-1.1.4

@ebr
Copy link

ebr commented Mar 16, 2021

Not sure if 👍 s are tracked on this issue, but I can reproduce this exactly. Poetry version 1.1.4.

@sfontana
Copy link

I experience the same problem with version 1.1.6. Downgrading to 1.0.10 works.

@Teivaz
Copy link

Teivaz commented Oct 28, 2021

I have had the same issue. In my case I had sections in toml file in the following order:

[[tool.poetry.source]]
[tool.black]
[tool.pytest.ini_options]
[tool.poetry.scripts]
[tool.poetry]
[tool.poetry.dependencies]
[tool.poetry.dev-dependencies]
[build-system]

Managed to fix it by moving the tool.poetry.scripts after tool.poetry

@xmnlab
Copy link

xmnlab commented Apr 11, 2023

I am having a similar issue.

This is the command I am executing (I am replacing here the original names by placeholders):

poetry add git+ssh://[email protected]:<org>/<repo>.git#master --verbose
 HangupException

  The remote server unexpectedly closed the connection.

  at ~/mambaforge/envs/myenv/lib/python3.8/site-packages/dulwich/protocol.py:214 in read_pkt_line
      210│ 
      211│         try:
      212│             sizestr = read(4)
      213│             if not sizestr:
    → 214│                 raise HangupException()
      215│             size = int(sizestr, 16)
      216│             if size == 0:
      217│                 if self.report_activity:
      218│                     self.report_activity(4, "read")

The following error occurred when trying to handle this error:


  GitProtocolError

  Repository not found.

  at ~/mambaforge/envs/myenv/lib/python3.8/site-packages/dulwich/client.py:1103 in fetch_pack
      1099│         with proto:
      1100│             try:
      1101│                 refs, server_capabilities = read_pkt_refs(proto.read_pkt_seq())
      1102│             except HangupException as exc:
    → 1103│                 raise _remote_error_from_stderr(stderr) from exc
      1104│             (
      1105│                 negotiated_capabilities,
      1106│                 symrefs,
      1107│                 agent,
$ poetry --version
Poetry (version 1.4.2)

@DennisSchwartz
Copy link

I ran into this using poetry 1.6.1 when changing the private repository to be supplemental and specifying the source of my private package as the private repo directly.

Turns out deleting poetry.lock and then running install has solved the problem for me.

@SamuelSmets
Copy link

SamuelSmets commented Feb 14, 2024

Is there a decent fix for this issue. I'm using poetry 1.6.1 like @DennisSchwartz , but removing the poetry.lock file and running poetry install didn't fix the problem for me. I'm a bit lost now.

@abn
Copy link
Member

abn commented Mar 4, 2024

@xmnlab your reported issue not related to the issue discussed here. It looks like you don't have the right keys configured or your network dropped out.

@SamuelSmets can you please provide more details or better yet maybe raise a new issue with specific details? I'd recommend you test first with the latest poetry version.

@chdemko
Copy link

chdemko commented Apr 11, 2024

I solve the issue for me by running:

poetry config keyring.enabled false

@istvan-andrasi
Copy link

I've found this open issue with the same problem, but upgrading from 1.7.1 to 1.8.3 fixed it for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/repo Meta-issues for the repository/forge itself kind/bug Something isn't working as expected status/triage This issue needs to be triaged
Projects
None yet
Development

No branches or pull requests