volta icon indicating copy to clipboard operation
volta copied to clipboard

a better way to use pnpm link in the volta?

Open Lemonnnnnnnnnnn opened this issue 1 year ago • 0 comments

I find the sentence in the volta official website:

Currently, global installations (e.g. pnpm install -g) are not supported and will result in an error

Is it mean that if I want to use pnpm link debug local package, the only way is use relative path "pnpm link <dir>", any better solution?

Lemonnnnnnnnnnn avatar Sep 24 '24 03:09 Lemonnnnnnnnnnn

Running with -vvv:

  17: fact: google-api-python-client (2.39.0) depends on httplib2 (>=0.15.0,<1dev)
  17: fact: google-api-python-client (2.39.0) depends on google-auth (>=1.16.0,<3.0.0dev)
  17: fact: google-api-python-client (2.39.0) depends on google-auth-httplib2 (>=0.1.0)
  17: fact: google-api-python-client (2.39.0) depends on google-api-core (>=1.21.0,<3.0.0dev)
  17: fact: google-api-python-client (2.39.0) depends on uritemplate (>=3.0.1,<5)
  17: selecting google-api-python-client (2.39.0)
  17: derived: uritemplate (>=3.0.1,<5)
  17: derived: google-api-core (>=1.21.0,<3.0.0dev)
  17: Version solving took 60.370 seconds.
  17: Tried 17 solutions.

  Stack trace:

  18  ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/cleo/application.py:327 in run
       325│ 
       326│             try:
     → 327│                 exit_code = self._run(io)
       328│             except BrokenPipeError:
       329│                 # If we are piped to another process, it may close early and send a

  17  ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/poetry/console/application.py:190 in _run
       188│         self._load_plugins(io)
       189│ 
     → 190│         exit_code: int = super()._run(io)
       191│         return exit_code
       192│ 

  16  ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/cleo/application.py:431 in _run
       429│             io.input.interactive(interactive)
       430│ 
     → 431│         exit_code = self._run_command(command, io)
       432│         self._running_command = None
       433│ 

  15  ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/cleo/application.py:473 in _run_command
       471│ 
       472│         if error is not None:
     → 473│             raise error
       474│ 
       475│         return terminate_event.exit_code

  14  ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/cleo/application.py:457 in _run_command
       455│ 
       456│             if command_event.command_should_run():
     → 457│                 exit_code = command.run(io)
       458│             else:
       459│                 exit_code = ConsoleCommandEvent.RETURN_CODE_DISABLED

  13  ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/cleo/commands/base_command.py:119 in run
       117│         io.input.validate()
       118│ 
     → 119│         status_code = self.execute(io)
       120│ 
       121│         if status_code is None:

  12  ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/cleo/commands/command.py:62 in execute
        60│ 
        61│         try:
     →  62│             return self.handle()
        63│         except KeyboardInterrupt:
        64│             return 1

  11  ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/poetry/console/commands/update.py:49 in handle
        47│         self.installer.update(True)
        48│ 
     →  49│         return self.installer.run()
        50│ 

  10  ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/poetry/installation/installer.py:104 in run
       102│             self.verbose(True)
       103│ 
     → 104│         return self._do_install()
       105│ 
       106│     def dry_run(self, dry_run: bool = True) -> Installer:

   9  ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/poetry/installation/installer.py:241 in _do_install
       239│                 source_root=self._env.path.joinpath("src")
       240│             ):
     → 241│                 ops = solver.solve(use_latest=self._whitelist).calculate_operations()
       242│         else:
       243│             self._io.write_line("Installing dependencies from lock file")

   8  ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/poetry/puzzle/solver.py:72 in solve
        70│         with self._progress(), self._provider.use_latest_for(use_latest or []):
        71│             start = time.time()
     →  72│             packages, depths = self._solve()
        73│             end = time.time()
        74│ 

   7  ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/poetry/puzzle/solver.py:155 in _solve
       153│ 
       154│         try:
     → 155│             result = resolve_version(self._package, self._provider)
       156│ 
       157│             packages = result.packages

   6  ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/poetry/mixology/__init__.py:18 in resolve_version
        16│     solver = VersionSolver(root, provider)
        17│ 
     →  18│     return solver.solve()
        19│ 

   5  ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/poetry/mixology/version_solver.py:163 in solve
       161│             next: str | None = self._root.name
       162│             while next is not None:
     → 163│                 self._propagate(next)
       164│                 next = self._choose_package_version()
       165│ 

   4  ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/poetry/mixology/version_solver.py:192 in _propagate
       190│                     continue
       191│ 
     → 192│                 result = self._propagate_incompatibility(incompatibility)
       193│ 
       194│                 if result is _conflict:

   3  ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/poetry/mixology/version_solver.py:267 in _propagate_incompatibility
       265│         self._log(f"derived: {adverb}{unsatisfied.dependency}")
       266│ 
     → 267│         self._solution.derive(
       268│             unsatisfied.dependency, not unsatisfied.is_positive(), incompatibility
       269│         )

   2  ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/poetry/mixology/partial_solution.py:100 in derive
        98│         Adds an assignment of package as a derivation.
        99│         """
     → 100│         self._assign(
       101│             Assignment.derivation(
       102│                 dependency,

   1  ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/poetry/mixology/partial_solution.py:115 in _assign
       113│         """
       114│         self._assignments.append(assignment)
     → 115│         self._register(assignment)
       116│ 
       117│     def backtrack(self, decision_level: int) -> None:

  AssertionError

  

  at ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/poetry/mixology/partial_solution.py:160 in _register
      156│         old_negative = self._negative.get(name)
      157│         term = (
      158│             assignment if old_negative is None else assignment.intersect(old_negative)
      159│         )
    → 160│         assert term is not None
      161│ 
      162│         if term.is_positive():
      163│             if name in self._negative:
      164│                 del self._negative[name]

david26694 avatar Sep 05 '23 09:09 david26694

if you can't share a pyproject.toml that reproduces this there's little chance that you can be helped

it probably has something to do with an unusual version number somewhere in your tree - a release candidate or a dev version or whatever.

But if you're unable or unwilling to enable anyone else to reproduce this, you're likely on your own - sorry.

dimbleby avatar Sep 05 '23 11:09 dimbleby

also we probably might as well assume it's a duplicate of #8202

dimbleby avatar Sep 05 '23 11:09 dimbleby