digital-fabric / polyphony

Fine-grained concurrency for Ruby
https://www.rubydoc.info/gems/polyphony
MIT License
661 stars 17 forks source link

Error installing polyphony and tipi on osx #103

Closed konung closed 1 year ago

konung commented 1 year ago

Hi.

Was just reading about polyphony on RubyWeekly and discovered tipi. Wanted to try them both out.

Running into a problem when trying to install tipi ( either as a system-wide gem or using bundler)

This for a simple ad-hoc test comparing phlex vs haml vs slim vs papercraft vs erb ( 🤦 -> I new about papercraft, but just discovered the rest of gems from @digital-fabric 🤦 )

https://github.com/konung/hanami-phlex-test-idea

Here are the error details.

` 3.2.2 î‚° ~/Code/ruby/hanami/hanami-phlex-test-idea î‚° î‚  main î‚°

bundle add tipi 10.1s  Thu May 18 18:32:35 2023 Fetching gem metadata from https://rubygems.org/....... Resolving dependencies... Fetching gem metadata from https://rubygems.org/....... Resolving dependencies... Using rake 13.0.6 Using ruby2_keywords 0.0.5 Using ast 2.4.2 Using escape_utils 1.2.2 Using ever 0.2 Using dry-logger 1.0.3 Using bundler 2.4.7 Using ffi 1.15.5 Using diff-lcs 1.5.0 Using dotenv 2.8.1 Using lumberjack 1.2.8 Using zeitwerk 2.6.8 Using method_source 1.0.0 Using nenv 0.3.0 Using faraday-net_http 3.0.2 Using nio4r 2.5.9 Using h1p 0.6 Using byebug 11.1.3 Using tilt 2.1.0 Using rack 2.2.7 Using coderay 1.1.3 Using concurrent-ruby 1.2.2 Using rspec-support 3.12.0 Using http-2 0.11.0 Using json 2.6.3 Using rexml 3.2.5 Using kwalify 0.7.2 Using language_server-protocol 3.17.0.3 Using formatador 1.1.0 Using guard-compat 1.2.1 Using msgpack 1.4.5 Using localhost 1.1.10 Using amazing_print 1.4.0 Using dry-initializer 3.1.1 Using extralite 1.26 Using rouge 3.27.0 Using temple 0.10.1 Using parallel 1.23.0 Using ruby-progressbar 1.13.0 Using dry-cli 1.0.0 Using dry-files 1.0.1 Using websocket 1.2.9 Using parser 3.2.2.1 Using qeweney 0.18 Using rb-inotify 0.10.1 Using tty-color 0.6.0 Using dry-transformer 1.0.1 Using hansi 0.2.1 Using faraday 2.7.4 Using regexp_parser 2.8.0 Using yard 0.9.34 Using rainbow 3.1.1 Using pry 0.14.2 Using thor 1.2.2 Using rspec-core 3.12.2 Using unicode-display_width 2.4.2 Using kramdown 2.3.2 Using slim 5.1.1 Using pastel 0.8.0 Using dry-core 1.0.0 Using faraday-retry 2.1.0 Using hamlit 3.0.3 Using puma 6.2.2 Using haml 6.1.1 Using reek 6.1.4 Using hirb 0.7.3 Using rack-test 2.1.0 Using dry-events 1.0.1 Using rspec-expectations 3.12.3 Using rspec-mocks 3.12.5 Using lint_roller 1.0.0 Using acme-client 2.0.13 Using rubocop-ast 1.28.1 Using dry-configurable 1.0.1 Using standard-custom 1.0.0 Using dry-monitor 1.0.1 Using rb-fsevent 0.11.2 Using shellany 0.0.1 Using pry-theme 1.3.1 Using dry-auto_inject 1.0.1 Using mustermann 3.0.0 Using hanami-utils 2.0.3 Using dry-inflector 1.0.0 Using hanami-controller 2.0.2 Using dry-logic 1.5.0 Using cgi 0.3.6 Using rspec 3.12.0 Using dry-types 1.7.1 Using rubocop 1.50.2 Using pry-doc 1.4.0 Using listen 3.8.0 Using notiffany 0.1.3 Using mustermann-contrib 3.0.0 Using ruby_jard 0.2.0 Using dry-system 1.0.1 Using hanami-cli 2.0.3 Using kramdown-parser-gfm 1.1.0 Using hanami-rspec 2.0.1 Using dry-schema 1.13.1 Using rubocop-performance 1.16.0 Using guard 2.18.0 Using hanami-router 2.0.2 Using standard-performance 1.0.1 Using hanami 2.0.3 Using hanami-reloader 2.0.2 Using standard 1.28.2 Using dry-validation 1.10.0 Using erb 4.0.2 Using guard-puma 0.8.1 Using hanami-validations 2.0.1 Using papercraft 0.29 Using phlex 1.8.1 Installing polyphony 0.99.6 with native extensions --- ERROR REPORT TEMPLATE -------------------------------------------------------

Errno::EEXIST: File exists @ syserr_fail2_in - /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/polyphony-0.99.6/vendor/liburing/man/IO_URING_CHECK_VERSION.3
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/package.rb:458:in `symlink'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/package.rb:458:in `block in extract_tar_gz'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/package.rb:456:in `each'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/package.rb:456:in `extract_tar_gz'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/package.rb:392:in `block (2 levels) in extract_files'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/package/tar_reader.rb:60:in `each'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/package.rb:389:in `block in extract_files'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/package/file_source.rb:29:in `open'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/package/file_source.rb:29:in `with_read_io'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/package.rb:386:in `extract_files'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/installer.rb:852:in `extract_files'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.7/lib/bundler/rubygems_gem_installer.rb:26:in `install'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.7/lib/bundler/source/rubygems.rb:200:in `install'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.7/lib/bundler/installer/gem_installer.rb:54:in `install'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.7/lib/bundler/installer/gem_installer.rb:16:in `install_from_spec'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.7/lib/bundler/installer/parallel_installer.rb:167:in `do_install'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.7/lib/bundler/installer/parallel_installer.rb:158:in `block in worker_pool'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.7/lib/bundler/worker.rb:62:in `apply_func'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.7/lib/bundler/worker.rb:57:in `block in process_queue'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.7/lib/bundler/worker.rb:54:in `loop'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.7/lib/bundler/worker.rb:54:in `process_queue'
  /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.7/lib/bundler/worker.rb:90:in `block (2 levels) in create_threads'

Environment

Bundler       2.4.7
  Platforms   ruby, x86_64-darwin-22
Ruby          3.2.2p53 (2023-03-30 revision e51014f9c05aa65cbf203442d37fef7c12390015) [x86_64-darwin-22]
  Full Path   /Users/konung/.asdf/installs/ruby/3.2.2/bin/ruby
  Config Dir  /Users/konung/.asdf/installs/ruby/3.2.2/etc
RubyGems      3.4.10
  Gem Home    /Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0
  Gem Path    /Users/konung/.gem/ruby/3.2.0:/Users/konung/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0
  User Home   /Users/konung
  User Path   /Users/konung/.gem/ruby/3.2.0
  Bin Dir     /Users/konung/.asdf/installs/ruby/3.2.2/bin
OpenSSL
  Compiled    OpenSSL 3.1.0 14 Mar 2023
  Loaded      OpenSSL 3.1.0 14 Mar 2023
  Cert File   /Users/konung/.asdf/installs/ruby/3.2.2/openssl/ssl/cert.pem
  Cert Dir    /Users/konung/.asdf/installs/ruby/3.2.2/openssl/ssl/certs
Tools
  Git         2.40.1
  RVM         not installed
  rbenv       not installed
  chruby      not installed

Bundler Build Metadata

Built At          2023-02-15
Git SHA           5d717a27e0
Released Version  true

Bundler settings

build.nokogiri
  Set for the current user (/Users/konung/.bundle/config): "--use-system-libraries"
gem.changelog
  Set for the current user (/Users/konung/.bundle/config): true
gem.ci
  Set for the current user (/Users/konung/.bundle/config): "github"
gem.coc
  Set for the current user (/Users/konung/.bundle/config): true
gem.linter
  Set for the current user (/Users/konung/.bundle/config): "standard"
gem.mit
  Set for the current user (/Users/konung/.bundle/config): true
gem.test
  Set for the current user (/Users/konung/.bundle/config): "rspec"

Gemfile

Gemfile

# frozen_string_literal: true

source "https://rubygems.org"

gem "hanami", "~> 2.0"
gem "hanami-router", "~> 2.0"
gem "hanami-controller", "~> 2.0"
gem "hanami-validations", "~> 2.0"

gem "dry-types", "~> 1.0", ">= 1.6.1"
gem "puma"
gem "rake"

# Views
gem "haml", "~> 6"
gem "phlex", "~> 1"

group :development, :test do
  gem "dotenv"
end

group :cli, :development do
  gem "hanami-reloader"
end

group :cli, :development, :test do
  gem "hanami-rspec"
end

group :development do
  gem "guard-puma", "~> 0.8"
  gem "ruby_jard", "~> 0"
  gem "amazing_print", "~> 1.4"
  gem "pry-doc", "~> 1.4"
  gem "pry-theme", "~> 1.3"
  gem "hirb", "~> 0.7.3"
  gem "standard", "~> 1.24"
  gem "reek", "~> 6.1"
end

group :test do
  gem "rack-test"
end

gem "slim", "~> 5.0"
gem "hamlit", "~> 3.0"
gem "erb", "~> 4.0"

gem "papercraft", "~> 0.27"

gem "tipi", "~> 0.53"

Gemfile.lock

GEM
  remote: https://rubygems.org/
  specs:
    acme-client (2.0.13)
      faraday (>= 1.0, < 3.0.0)
      faraday-retry (>= 1.0, < 3.0.0)
    amazing_print (1.4.0)
    ast (2.4.2)
    byebug (11.1.3)
    cgi (0.3.6)
    coderay (1.1.3)
    concurrent-ruby (1.2.2)
    diff-lcs (1.5.0)
    dotenv (2.8.1)
    dry-auto_inject (1.0.1)
      dry-core (~> 1.0)
      zeitwerk (~> 2.6)
    dry-cli (1.0.0)
    dry-configurable (1.0.1)
      dry-core (~> 1.0, < 2)
      zeitwerk (~> 2.6)
    dry-core (1.0.0)
      concurrent-ruby (~> 1.0)
      zeitwerk (~> 2.6)
    dry-events (1.0.1)
      concurrent-ruby (~> 1.0)
      dry-core (~> 1.0, < 2)
    dry-files (1.0.1)
    dry-inflector (1.0.0)
    dry-initializer (3.1.1)
    dry-logger (1.0.3)
    dry-logic (1.5.0)
      concurrent-ruby (~> 1.0)
      dry-core (~> 1.0, < 2)
      zeitwerk (~> 2.6)
    dry-monitor (1.0.1)
      dry-configurable (~> 1.0, < 2)
      dry-core (~> 1.0, < 2)
      dry-events (~> 1.0, < 2)
    dry-schema (1.13.1)
      concurrent-ruby (~> 1.0)
      dry-configurable (~> 1.0, >= 1.0.1)
      dry-core (~> 1.0, < 2)
      dry-initializer (~> 3.0)
      dry-logic (>= 1.4, < 2)
      dry-types (>= 1.7, < 2)
      zeitwerk (~> 2.6)
    dry-system (1.0.1)
      dry-auto_inject (~> 1.0, < 2)
      dry-configurable (~> 1.0, < 2)
      dry-core (~> 1.0, < 2)
      dry-inflector (~> 1.0, < 2)
    dry-transformer (1.0.1)
      zeitwerk (~> 2.6)
    dry-types (1.7.1)
      concurrent-ruby (~> 1.0)
      dry-core (~> 1.0)
      dry-inflector (~> 1.0)
      dry-logic (~> 1.4)
      zeitwerk (~> 2.6)
    dry-validation (1.10.0)
      concurrent-ruby (~> 1.0)
      dry-core (~> 1.0, < 2)
      dry-initializer (~> 3.0)
      dry-schema (>= 1.12, < 2)
      zeitwerk (~> 2.6)
    erb (4.0.2)
      cgi (>= 0.3.3)
    escape_utils (1.2.2)
    ever (0.2)
    extralite (1.26)
    faraday (2.7.4)
      faraday-net_http (>= 2.0, < 3.1)
      ruby2_keywords (>= 0.0.4)
    faraday-net_http (3.0.2)
    faraday-retry (2.1.0)
      faraday (~> 2.0)
    ffi (1.15.5)
    formatador (1.1.0)
    guard (2.18.0)
      formatador (>= 0.2.4)
      listen (>= 2.7, < 4.0)
      lumberjack (>= 1.0.12, < 2.0)
      nenv (~> 0.1)
      notiffany (~> 0.0)
      pry (>= 0.13.0)
      shellany (~> 0.0)
      thor (>= 0.18.1)
    guard-compat (1.2.1)
    guard-puma (0.8.1)
      guard (~> 2.14)
      guard-compat (~> 1.2)
      puma (>= 4.0, < 7)
    h1p (0.6)
    haml (6.1.1)
      temple (>= 0.8.2)
      thor
      tilt
    hamlit (3.0.3)
      temple (>= 0.8.2)
      thor
      tilt
    hanami (2.0.3)
      bundler (>= 1.16, < 3)
      dry-configurable (~> 1.0, < 2)
      dry-core (~> 1.0, < 2)
      dry-inflector (~> 1.0, < 2)
      dry-logger (~> 1.0, < 2)
      dry-monitor (~> 1.0, >= 1.0.1, < 2)
      dry-system (~> 1.0, < 2)
      hanami-cli (~> 2.0)
      hanami-utils (~> 2.0)
      zeitwerk (~> 2.6)
    hanami-cli (2.0.3)
      bundler (~> 2.1)
      dry-cli (~> 1.0, < 2)
      dry-files (~> 1.0, >= 1.0.1, < 2)
      dry-inflector (~> 1.0, < 2)
      rake (~> 13.0)
      zeitwerk (~> 2.6)
    hanami-controller (2.0.2)
      dry-configurable (~> 1.0, < 2)
      dry-core (~> 1.0)
      hanami-utils (~> 2.0)
      rack (~> 2.0)
      zeitwerk (~> 2.6)
    hanami-reloader (2.0.2)
      hanami-cli (~> 2.0)
      zeitwerk (~> 2.6)
    hanami-router (2.0.2)
      mustermann (~> 3.0)
      mustermann-contrib (~> 3.0)
      rack (~> 2.0)
    hanami-rspec (2.0.1)
      hanami-cli (~> 2.0)
      rake (~> 13.0)
      rspec (~> 3.12)
      zeitwerk (~> 2.6)
    hanami-utils (2.0.3)
      concurrent-ruby (~> 1.0)
      dry-core (~> 1.0, < 2)
      dry-transformer (~> 1.0, < 2)
    hanami-validations (2.0.1)
      dry-validation (>= 1.10, < 2)
      zeitwerk (~> 2.6.0)
    hansi (0.2.1)
    hirb (0.7.3)
    http-2 (0.11.0)
    json (2.6.3)
    kramdown (2.3.2)
      rexml
    kramdown-parser-gfm (1.1.0)
      kramdown (~> 2.0)
    kwalify (0.7.2)
    language_server-protocol (3.17.0.3)
    lint_roller (1.0.0)
    listen (3.8.0)
      rb-fsevent (~> 0.10, >= 0.10.3)
      rb-inotify (~> 0.9, >= 0.9.10)
    localhost (1.1.10)
    lumberjack (1.2.8)
    method_source (1.0.0)
    msgpack (1.4.5)
    mustermann (3.0.0)
      ruby2_keywords (~> 0.0.1)
    mustermann-contrib (3.0.0)
      hansi (~> 0.2.0)
      mustermann (= 3.0.0)
    nenv (0.3.0)
    nio4r (2.5.9)
    notiffany (0.1.3)
      nenv (~> 0.1)
      shellany (~> 0.0)
    papercraft (0.29)
      escape_utils (~> 1.2.1)
      kramdown (~> 2.3.1)
      kramdown-parser-gfm (~> 1.1.0)
      rouge (~> 3.27.0)
    parallel (1.23.0)
    parser (3.2.2.1)
      ast (~> 2.4.1)
    pastel (0.8.0)
      tty-color (~> 0.5)
    phlex (1.8.1)
      concurrent-ruby (~> 1.2)
      erb (>= 4)
      zeitwerk (~> 2.6)
    polyphony (0.99.6)
    pry (0.14.2)
      coderay (~> 1.1)
      method_source (~> 1.0)
    pry-doc (1.4.0)
      pry (~> 0.11)
      yard (~> 0.9.11)
    pry-theme (1.3.1)
      coderay (~> 1.1)
    puma (6.2.2)
      nio4r (~> 2.0)
    qeweney (0.18)
      escape_utils (~> 1.2.1)
    rack (2.2.7)
    rack-test (2.1.0)
      rack (>= 1.3)
    rainbow (3.1.1)
    rake (13.0.6)
    rb-fsevent (0.11.2)
    rb-inotify (0.10.1)
      ffi (~> 1.0)
    reek (6.1.4)
      kwalify (~> 0.7.0)
      parser (~> 3.2.0)
      rainbow (>= 2.0, < 4.0)
    regexp_parser (2.8.0)
    rexml (3.2.5)
    rouge (3.27.0)
    rspec (3.12.0)
      rspec-core (~> 3.12.0)
      rspec-expectations (~> 3.12.0)
      rspec-mocks (~> 3.12.0)
    rspec-core (3.12.2)
      rspec-support (~> 3.12.0)
    rspec-expectations (3.12.3)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (~> 3.12.0)
    rspec-mocks (3.12.5)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (~> 3.12.0)
    rspec-support (3.12.0)
    rubocop (1.50.2)
      json (~> 2.3)
      parallel (~> 1.10)
      parser (>= 3.2.0.0)
      rainbow (>= 2.2.2, < 4.0)
      regexp_parser (>= 1.8, < 3.0)
      rexml (>= 3.2.5, < 4.0)
      rubocop-ast (>= 1.28.0, < 2.0)
      ruby-progressbar (~> 1.7)
      unicode-display_width (>= 2.4.0, < 3.0)
    rubocop-ast (1.28.1)
      parser (>= 3.2.1.0)
    rubocop-performance (1.16.0)
      rubocop (>= 1.7.0, < 2.0)
      rubocop-ast (>= 0.4.0)
    ruby-progressbar (1.13.0)
    ruby2_keywords (0.0.5)
    ruby_jard (0.2.0)
      byebug (>= 11.1.0)
      pastel (>= 0.7.4)
      pry (>= 0.13.0)
    shellany (0.0.1)
    slim (5.1.1)
      temple (~> 0.10.0)
      tilt (>= 2.1.0)
    standard (1.28.2)
      language_server-protocol (~> 3.17.0.2)
      lint_roller (~> 1.0)
      rubocop (~> 1.50.2)
      standard-custom (~> 1.0.0)
      standard-performance (~> 1.0.1)
    standard-custom (1.0.0)
      lint_roller (~> 1.0)
    standard-performance (1.0.1)
      lint_roller (~> 1.0)
      rubocop-performance (~> 1.16.0)
    temple (0.10.1)
    thor (1.2.2)
    tilt (2.1.0)
    tipi (0.53)
      acme-client (~> 2.0.9)
      ever (~> 0.1)
      extralite (~> 1.16)
      h1p (~> 0.5)
      http-2 (~> 0.11)
      localhost (~> 1.1.4)
      msgpack (~> 1.4.2)
      polyphony (~> 0.94)
      qeweney (~> 0.18)
      rack (>= 2.0.8, < 2.3.0)
      websocket (~> 1.2.8)
    tty-color (0.6.0)
    unicode-display_width (2.4.2)
    websocket (1.2.9)
    yard (0.9.34)
    zeitwerk (2.6.8)

PLATFORMS
  x86_64-darwin-22
  x86_64-linux

DEPENDENCIES
  amazing_print (~> 1.4)
  dotenv
  dry-types (~> 1.0, >= 1.6.1)
  erb (~> 4.0)
  guard-puma (~> 0.8)
  haml (~> 6)
  hamlit (~> 3.0)
  hanami (~> 2.0)
  hanami-controller (~> 2.0)
  hanami-reloader
  hanami-router (~> 2.0)
  hanami-rspec
  hanami-validations (~> 2.0)
  hirb (~> 0.7.3)
  papercraft (~> 0.27)
  phlex (~> 1)
  pry-doc (~> 1.4)
  pry-theme (~> 1.3)
  puma
  rack-test
  rake
  reek (~> 6.1)
  ruby_jard (~> 0)
  slim (~> 5.0)
  standard (~> 1.24)
  tipi

BUNDLED WITH
   2.4.7

--- TEMPLATE END ----------------------------------------------------------------`

haffla commented 1 year ago

Doesn't work for me either unfortunately on Macos Silicon. gem install polyphony fails with the same error that @konung reported.

Edit: Using Ruby 3.1.0 there is no problem it seems. 3.1.3 crashes with same error. Hope that helps.

noteflakes commented 1 year ago

Should be fixed in Polyphony 1.0.2. Please try installing Tipi 0.54 and let me know if you're still having problems.

haffla commented 1 year ago

Works now. Thanks!

konung commented 1 year ago

Works for me as well. Thank you!