little-angry-clouds / homebrew-my-brews

1 stars 1 forks source link

brew tap invalid formula? #25

Closed davebarr closed 2 years ago

davebarr commented 3 years ago

adding the tap fails with brew tap little-angry-clouds/my-brews

==> Tapping little-angry-clouds/my-brews
Cloning into '/opt/homebrew/Library/Taps/little-angry-clouds/homebrew-my-brews'...
remote: Enumerating objects: 216, done.
remote: Counting objects: 100% (91/91), done.
remote: Compressing objects: 100% (87/87), done.
remote: Total 216 (delta 37), reused 13 (delta 4), pack-reused 125
Receiving objects: 100% (216/216), 36.62 KiB | 2.03 MiB/s, done.
Resolving deltas: 100% (75/75), done.
Error: Invalid formula: /opt/homebrew/Library/Taps/little-angry-clouds/homebrew-my-brews/Formula/particle.rb
formulae require at least a URL
Error: Cannot tap little-angry-clouds/my-brews: invalid syntax in tap!
alexppg commented 3 years ago

Hey, thanks for reporting! What OS and brew version are you using? I've just executed a quick test with docker and it worked as expected:

❯ docker run -ti --user 1000 linuxbrew/brew:3.2.5 brew tap little-angry-clouds/my-brews
Updating Homebrew...
==> Homebrew has enabled anonymous aggregate formula and cask analytics.
Read the analytics documentation (and how to opt-out) here:
  https://docs.brew.sh/Analytics
No analytics have been recorded yet (nor will be during this `brew` run).

==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
  https://github.com/Homebrew/brew#donations
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> New Formulae
abricate                bubblewrap              docuum                  ghostunnel              librespot               notcurses               rsc_2fa                 viu
age                     bupstash                dotbot                  go@1.16                 librist                 opensearch-dashboards   sail                    vue-cli
airspyhf                cargo-bloat             drill                   h2c                     lit                     osc-cli                 selene                  wildmidi
alembic                 cargo-llvm-lines        eigenpy                 htmlq                   locust                  ots                     solana                  xauth
ansilove                cargo-outdated          esbuild                 hubble                  mailcatcher             pari-elldata            spirv-llvm-translator   xsel
artillery               chrpath                 f2                      i2c-tools               microsocks              pari-galdata            spot                    yt-dlp
atop                    cilium-cli              fann                    influxdb-cli            mimalloc                pari-galpol             sql-lint
bash_unit               cosign                  fanyi                   joplin-cli              mrbayes                 pari-seadata            stylua
basis_universal         cppzmq                  fastq-tools             jpdfbookmarks           msgpack-cxx             pari-seadata-big        uftrace
bat-extras              cruft                   firefoxpwa              kn                      murex                   pyoxidizer              umple
bbtools                 cue                     flamebearer             libaec                  nanoflann               reproc                  vespa-cli
bioperl                 datree                  fst                     libmng                  newrelic-infra-agent    rollup                  vite
==> Updated Formulae
Updated 2600 formulae.
==> Renamed Formulae
kafkacat -> kcat                                                                                 prestosql -> trino
==> Deleted Formulae
badtouch                        giter8                          minimal-python                  procyon-decompiler              python-dbus                     tj
boost@1.57                      libinfinity                     parallelstl                     protobuf@3.7                    terraform-provisioner-ansible

==> Tapping little-angry-clouds/my-brews
Cloning into '/home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/little-angry-clouds/homebrew-my-brews'...
remote: Enumerating objects: 216, done.
remote: Counting objects: 100% (91/91), done.
remote: Compressing objects: 100% (87/87), done.
remote: Total 216 (delta 37), reused 13 (delta 4), pack-reused 125
Receiving objects: 100% (216/216), 36.62 KiB | 614.00 KiB/s, done.
Resolving deltas: 100% (75/75), done.
Tapped 4 formulae (16 files, 113.5KB).
davebarr commented 3 years ago

Here's the output of brew config

HOMEBREW_VERSION: 3.2.11
ORIGIN: https://github.com/Homebrew/brew
HEAD: 84f4fbf3cf5e83d33de0b28b2658fcb50aaa761e
Last commit: 9 days ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: d300cd5374e5ba162947ef1365279dc9d37e615f
Core tap last commit: 24 hours ago
Core tap branch: master
HOMEBREW_PREFIX: /opt/homebrew
HOMEBREW_CASK_OPTS: []
HOMEBREW_MAKE_JOBS: 8
Homebrew Ruby: 2.6.3 => /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby
CPU: octa-core 64-bit arm_firestorm_icestorm
Clang: 12.0.5 build 1205
Git: 2.30.1 => /Applications/Xcode.app/Contents/Developer/usr/bin/git
Curl: 7.64.1 => /usr/bin/curl
macOS: 11.5.2-arm64
CLT: 12.5.1.0.1.1623191612
Xcode: 12.5.1
Rosetta 2: false
alexppg commented 3 years ago

Not really sure how to proceed, from my computer it works and I've tried from a clean docker Image. The only difference I see is that you use Mac. @romancin could you please try to reproduce this?

romancin commented 3 years ago

Of course! I will try to help. @davebarr viewing the output of brew config, we can see you are using Apple Silicon. @alexppg The problem is that particle.rb formula only contains URL for Intel on macOS:

on_macos do
    if Hardware::CPU.intel?
      url "https://github.com/little-angry-clouds/particle/releases/download/v0.0.8/particle_0.0.8_darwin_amd64.tar.gz"
      sha256 "3a930819203cde6f917e1b6cf88f38eb75c634210d931e862d077c0d8dcb466a"
    end
  end

To fix this, we also need a formula for arm also on macOS on that file.

Said that, @davebarr I don’t think installing helmenv, kbenv or ocenv on Apple Silicon brew is a good idea if you are going to work with old kubernetes versions.

This is because these tools will search for arm64 darwin architecture when trying to download kubectl from the official URLs, and these tools were not compiled for darwin arm64 until 1.21 version, as you can see on this browsable storage: https://gcsweb.k8s.io/gcs/kubernetes-release/release/?marker=release%2fv1.20.4-rc.0%2f

In case of Helm, darwin arm64 is only available since 3.6.0.

In my case, I also have Apple Silicon, but I have 2 different brew versions installed: One using Rosetta 2 installed on /usr/local (this is the one I use to install helmenv, kbenv and ocenv), and the other one like you, over /opt for native brew for Apple Silicon. I have in my zshrc a function called ibrew that calls Rosetta 2 enabled brew to make things easier.

If you think this can be a good idea for you too, I can help you to achieve the same configuration.

davebarr commented 3 years ago

Ah good point about the old kubernetes versions. That's a good idea about having another brew install, I will check that out. In the meantime I was able to get it installed under rosetta by just doing

arch -x86_64 brew tap little-angry-clouds/my-brews

and the install went successfully. (this was after installing rosetta, of course)

Thanks for the help!

alexppg commented 3 years ago

Thanks to both of you! Should I add some kind of documentation for other people that have corner issues like this, or is this really not usual?

romancin commented 3 years ago

@alexppg maybe we can do two things:

alexppg commented 3 years ago

Nice, thanks! I didn't understand anything about Silica and rosetta, it's usual to have multiple brew installations? Should I add something in the readme?

alexppg commented 3 years ago

I've regenerated the latest version to add more macos archs. Could you download one manually and say if it works for you? In the next real release, it will be added properly to the formula. https://github.com/little-angry-clouds/particle/releases/tag/v0.0.8

davebarr commented 3 years ago

it works now, thanks!

alexppg commented 2 years ago

Hey @romancin I created a fake release on particle just to add the recipes in here. Could you please confirm that it works as expected know?

gtfortytwo commented 2 years ago

Do you ever intend to release the support for Apple silicon? I'm migrating from Win/WSL and already really miss kbenv in particular. kubectl is pretty finicky about version skew, but they've been building ARM-native binaries for long enough that it covers my use cases. I've not been able to figure out how to translate the comments here into something usable as-is, but would be happy to help test a release with further direction. Thanks!

alexppg commented 2 years ago

I do, I'll update it here https://github.com/little-angry-clouds/homebrew-my-brews/issues/27 and close this issue since it seems it should work.