Troubleshooting heroku-cli with yay

I’m working on a Django project which is deployed to Heroku. I use the heroku-cli tool to interface between my local and remote hosts.

Every time I run a command, heroku-cli warns that it is out of date, such as here:

$ heroku login
   Warning: heroku update available from 7.50.0 to 7.54.1.

I can still login with my older version and work on my website but this has been a problem for some time. As you can see, I am 4 point releases away from the latest release. Over the past 6 months or so, I’ve been stuck at v7.50.0 and I watch as heroku-cli reports newer and newer updates become available. To rectify this, I run $ yay -Sy heroku-cli. Here is the output of that command:

› yay -Sy heroku-cli            
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
:: Checking for conflicts...
:: Checking for inner conflicts...
[Aur:1]  heroku-cli-7.56.0-1

  1 heroku-cli                               (Installed) (Build Files Exist)
==> Packages to cleanBuild?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> A
:: Deleting (1/1): /home/<user>/.cache/yay/heroku-cli
:: Downloaded PKGBUILD (1/1): heroku-cli
  1 heroku-cli                               (Installed) (Build Files Exist)
==> Diffs to show?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> N
:: (1/1) Parsing SRCINFO: heroku-cli
==> Making package: heroku-cli 7.56.0-1 (Wed 28 Jul 2021 11:18:44 PM EDT)
==> Retrieving sources...
  -> Cloning cli git repo...
Cloning into bare repository '/home/<user>/.cache/yay/heroku-cli/cli'...
remote: Enumerating objects: 77669, done.
remote: Counting objects: 100% (1394/1394), done.
remote: Compressing objects: 100% (730/730), done.
remote: Total 77669 (delta 891), reused 985 (delta 613), pack-reused 76275
Receiving objects: 100% (77669/77669), 23.04 MiB | 14.14 MiB/s, done.
Resolving deltas: 100% (52407/52407), done.
==> Validating source files with sha256sums...
    cli ... Skipped
==> Validating source files with sha512sums...
    cli ... Skipped
==> Making package: heroku-cli 7.56.0-1 (Wed 28 Jul 2021 11:18:50 PM EDT)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Updating cli git repo...
Fetching origin
==> Validating source files with sha256sums...
    cli ... Skipped
==> Validating source files with sha512sums...
    cli ... Skipped
==> Removing existing $srcdir/ directory...
==> Extracting sources...
  -> Creating working copy of cli git repo...
Cloning into 'cli'...
done.
Switched to a new branch 'makepkg'
==> Starting prepare()...
~/.cache/yay/heroku-cli/src ~/.cache/yay/heroku-cli/src
~/.cache/yay/heroku-cli/src/cli ~/.cache/yay/heroku-cli/src ~/.cache/yay/heroku-cli/src
yarn install v1.22.11
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
[4/5] Linking dependencies...
warning "workspace-aggregator-e7571fed-7512-4721-bf75-0fd034cb3f07 > @heroku-cli/plugin-addons-v5 > @oclif/plugin-legacy > @oclif/command@1.8.0" has unmet peer dependency "@oclif/config@^1".
[5/5] Building fresh packages...
Done in 39.83s.
~/.cache/yay/heroku-cli/src/cli/packages/cli ~/.cache/yay/heroku-cli/src/cli ~/.cache/yay/heroku-cli/src ~/.cache/yay/heroku-cli/src
npm WARN old lockfile 
npm WARN old lockfile The package-lock.json file was created with an old version of npm,
npm WARN old lockfile so supplemental metadata must be fetched from the registry.
npm WARN old lockfile 
npm WARN old lockfile This is a one-time fix-up, please be patient...
npm WARN old lockfile 
npm WARN deprecated @types/write-json-file@3.2.1: This is a stub types definition. write-json-file provides its own type definitions, so you do not need this installed.
npm WARN deprecated strip-eof@2.0.0: Renamed to `strip-final-newline` to better represent its functionality.
npm ERR! semver.simplifyRange is not a function

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/<user>/.npm/_logs/2021-07-29T03_20_31_085Z-debug.log
==> ERROR: A failure occurred in prepare().
    Aborting...
error making: heroku-cli

The error at the bottom refers to a log fail located inside my ~/.npm directory. Here are the contents of the full log file: 0 verbose cli [ '/usr/bin/node', '/usr/sbin/npm', 'install' ]1 info using npm@ - Pastebin.com

Is there any other information I could provide to better help you people help me?

1 Like

Hello @Drone4four :wink:

I don’t use it, but it is maybe better to use a tag instead of a commit id:

source=("git+https://github.com/heroku/cli.git#commit=${_commit_id}")

:arrow_down_small:

source=("git+https://github.com/heroku/cli.git#tag=v${pkgver}")

However… there is also a precompiled binary with the same version:

pamac build heroku-cli-bin
2 Likes

Thanks, @megavolt! This worked. Although I am curious, other than the contents of a new release, what is the difference between the repo packages heroku-cli and heroku-cli-bin? Like, what does -bin indicate?

-bin indicates “binary”. So a pre-compiled or already packaged binary.

heroku-cli-bin: https://github.com/SampsonCrowley/heroku-cli-bin.git

heroku-cli: https://github.com/heroku/cli.git

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.