rails / devcontainer

MIT License
63 stars 19 forks source link

bundler-cache feature breaks ruby-lsp and other default gem behavior #55

Open JeremiahChurch opened 1 month ago

JeremiahChurch commented 1 month ago

Love the boot time saves provided by bundler-cache but it breaks most default external gem behavior.

rails and other gems are not available on the command line after enabling bundler-cache as a feature

this prevents ruby-lsp and other common IDE add-ons from running correctly.

without bundler-cache feature:

vscode ➜ /workspaces/myapp (ad6c9fe7) $ rails
Beginning in Rails 4.....

vscode ➜ /workspaces/myapp (ad6c9fe7) $ ruby-lsp
server starts and everything works

with bundler-cache feature:

vscode ➜ /workspaces/myapp (ad6c9fe7) $ rails
bash: rails: command not found

vscode ➜ /workspaces/myapp (ad6c9fe7) $ ruby-lsp
Ruby LSP> Skipping custom bundle setup since /workspaces/myapp/.ruby-lsp/Gemfile.lock already exists and is up to date
Ruby LSP> Running bundle install for the custom bundle. This may take a while...
Ruby LSP> Command: (bundle check || bundle install) 1>&2
The Gemfile's dependencies are satisfied
bundler: failed to load command: ruby-lsp (/bundle/vendor/ruby/3.3.0/bin/ruby-lsp)
/bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/rubygems_integration.rb:308:in `block in replace_bin_path': can't find executable ruby-lsp for gem ruby-lsp. ruby-lsp is not currently included in the bundle, perhaps you meant to add it to your Gemfile?

I'm not enough of a smarty to know the right fix for this. I'm assuming a modification of the gem paths needs to be done but I'm unsure of the best way to implement that change within this feature bundle.

Would love if anyone has and ideas or pointers on the right direction of a fix. Thank you all <3

environment: unchanged Dockerfile for ruby 3.3.5, activestorage, postgres-client, github-cli & node devcontainer features

ryanjafari commented 1 month ago

Yes I've also experienced this... I think

My feeling was that it was some kind of timing issue with ruby-lsp being run before cache was built at devcontainer build

I played around with creating this cache using the devcontainer lifecycle hooks with... not 100% results... sometimes would work sometimes wouldn't :)

andrewn617 commented 1 month ago

Hi, sorry you are experiencing this issue. I am going to be away for a couple weeks starting tonight and I don't think I will have time to fix this today. @patriciomacadden maybe you can take a look? Probably we do need to do something with the bin path after all.

patriciomacadden commented 1 month ago

Hey everyone, thanks for the feedback! I haven't experienced this unfortunately.

I just created a new rails app by running rails-new devtest --devcontainer, and right before opening up vscode and building the container added the bundler-cache feature. Then I opened vscode and everything went as expected:

024-10-04 18:48:50.542 [info] (devtest) Checking if chruby is available on the path with command: /bin/bash -i -c 'chruby --version'
2024-10-04 18:48:50.564 [info] (devtest) Checking if rbenv is available on the path with command: /bin/bash -i -c 'rbenv --version'
2024-10-04 18:48:50.586 [info] (devtest) Discovered version manager rbenv
2024-10-04 18:48:50.586 [info] (devtest) Running command: `rbenv exec ruby -W0 -rjson -e 'STDERR.print("RUBY_LSP_ACTIVATION_SEPARATOR" + { env: ENV.to_h, yjit: !!defined?(RubyVM:: YJIT), version: RUBY_VERSION }.to_json + "RUBY_LSP_ACTIVATION_SEPARATOR")'` in /workspaces/devtest using shell: /bin/bash
2024-10-04 18:49:22.440 [info] (devtest) Ruby LSP> Running bundle install for the custom bundle. This may take a while...
Ruby LSP> Command: (bundle check || bundle install) 1>&2

2024-10-04 18:49:22.580 [info] (devtest) Bundler can't satisfy your Gemfile's dependencies.
Install missing gems with `bundle install`.

2024-10-04 18:49:24.018 [info] (devtest) Fetching gem metadata from https://rubygems.org/
2024-10-04 18:49:24.018 [info] (devtest) .
2024-10-04 18:49:24.187 [info] (devtest) .
2024-10-04 18:49:24.393 [info] (devtest) .
2024-10-04 18:49:24.445 [info] (devtest) .
2024-10-04 18:49:24.492 [info] (devtest) .
2024-10-04 18:49:24.505 [info] (devtest) .
2024-10-04 18:49:24.514 [info] (devtest) .
2024-10-04 18:49:24.516 [info] (devtest) .
2024-10-04 18:49:24.518 [info] (devtest) .
2024-10-04 18:49:24.956 [info] (devtest) 

2024-10-04 18:49:24.979 [info] (devtest) Resolving dependencies...

2024-10-04 18:49:25.512 [info] (devtest) Fetching prism 1.1.0

2024-10-04 18:49:25.513 [info] (devtest) Fetching sorbet-runtime 0.5.11595
Fetching rbs 3.6.1

2024-10-04 18:49:25.998 [info] (devtest) Installing prism 1.1.0 with native extensions

2024-10-04 18:49:26.622 [info] (devtest) Installing sorbet-runtime 0.5.11595

2024-10-04 18:49:26.645 [info] (devtest) Installing rbs 3.6.1 with native extensions

2024-10-04 18:49:38.389 [info] (devtest) Fetching ruby-lsp 0.19.0

2024-10-04 18:49:38.542 [info] (devtest) Installing ruby-lsp 0.19.0

2024-10-04 18:49:38.553 [info] (devtest) Fetching ruby-lsp-rails 0.3.17

2024-10-04 18:49:38.578 [info] (devtest) Installing ruby-lsp-rails 0.3.17

2024-10-04 18:49:38.586 [info] (devtest) Bundle complete! 18 Gemfile dependencies, 103 gems now installed.

2024-10-04 18:49:38.587 [info] (devtest) Bundled gems are installed into `/bundle/vendor`

2024-10-04 18:49:39.392 [info] (devtest) Initializing Ruby LSP v0.19.0...
2024-10-04 18:49:39.400 [info] (devtest) Using formatter specified by user: standard
2024-10-04 18:49:39.400 [info] (devtest) Auto detected linters: rubocop
2024-10-04 18:49:39.400 [info] (devtest) Detected test library: rails
2024-10-04 18:49:39.400 [info] (devtest) Finished initializing Ruby LSP!
2024-10-04 18:49:39.421 [info] (devtest) Activating Ruby LSP Rails add-on v0.3.17

2024-10-04 18:49:39.431 [info] (devtest) Ruby LSP Rails booting server

2024-10-04 18:49:39.760 [info] (devtest) Checking if chruby is available on the path with command: /bin/bash -i -c 'chruby --version'
2024-10-04 18:49:39.789 [info] (devtest) [Error - 6:49:39 PM] Server process exited with code 0.
2024-10-04 18:49:39.790 [info] (devtest) Checking if rbenv is available on the path with command: /bin/bash -i -c 'rbenv --version'
2024-10-04 18:49:39.814 [info] (devtest) Discovered version manager rbenv
2024-10-04 18:49:39.814 [info] (devtest) Running command: `rbenv exec ruby -W0 -rjson -e 'STDERR.print("RUBY_LSP_ACTIVATION_SEPARATOR" + { env: ENV.to_h, yjit: !!defined?(RubyVM:: YJIT), version: RUBY_VERSION }.to_json + "RUBY_LSP_ACTIVATION_SEPARATOR")'` in /workspaces/devtest using shell: /bin/bash
2024-10-04 18:49:40.121 [info] (devtest) Ruby LSP> Skipping custom bundle setup since /workspaces/devtest/.ruby-lsp/Gemfile.lock already exists and is up to date

2024-10-04 18:49:40.126 [info] (devtest) Ruby LSP> Running bundle install for the custom bundle. This may take a while...
Ruby LSP> Command: ((bundle check && bundle update ruby-lsp ruby-lsp-rails) || bundle install) 1>&2

2024-10-04 18:49:40.253 [info] (devtest) The Gemfile's dependencies are satisfied

2024-10-04 18:49:40.948 [info] (devtest) Fetching gem metadata from https://rubygems.org/
2024-10-04 18:49:40.949 [info] (devtest) .
2024-10-04 18:49:41.063 [info] (devtest) .
2024-10-04 18:49:41.101 [info] (devtest) .
2024-10-04 18:49:41.125 [info] (devtest) .
2024-10-04 18:49:41.145 [info] (devtest) .
2024-10-04 18:49:41.158 [info] (devtest) .
2024-10-04 18:49:41.165 [info] (devtest) .
2024-10-04 18:49:41.168 [info] (devtest) .
2024-10-04 18:49:41.170 [info] (devtest) .
2024-10-04 18:49:41.646 [info] (devtest) 

2024-10-04 18:49:41.664 [info] (devtest) Resolving dependencies...

2024-10-04 18:49:41.939 [info] (devtest) Resolving dependencies...

2024-10-04 18:49:42.206 [info] (devtest) Bundler attempted to update ruby-lsp but its version stayed the same
Bundler attempted to update ruby-lsp-rails but its version stayed the same

2024-10-04 18:49:42.206 [info] (devtest) Bundle updated!

2024-10-04 18:49:42.979 [info] (devtest) Initializing Ruby LSP v0.19.0...
2024-10-04 18:49:42.981 [info] (devtest) Using formatter specified by user: standard
2024-10-04 18:49:42.981 [info] (devtest) Auto detected linters: rubocop
2024-10-04 18:49:42.981 [info] (devtest) Detected test library: rails
2024-10-04 18:49:42.981 [info] (devtest) Finished initializing Ruby LSP!
2024-10-04 18:49:43.027 [info] (devtest) Activating Ruby LSP Rails add-on v0.3.17

2024-10-04 18:49:43.038 [info] (devtest) Ruby LSP Rails booting server

2024-10-04 18:49:43.747 [info] (devtest) Finished booting Ruby LSP Rails server

However, I did experience this right after adding it to an existing image, meaning that I had to run bundle install to install the gems in the new volume, but then it just worked too.

@JeremiahChurch have you run bundle install after adding the feature?

btw, as @andrewn617 and I discussed in #48 , rails is no longer in the $PATH because gems are now installed in /bundle/vendor/ruby/COMPATIBILITY_VERSION/bin, which is not in the $PATH. Adding this directory to the $PATH is a bit tricky because we can't tell what's the compatibility version of the current ruby (or at least, I haven't tried enough). There is a way you can add it back by changing the BUNDLE_BIN to somewhere like /bundle/bin and then add /bundle/bin to your $PATH, but we decided to leave this out of the scope of this feature.

Can you share your devcontainer.json file?

JeremiahChurch commented 1 month ago

@patriciomacadden

bundle install has been run - I'm able to dev without issue except having to do bundle exec rails s instead of rails s and similar

The best application I can demo this on is a bullettrain copy app

using effectively the dockerfile, compose.yaml & devcontainer.json from this PR https://github.com/bullet-train-co/bullet_train/pull/1620/files

the devcontainer postCreateCommand runs some scripts that run bundle install along with some other 'prep' actions.

while testing when the app is booting and running through installing the bundled gems without the bundle-cache feature enabled ruby-lsp starts and indexes before bundle install even completes.

uncommenting the bundle-cache feature and hitting rebuild on the devcontainer - the app boots without doing a bundle install as it's already cached but immediately pops the "Ruby LSP client: couldn't create connection to server" popup in the IDE. opening a terminal, running bundle install shows that everything is already installed correctly in the bundle. a 'retry' in the ruby LSP popup fails immediately afterwards.

image

my complete devcontainer.json

devcontainer.json
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/ruby
{
    "name": "demo",
    "dockerComposeFile": "compose.yaml",
    "service": "rails-app",
    "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",

    // Features to add to the dev container. More info: https://containers.dev/features.
    "features": {
      "ghcr.io/devcontainers/features/github-cli:1": {},
      "ghcr.io/devcontainers/features/node:1": {},
      "ghcr.io/rails/devcontainer/features/activestorage": {},
      "ghcr.io/rails/devcontainer/features/postgres-client": {},
      "ghcr.io/rails/devcontainer/features/bundler-cache:1": {}
    },

    "containerEnv": {
      "REDIS_URL": "redis://redis:6379/1",
      "PGHOST": "postgres",
      "PGUSER": "postgres",
      "PGPASSWORD": "postgres",
      "CAPYBARA_SERVER_PORT": "45678",
      "SELENIUM_HOST": "selenium"
       // "MEMCACHE_SERVERS": "memcached:11211"
    },

    // Use 'forwardPorts' to make a list of ports inside the container available locally.
    "forwardPorts": [3000, 5432, 6379],

    // Configure tool-specific properties.
    // "customizations": {},

    // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
    // "remoteUser": "root",

    // Use 'postCreateCommand' to run commands after the container is created.
    "postCreateCommand": "corepack enable && yarn set version 4.2.2 && bin/setup-devcontainer",
    "customizations": {
      "vscode": {
        "extensions": [
            "GitHub.copilot",
            "GitHub.copilot-chat",
            "marcoroth.stimulus-lsp",
            "bradlc.vscode-tailwindcss",
            "Shopify.ruby-lsp",
            "eamodio.gitlens",
            "karunamurti.haml"
            // "manuelpuyol.erb-linter",
            // "setobiralo.erb-commenter",
            // "streetsidesoftware.code-spell-checker",
            // "donjayamanne.githistory",
            // "esbenp.prettier-vscode",
            // "jemmyw.rails-fast-nav",
            // "tmikoss.rails-latest-migration"
        ]
      }
    }
  }

Dockerfile

# Make sure RUBY_VERSION matches the Ruby version in .ruby-version
ARG RUBY_VERSION=3.3.5
FROM ghcr.io/rails/devcontainer/images/ruby:$RUBY_VERSION

compose.yaml

name: "demo"

services:
  rails-app:
    build:
      context: ..
      dockerfile: .devcontainer/Dockerfile

    volumes:
    - ../..:/workspaces:cached

    # Overrides default command so things don't shut down after the process ends.
    command: sleep infinity

    # Uncomment the next line to use a non-root user for all processes.
    # user: vscode

    # Use "forwardPorts" in **devcontainer.json** to forward an app port locally.
    # (Adding the "ports" property to this file will not forward from a Codespace.)
    depends_on:
    - redis
    - postgres
    - selenium
    # Use "forwardPorts" in **devcontainer.json** to forward an app port locally.
    # (Adding the "ports" property to this file will not forward from a Codespace.)
    ports:
    - 45678:45678
    environment:
      COREPACK_ENABLE_DOWNLOAD_PROMPT: 0 # prevent yarn install y/n prompt

  selenium:
    image: seleniarm/standalone-chromium
    restart: unless-stopped

  redis:
    image: redis:7.2
    restart: unless-stopped
    volumes:
    - redis-data:/data

  postgres:
    image: postgres:17rc1
    restart: unless-stopped
    networks:
    - default
    volumes:
    - postgres-data:/var/lib/postgresql/data
    environment:
        POSTGRES_USER: postgres
        POSTGRES_PASSWORD: postgres

  # memcached:
  #   image: memcached:latest
  #   restart: unless-stopped
  #   command: ["-m", "1024"]     

volumes:
  redis-data:
  postgres-data:

Please let me know if I can provide anything else!

patriciomacadden commented 1 month ago

Hmm, interesting.

So, I've tried a couple of things:

  1. create a new project, add the bundler-cache feature and then build/open the container => ruby-lsp works
  2. with the new project above, remove the bundler-cache feature and then rebuild/open the container => ruby-lsp also works
  3. create a new project, build/open the container => works (of course lol)
  4. with the new project above, add the bundler-cache feature and then rebuild/open the container => ruby-lsp also works

I also removed the volumes a bunch of times. can you try that as well?

It's working in all scenarios for me, so makes me wonder if I'm reproducing the issue the way you're doing it 🤔 . Please let me know if I misinterpreted anything.

bundle install has been run - I'm able to dev without issue except having to do bundle exec rails s instead of rails s and similar

this is because /bundle/vendor/ruby/3.3.0/bin is not in the path, so either you need to use bundle exec or the executables in bin. See one of my comments in #48 . you can fix it but it's not optimus imo.

@JeremiahChurch can you share the output of RubyLSP? (cmd-j -> output tab -> select ruby lsp in the right hand side). Hopefully we can see what's going on in there.

Also, can you see what's in $PATH? And do you have any custom command in the ruby lsp extension?

JeremiahChurch commented 1 month ago

I'm on a different machine but it has a very similar dev environment - experiencing the same issue.

as requested here's a copy of ruby lsp output and PATH for without feature (working) and with feature (not working)

I'll attempt adding/removing volumes to see if the behavior is any different.

The common pattern for me certainly has been existing app and beginning to use devcontainer - not starting fresh.

Please let me know if anything looks interesting or if you need anything else, really appreciate the help!

path shows the same for both situations

vscode -> workspaces/myapp (ad6c9fe7) $ echo $PATH
/home/vscode/.rbenv/shims:/vscode/vscode-server/bin/linux-x64/d78a74bcdfad14d5d3b1b782f87255d802b57511/bin/remote-cli:/home/vscode/.rbenv/shims:/usr/local/share/nvm/versions/node/v20.17.0/bin:/usr/local/share/rbenv/bin:/usr/local/share/nvm/versions/node/v20.17.0/bin:/usr/local/share/rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/vscode/.local/bin

WITHOUT FEATURE ruby-lsp

2024-10-05 00:59:26.763 [info] (app) Checking if chruby is available on the path with command: /bin/bash -i -c 'chruby --version'
2024-10-05 00:59:26.966 [info] (app) Checking if rbenv is available on the path with command: /bin/bash -i -c 'rbenv --version'
2024-10-05 00:59:27.160 [info] (app) Discovered version manager rbenv
2024-10-05 00:59:27.160 [info] (app) Running command: `rbenv exec ruby -W0 -rjson -e 'STDERR.print("RUBY_LSP_ACTIVATION_SEPARATOR" + { env: ENV.to_h, yjit: !!defined?(RubyVM:: YJIT), version: RUBY_VERSION }.to_json + "RUBY_LSP_ACTIVATION_SEPARATOR")'` in /workspaces/myapp using shell: /bin/bash
2024-10-05 00:59:49.184 [info] (app) Ruby LSP> Skipping custom bundle setup since /workspaces/myapp/.ruby-lsp/Gemfile.lock already exists and is up to date

2024-10-05 00:59:49.191 [info] (app) Ruby LSP> Running bundle install for the custom bundle. This may take a while...
Ruby LSP> Command: (bundle check || bundle install) 1>&2

2024-10-05 00:59:49.549 [info] (app) Bundler can't satisfy your Gemfile's dependencies.
Install missing gems with `bundle install`.

2024-10-05 00:59:50.522 [info] (app) Fetching gem metadata from https://rubygems.org/
2024-10-05 00:59:50.523 [info] (app) .
2024-10-05 00:59:51.028 [info] (app) .
2024-10-05 00:59:51.221 [info] (app) .
2024-10-05 00:59:51.381 [info] (app) .
2024-10-05 00:59:51.505 [info] (app) .
2024-10-05 00:59:51.535 [info] (app) .
2024-10-05 00:59:51.549 [info] (app) .
2024-10-05 00:59:51.551 [info] (app) .
2024-10-05 00:59:52.689 [info] (app) 

2024-10-05 00:59:52.791 [info] (app) Resolving dependencies...

2024-10-05 00:59:53.929 [info] (app) Using rake 13.2.1

2024-10-05 00:59:53.937 [info] (app) Using mutex_m 0.2.0

2024-10-05 00:59:53.939 [info] (app) Using timeout 0.4.1
Using base64 0.2.0
Using bigdecimal 3.1.8
Using concurrent-ruby 1.3.4
Using connection_pool 2.4.1
Using drb 2.2.1
Using minitest 5.25.1
Using builder 3.3.0

2024-10-05 00:59:53.945 [info] (app) Using erubi 1.13.0
Using racc 1.8.1
Using crass 1.0.6
Using rack 2.2.9
Using nio4r 2.7.3
Using websocket-extensions 0.1.5
Using zeitwerk 2.6.18
Using marcel 1.0.4

2024-10-05 00:59:53.986 [info] (app) Using mini_mime 1.1.5
Using date 3.3.4

2024-10-05 00:59:53.995 [info] (app) Using public_suffix 6.0.1

2024-10-05 00:59:54.000 [info] (app) Using ansi 1.5.0

2024-10-05 00:59:54.005 [info] (app) Using ast 2.4.2

2024-10-05 00:59:54.011 [info] (app) Using docile 1.4.1

2024-10-05 00:59:54.016 [info] (app) Using dry-initializer 3.1.1

2024-10-05 00:59:54.024 [info] (app) Using csv 3.3.0

2024-10-05 00:59:54.032 [info] (app) Using pagy 6.5.0
Using stringio 3.1.1

2024-10-05 00:59:54.042 [info] (app) Using io-console 0.7.2

2024-10-05 00:59:54.046 [info] (app) Using webrick 1.8.2

2024-10-05 00:59:54.050 [info] (app) Using thor 1.3.2

2024-10-05 00:59:54.054 [info] (app) Using method_source 1.1.0

2024-10-05 00:59:54.059 [info] (app) Using awesome_print 1.9.2

2024-10-05 00:59:54.063 [info] (app) Using aws-eventstream 1.3.0

2024-10-05 00:59:54.067 [info] (app) Using aws-partitions 1.976.0

2024-10-05 00:59:54.071 [info] (app) Using jmespath 1.6.2

2024-10-05 00:59:54.075 [info] (app) Using bcrypt 3.1.20

2024-10-05 00:59:54.079 [info] (app) Using bindex 0.8.1

2024-10-05 00:59:54.083 [info] (app) Using debug_inspector 1.2.0

2024-10-05 00:59:54.089 [info] (app) Using msgpack 1.7.2
Using bundler 2.4.10

2024-10-05 00:59:54.096 [info] (app) Using cancancan 3.6.1

2024-10-05 00:59:54.102 [info] (app) Using chronic 0.10.2
Using uri 0.13.1

2024-10-05 00:59:54.110 [info] (app) Using json 2.7.2

2024-10-05 00:59:54.114 [info] (app) Using logger 1.6.1

2024-10-05 00:59:54.118 [info] (app) Using multipart-post 2.4.1
Using ostruct 0.6.0

2024-10-05 00:59:54.126 [info] (app) Using phonelib 0.9.2
Using observer 0.1.2

2024-10-05 00:59:54.133 [info] (app) Using thread-local 1.1.0

2024-10-05 00:59:54.138 [info] (app) Using colorizer 0.0.2

2024-10-05 00:59:54.144 [info] (app) Using commonmarker 1.1.5 (x86_64-linux)

2024-10-05 00:59:54.148 [info] (app) Using orm_adapter 0.5.0

2024-10-05 00:59:54.152 [info] (app) Using pwned 2.4.1

2024-10-05 00:59:54.156 [info] (app) Using charlock_holmes 0.7.9

2024-10-05 00:59:54.160 [info] (app) Using email_reply_parser 0.5.11

2024-10-05 00:59:54.163 [info] (app) Using fastimage 2.3.1

2024-10-05 00:59:54.168 [info] (app) Using hiredis 0.6.3

2024-10-05 00:59:54.172 [info] (app) Using http_accept_language 2.1.1

2024-10-05 00:59:54.177 [info] (app) Using mini_magick 4.13.2

2024-10-05 00:59:54.182 [info] (app) Using ffi 1.17.0 (x86_64-linux-gnu)

2024-10-05 00:59:54.188 [info] (app) Using hashie 5.0.0

2024-10-05 00:59:54.195 [info] (app) Using possessive 1.0.1

2024-10-05 00:59:54.204 [info] (app) Using htmlentities 4.3.4

2024-10-05 00:59:54.209 [info] (app) Using event_stream_parser 1.0.0

2024-10-05 00:59:54.214 [info] (app) Using unicode-version 1.4.0

2024-10-05 00:59:54.219 [info] (app) Using simpleidn 0.2.3

2024-10-05 00:59:54.223 [info] (app) Using xxhash 0.5.0

2024-10-05 00:59:54.228 [info] (app) Using prism 1.0.0

2024-10-05 00:59:54.232 [info] (app) Using jwt 2.1.0

2024-10-05 00:59:54.237 [info] (app) Using version_gem 1.1.4

2024-10-05 00:59:54.242 [info] (app) Using stripe 13.0.0

2024-10-05 00:59:54.247 [info] (app) Using hashids 1.0.6

2024-10-05 00:59:54.252 [info] (app) Using matrix 0.4.2

2024-10-05 00:59:54.258 [info] (app) Using regexp_parser 2.9.2
Using ruby2_keywords 0.0.5

2024-10-05 00:59:54.266 [info] (app) Using rexml 3.3.7

2024-10-05 00:59:54.270 [info] (app) Using rubyzip 2.3.2

2024-10-05 00:59:54.275 [info] (app) Using websocket 1.2.11

2024-10-05 00:59:54.280 [info] (app) Using choice 0.2.0

2024-10-05 00:59:54.285 [info] (app) Using chunky_png 1.4.0

2024-10-05 00:59:54.293 [info] (app) Using sexp_processor 4.17.2

2024-10-05 00:59:54.297 [info] (app) Using coderay 1.1.3

2024-10-05 00:59:54.301 [info] (app) Using colorize 1.1.0

2024-10-05 00:59:54.306 [info] (app) Using rotp 6.3.0

2024-10-05 00:59:54.312 [info] (app) Using erubis 2.7.0

2024-10-05 00:59:54.318 [info] (app) Using execjs 2.9.1

2024-10-05 00:59:54.322 [info] (app) Using foreman 0.88.1

2024-10-05 00:59:54.327 [info] (app) Using temple 0.10.3

2024-10-05 00:59:54.331 [info] (app) Using tilt 2.4.0

2024-10-05 00:59:54.334 [info] (app) Using honeybadger 5.15.6

2024-10-05 00:59:54.339 [info] (app) Using mini_portile2 2.8.7

2024-10-05 00:59:54.342 [info] (app) Using knapsack_pro 7.8.0

2024-10-05 00:59:54.347 [info] (app) Using language_server-protocol 3.17.0.3

2024-10-05 00:59:54.351 [info] (app) Using lint_roller 1.1.0

2024-10-05 00:59:54.356 [info] (app) Using ruby-progressbar 1.13.0

2024-10-05 00:59:54.360 [info] (app) Using parallel 1.26.3

2024-10-05 00:59:54.364 [info] (app) Using pg 1.5.8

2024-10-05 00:59:54.368 [info] (app) Using rails_autoscale_agent 0.12.0

2024-10-05 00:59:54.373 [info] (app) Using require_all 3.0.0

2024-10-05 00:59:54.377 [info] (app) Using rainbow 3.1.1

2024-10-05 00:59:54.381 [info] (app) Using rqrcode_core 1.2.0

2024-10-05 00:59:54.386 [info] (app) Using unicode-display_width 2.6.0

2024-10-05 00:59:54.390 [info] (app) Using sorbet-runtime 0.5.11595

2024-10-05 00:59:54.394 [info] (app) Using simplecov-html 0.13.1

2024-10-05 00:59:54.398 [info] (app) Using simplecov_json_formatter 0.1.4

2024-10-05 00:59:54.408 [info] (app) Using i18n 1.14.6

2024-10-05 00:59:54.411 [info] (app) Using tzinfo 2.0.6

2024-10-05 00:59:54.415 [info] (app) Using redis-client 0.22.2

2024-10-05 00:59:54.421 [info] (app) Using minitest-retry 0.2.3

2024-10-05 00:59:54.425 [info] (app) Using nokogiri 1.16.7 (x86_64-linux)

2024-10-05 00:59:54.429 [info] (app) Using brakeman 6.2.1
Using psych 5.1.2

2024-10-05 00:59:54.443 [info] (app) Using puma 6.4.3

2024-10-05 00:59:54.447 [info] (app) Using websocket-driver 0.7.6
Using net-protocol 0.2.2

2024-10-05 00:59:54.457 [info] (app) Using multi_xml 0.7.1

2024-10-05 00:59:54.470 [info] (app) Using sentry-ruby 5.19.0

2024-10-05 00:59:54.475 [info] (app) Using addressable 2.8.7

2024-10-05 00:59:54.478 [info] (app) Using parser 3.3.5.0

2024-10-05 00:59:54.482 [info] (app) Using rack-session 1.0.2

2024-10-05 00:59:54.487 [info] (app) Using rack-test 2.1.0

2024-10-05 00:59:54.491 [info] (app) Using warden 1.2.9

2024-10-05 00:59:54.497 [info] (app) Using rack-cors 2.0.2

2024-10-05 00:59:54.502 [info] (app) Using roda 3.84.0

2024-10-05 00:59:54.506 [info] (app) Using rack-mini-profiler 3.3.1

2024-10-05 00:59:54.510 [info] (app) Using sprockets 4.2.1
Using net-http 0.4.1

2024-10-05 00:59:54.518 [info] (app) Using rackup 1.0.0

2024-10-05 00:59:54.524 [info] (app) Using figaro 1.2.0

2024-10-05 00:59:54.528 [info] (app) Using bundler-audit 0.9.2

2024-10-05 00:59:54.532 [info] (app) Using aws-sigv4 1.10.0

2024-10-05 00:59:54.538 [info] (app) Using binding_of_caller 1.0.1

2024-10-05 00:59:54.542 [info] (app) Using bootsnap 1.18.4

2024-10-05 00:59:54.546 [info] (app) Using reline 0.5.10

2024-10-05 00:59:54.550 [info] (app) Using postmark 1.25.1

2024-10-05 00:59:54.555 [info] (app) Using childprocess 5.1.0

2024-10-05 00:59:54.563 [info] (app) Fetching rbs 3.6.1
Using faraday-multipart 1.0.4

2024-10-05 00:59:54.567 [info] (app) Using omniauth 1.9.2

2024-10-05 00:59:54.572 [info] (app) Using unicode-emoji 3.5.0

2024-10-05 00:59:54.577 [info] (app) Using snaky_hash 2.0.1

2024-10-05 00:59:54.581 [info] (app) Using ruby-vips 2.2.2

2024-10-05 00:59:54.585 [info] (app) Using ruby-graphviz 1.2.5

2024-10-05 00:59:54.589 [info] (app) Using selenium-webdriver 4.24.0

2024-10-05 00:59:54.593 [info] (app) Using code_analyzer 0.5.5

2024-10-05 00:59:54.597 [info] (app) Using pry 0.14.2

2024-10-05 00:59:54.601 [info] (app) Using terser 1.2.3

2024-10-05 00:59:54.605 [info] (app) Using haml 6.3.0

2024-10-05 00:59:54.609 [info] (app) Using karafka-rdkafka 0.17.6

2024-10-05 00:59:54.613 [info] (app) Using minitest-reporters 1.7.1

2024-10-05 00:59:54.617 [info] (app) Using loofah 2.22.0

2024-10-05 00:59:54.622 [info] (app) Using xpath 3.2.0

2024-10-05 00:59:54.629 [info] (app) Using rdoc 6.7.0

2024-10-05 00:59:54.634 [info] (app) Using net-imap 0.4.16

2024-10-05 00:59:54.640 [info] (app) Using net-pop 0.1.2

2024-10-05 00:59:54.644 [info] (app) Using net-smtp 0.5.0

2024-10-05 00:59:54.649 [info] (app) Using rqrcode 2.2.0

2024-10-05 00:59:54.654 [info] (app) Using simplecov 0.22.0

2024-10-05 00:59:54.658 [info] (app) Using activesupport 7.1.4

2024-10-05 00:59:54.663 [info] (app) Using sidekiq 7.3.2

2024-10-05 00:59:54.670 [info] (app) Using redis 5.3.0

2024-10-05 00:59:54.675 [info] (app) Using faraday-net_http 3.3.0

2024-10-05 00:59:54.679 [info] (app) Using httparty 0.22.0

2024-10-05 00:59:54.683 [info] (app) Using css_parser 1.19.0

2024-10-05 00:59:54.688 [info] (app) Using rubocop-ast 1.32.3

2024-10-05 00:59:54.693 [info] (app) Using aws-sdk-core 3.206.0

2024-10-05 00:59:54.697 [info] (app) Using launchy 3.0.1

2024-10-05 00:59:54.719 [info] (app) Using image_processing 1.13.0

2024-10-05 00:59:54.726 [info] (app) Using pry-stack_explorer 0.6.1

2024-10-05 00:59:54.730 [info] (app) Using karafka-core 2.4.4

2024-10-05 00:59:54.735 [info] (app) Using rails-html-sanitizer 1.6.0

2024-10-05 00:59:54.740 [info] (app) Using capybara 3.40.0

2024-10-05 00:59:54.744 [info] (app) Using irb 1.14.0

2024-10-05 00:59:54.750 [info] (app) Using mail 2.8.1

2024-10-05 00:59:54.754 [info] (app) Using rails-dom-testing 2.2.0

2024-10-05 00:59:54.759 [info] (app) Using globalid 1.2.1

2024-10-05 00:59:54.764 [info] (app) Using activemodel 7.1.4

2024-10-05 00:59:54.768 [info] (app) Using active_hash 3.3.1

2024-10-05 00:59:54.775 [info] (app) Using inline_svg 1.10.0

2024-10-05 00:59:54.780 [info] (app) Using view_component 3.14.0

2024-10-05 00:59:54.788 [info] (app) Using indefinite_article 0.2.5

2024-10-05 00:59:54.796 [info] (app) Using masamune-ast 2.0.2

2024-10-05 00:59:54.805 [info] (app) Using factory_bot 6.5.0

2024-10-05 00:59:54.816 [info] (app) Using rails_best_practices 1.23.2

2024-10-05 00:59:54.822 [info] (app) Using sentry-sidekiq 5.19.0

2024-10-05 00:59:54.827 [info] (app) Using faraday 2.12.0

2024-10-05 00:59:54.831 [info] (app) Using premailer 1.27.0

2024-10-05 00:59:54.839 [info] (app) Using rubocop 1.65.1

2024-10-05 00:59:54.844 [info] (app) Using aws-sdk-kms 1.91.0

2024-10-05 00:59:54.851 [info] (app) Using letter_opener 1.10.0

2024-10-05 00:59:54.960 [info] (app) Using waterdrop 2.8.0

2024-10-05 00:59:54.963 [info] (app) Using capybara-lockstep 2.2.2

2024-10-05 00:59:54.967 [info] (app) Using debug 1.9.2

2024-10-05 00:59:54.975 [info] (app) Using extended_email_reply_parser 0.5.1

2024-10-05 00:59:54.980 [info] (app) Using capybara-email 3.0.2

2024-10-05 00:59:54.983 [info] (app) Using actionview 7.1.4

2024-10-05 00:59:54.987 [info] (app) Using activejob 7.1.4

2024-10-05 00:59:54.990 [info] (app) Using activerecord 7.1.4

2024-10-05 00:59:54.994 [info] (app) Using valid_email 0.2.1

2024-10-05 00:59:54.998 [info] (app) Using bullet_train-roles 1.7.22

2024-10-05 00:59:55.005 [info] (app) Using faraday-follow_redirects 0.3.0
Using ruby-openai 7.1.0

2024-10-05 00:59:55.009 [info] (app) Using oauth2 2.0.9

2024-10-05 00:59:55.013 [info] (app) Using rubocop-performance 1.21.1

2024-10-05 00:59:55.016 [info] (app) Using standard-custom 1.0.2

2024-10-05 00:59:55.020 [info] (app) Using aws-sdk-s3 1.162.0

2024-10-05 00:59:55.023 [info] (app) Using karafka 2.4.12

2024-10-05 00:59:55.043 [info] (app) Using actionpack 7.1.4
Using nice_partials 0.10.1
Using jbuilder 2.13.0

2024-10-05 00:59:55.050 [info] (app) Using microscope 1.1.1
Using pagy_cursor 0.8.0
Using rails-erd 1.7.2

2024-10-05 00:59:55.059 [info] (app) Using cloudinary 2.2.0

2024-10-05 00:59:55.066 [info] (app) Using omniauth-oauth2 1.7.3

2024-10-05 00:59:55.071 [info] (app) Using standard-performance 1.4.0

2024-10-05 00:59:55.081 [info] (app) Using karafka-web 0.10.3

2024-10-05 00:59:55.085 [info] (app) Using actioncable 7.1.4
Using activestorage 7.1.4
Using actionmailer 7.1.4
Using active_link_to 1.0.5
Using meta-tags 2.22.0
Using railties 7.1.4
Using omniauth-rails_csrf_protection 0.1.2

2024-10-05 00:59:55.088 [info] (app) Using sprockets-rails 3.5.2

2024-10-05 00:59:55.108 [info] (app) Using omniauth-stripe-connect 2.10.1
Using omniauth-google-oauth2 0.8.0
Using omniauth-microsoft_graph 0.3.3

2024-10-05 00:59:55.110 [info] (app) Using standard 1.40.0

2024-10-05 00:59:55.118 [info] (app) Using actionmailbox 7.1.4
Using actiontext 7.1.4

2024-10-05 00:59:55.121 [info] (app) Using premailer-rails 1.12.0
Using postmark-rails 0.22.1

2024-10-05 00:59:55.128 [info] (app) Using turbo-rails 2.0.7
Using cable_ready 5.0.5
Using responders 3.1.1
Using doorkeeper 5.7.1
Using cssbundling-rails 1.4.1
Using factory_bot_rails 6.4.3

2024-10-05 00:59:55.130 [info] (app) Using haml-rails 2.1.0

2024-10-05 00:59:55.132 [info] (app) Using jsbundling-rails 1.3.1

2024-10-05 00:59:55.135 [info] (app) Using sentry-rails 5.19.0

2024-10-05 00:59:55.138 [info] (app) Using stimulus-rails 1.3.4

2024-10-05 00:59:55.142 [info] (app) Using web-console 4.2.1

2024-10-05 00:59:55.146 [info] (app) Using rails 7.1.4

2024-10-05 00:59:55.152 [info] (app) Using turbo_power 0.6.2

2024-10-05 00:59:55.155 [info] (app) Using devise 4.9.4

2024-10-05 00:59:55.175 [info] (app) Using bullet_train-has_uuid 1.7.22
Using bullet_train-routes 1.0.0
Using bullet_train-scope_validator 1.7.22
Using bullet_train-super_load_and_authorize_resource 1.7.22
Using bullet_train-fields 1.7.22
Using showcase-rails 0.4.6
Using bullet_train-super_scaffolding 1.7.22
Using jbuilder-schema 2.6.9
Using bullet_train-integrations 1.7.22
Using bullet_train-integrations-stripe 1.7.22
Using bullet_train-obfuscates_id 1.7.22
Using bullet_train-outgoing_webhooks 1.7.22
Using bullet_train-scope_questions 1.7.22
Using bullet_train-sortable 1.7.22

2024-10-05 00:59:55.176 [info] (app) Using magic_test 0.1.0

2024-10-05 00:59:55.177 [info] (app) Using avo 3.4.1

2024-10-05 00:59:55.178 [info] (app) Using devise-pwned_password 0.1.12

2024-10-05 00:59:55.179 [info] (app) Using devise-two-factor 6.0.0

2024-10-05 00:59:55.182 [info] (app) Using bullet_train-themes 1.7.22

2024-10-05 00:59:55.195 [info] (app) Using bullet_train 1.7.22

2024-10-05 00:59:55.195 [info] (app) Using bullet_train-themes-tailwind_css 1.7.22

2024-10-05 00:59:55.197 [info] (app) Using bullet_train-api 1.7.22

2024-10-05 00:59:55.198 [info] (app) Using bullet_train-themes-light 1.7.22

2024-10-05 00:59:55.201 [info] (app) Using bullet_train-incoming_webhooks 1.7.22

2024-10-05 00:59:55.227 [info] (app) Installing rbs 3.6.1 with native extensions

2024-10-05 00:59:58.488 [info] (app) Fetching ruby-lsp 0.18.4

2024-10-05 00:59:58.602 [info] (app) Installing ruby-lsp 0.18.4

2024-10-05 00:59:58.620 [info] (app) Fetching ruby-lsp-rails 0.3.16

2024-10-05 00:59:58.690 [info] (app) Installing ruby-lsp-rails 0.3.16

2024-10-05 00:59:58.726 [info] (app) Bundle complete! 77 Gemfile dependencies, 275 gems now installed.

2024-10-05 00:59:58.726 [info] (app) Use `bundle info [gemname]` to see where a bundled gem is installed.

2024-10-05 00:59:58.726 [info] (app) 2 installed gems you directly depend on are looking for funding.
  Run `bundle fund` for details

2024-10-05 01:00:00.506 [info] (app) Initializing Ruby LSP v0.18.4...
2024-10-05 01:00:00.529 [info] (app) Auto detected formatter: none
2024-10-05 01:00:00.529 [info] (app) Auto detected linters: 
2024-10-05 01:00:00.529 [info] (app) Detected test library: rails
2024-10-05 01:00:00.529 [info] (app) Finished initializing Ruby LSP!
2024-10-05 01:00:00.572 [info] (app) [Standard Ruby] Activating Standard Ruby LSP addon v1.40.0

2024-10-05 01:00:01.068 [info] (app) [Standard Ruby] Initialized Standard Ruby LSP addon 1.40.0

2024-10-05 01:00:01.068 [info] (app) Activating Ruby LSP Rails addon v0.3.16

2024-10-05 01:00:01.100 [info] (app) Ruby LSP Rails booting server

2024-10-05 01:00:06.679 [info] (app) Finished booting Ruby LSP Rails server

2024-10-05 01:00:24.064 [info] (app) Fetching search index for Rails documentation

2024-10-05 01:00:24.364 [info] (app) Finished fetching search index for Rails documentation

WITH FEATURE ruby-lsp output

2024-10-05 01:04:10.757 [info] (app) Checking if chruby is available on the path with command: /bin/bash -i -c 'chruby --version'
2024-10-05 01:04:10.964 [info] (app) Checking if rbenv is available on the path with command: /bin/bash -i -c 'rbenv --version'
2024-10-05 01:04:11.159 [info] (app) Discovered version manager rbenv
2024-10-05 01:04:11.159 [info] (app) Running command: `rbenv exec ruby -W0 -rjson -e 'STDERR.print("RUBY_LSP_ACTIVATION_SEPARATOR" + { env: ENV.to_h, yjit: !!defined?(RubyVM:: YJIT), version: RUBY_VERSION }.to_json + "RUBY_LSP_ACTIVATION_SEPARATOR")'` in /workspaces/myapp using shell: /bin/bash
2024-10-05 01:04:33.653 [info] (app) Ruby LSP> Skipping custom bundle setup since /workspaces/myapp/.ruby-lsp/Gemfile.lock already exists and is up to date

2024-10-05 01:04:33.666 [info] (app) Ruby LSP> Running bundle install for the custom bundle. This may take a while...
Ruby LSP> Command: ((bundle check && bundle update ruby-lsp ruby-lsp-rails) || bundle install) 1>&2

2024-10-05 01:04:33.962 [info] (app) The Gemfile's dependencies are satisfied

2024-10-05 01:04:34.223 [info] (app) Could not find gem 'ruby-lsp'.

2024-10-05 01:04:34.625 [info] (app) Using rake 13.2.1

2024-10-05 01:04:34.625 [info] (app) Using base64 0.2.0
Using bigdecimal 3.1.8

2024-10-05 01:04:34.626 [info] (app) Using concurrent-ruby 1.3.4

2024-10-05 01:04:34.626 [info] (app) Using connection_pool 2.4.1

2024-10-05 01:04:34.626 [info] (app) Using drb 2.2.1

2024-10-05 01:04:34.627 [info] (app) Using i18n 1.14.6

2024-10-05 01:04:34.627 [info] (app) Using minitest 5.25.1

2024-10-05 01:04:34.627 [info] (app) Using mutex_m 0.2.0

2024-10-05 01:04:34.627 [info] (app) Using tzinfo 2.0.6

2024-10-05 01:04:34.628 [info] (app) Using activesupport 7.1.4

2024-10-05 01:04:34.628 [info] (app) Using builder 3.3.0

2024-10-05 01:04:34.628 [info] (app) Using erubi 1.13.0

2024-10-05 01:04:34.628 [info] (app) Using racc 1.8.1

2024-10-05 01:04:34.629 [info] (app) Using nokogiri 1.16.7 (x86_64-linux)

2024-10-05 01:04:34.629 [info] (app) Using rails-dom-testing 2.2.0

2024-10-05 01:04:34.629 [info] (app) Using crass 1.0.6

2024-10-05 01:04:34.630 [info] (app) Using loofah 2.22.0

2024-10-05 01:04:34.630 [info] (app) Using rails-html-sanitizer 1.6.0

2024-10-05 01:04:34.631 [info] (app) Using actionview 7.1.4

2024-10-05 01:04:34.631 [info] (app) Using rack 2.2.9

2024-10-05 01:04:34.631 [info] (app) Using rack-session 1.0.2

2024-10-05 01:04:34.632 [info] (app) Using rack-test 2.1.0

2024-10-05 01:04:34.632 [info] (app) Using actionpack 7.1.4

2024-10-05 01:04:34.632 [info] (app) Using nio4r 2.7.3

2024-10-05 01:04:34.633 [info] (app) Using websocket-extensions 0.1.5

2024-10-05 01:04:34.633 [info] (app) Using websocket-driver 0.7.6

2024-10-05 01:04:34.634 [info] (app) Using zeitwerk 2.6.18

2024-10-05 01:04:34.634 [info] (app) Using actioncable 7.1.4

2024-10-05 01:04:34.634 [info] (app) Using globalid 1.2.1

2024-10-05 01:04:34.635 [info] (app) Using activejob 7.1.4

2024-10-05 01:04:34.635 [info] (app) Using activemodel 7.1.4

2024-10-05 01:04:34.635 [info] (app) Using timeout 0.4.1

2024-10-05 01:04:34.635 [info] (app) Using activerecord 7.1.4

2024-10-05 01:04:34.636 [info] (app) Using marcel 1.0.4

2024-10-05 01:04:34.636 [info] (app) Using activestorage 7.1.4

2024-10-05 01:04:34.636 [info] (app) Using mini_mime 1.1.5

2024-10-05 01:04:34.636 [info] (app) Using date 3.3.4

2024-10-05 01:04:34.636 [info] (app) Using net-protocol 0.2.2

2024-10-05 01:04:34.637 [info] (app) Using net-imap 0.4.16

2024-10-05 01:04:34.637 [info] (app) Using net-pop 0.1.2

2024-10-05 01:04:34.637 [info] (app) Using net-smtp 0.5.0

2024-10-05 01:04:34.637 [info] (app) Using mail 2.8.1

2024-10-05 01:04:34.638 [info] (app) Using actionmailbox 7.1.4

2024-10-05 01:04:34.638 [info] (app) Using actionmailer 7.1.4

2024-10-05 01:04:34.638 [info] (app) Using actiontext 7.1.4

2024-10-05 01:04:34.638 [info] (app) Using active_hash 3.3.1

2024-10-05 01:04:34.639 [info] (app) Using public_suffix 6.0.1

2024-10-05 01:04:34.639 [info] (app) Using addressable 2.8.7

2024-10-05 01:04:34.639 [info] (app) Using active_link_to 1.0.5

2024-10-05 01:04:34.639 [info] (app) Using ansi 1.5.0

2024-10-05 01:04:34.640 [info] (app) Using ast 2.4.2

2024-10-05 01:04:34.640 [info] (app) Using docile 1.4.1

2024-10-05 01:04:34.640 [info] (app) Using dry-initializer 3.1.1

2024-10-05 01:04:34.640 [info] (app) Using csv 3.3.0

2024-10-05 01:04:34.641 [info] (app) Using multi_xml 0.7.1

2024-10-05 01:04:34.641 [info] (app) Using httparty 0.22.0

2024-10-05 01:04:34.641 [info] (app) Using inline_svg 1.10.0

2024-10-05 01:04:34.641 [info] (app) Using meta-tags 2.22.0

2024-10-05 01:04:34.642 [info] (app) Using pagy 6.5.0

2024-10-05 01:04:34.642 [info] (app) Using stringio 3.1.1

2024-10-05 01:04:34.642 [info] (app) Using psych 5.1.2

2024-10-05 01:04:34.642 [info] (app) Using rdoc 6.7.0

2024-10-05 01:04:34.642 [info] (app) Using io-console 0.7.2

2024-10-05 01:04:34.643 [info] (app) Using reline 0.5.10

2024-10-05 01:04:34.643 [info] (app) Using irb 1.14.0

2024-10-05 01:04:34.643 [info] (app) Using webrick 1.8.2

2024-10-05 01:04:34.643 [info] (app) Using rackup 1.0.0

2024-10-05 01:04:34.644 [info] (app) Using thor 1.3.2

2024-10-05 01:04:34.644 [info] (app) Using railties 7.1.4

2024-10-05 01:04:34.644 [info] (app) Using turbo-rails 2.0.7

2024-10-05 01:04:34.644 [info] (app) Using turbo_power 0.6.2

2024-10-05 01:04:34.645 [info] (app) Using method_source 1.1.0

2024-10-05 01:04:34.646 [info] (app) Using view_component 3.14.0

2024-10-05 01:04:34.646 [info] (app) Using avo 3.4.1

2024-10-05 01:04:34.646 [info] (app) Using awesome_print 1.9.2

2024-10-05 01:04:34.646 [info] (app) Using aws-eventstream 1.3.0

2024-10-05 01:04:34.647 [info] (app) Using aws-partitions 1.976.0

2024-10-05 01:04:34.647 [info] (app) Using aws-sigv4 1.10.0

2024-10-05 01:04:34.647 [info] (app) Using jmespath 1.6.2

2024-10-05 01:04:34.648 [info] (app) Using aws-sdk-core 3.206.0

2024-10-05 01:04:34.648 [info] (app) Using aws-sdk-kms 1.91.0

2024-10-05 01:04:34.648 [info] (app) Using aws-sdk-s3 1.162.0

2024-10-05 01:04:34.648 [info] (app) Using bcrypt 3.1.20

2024-10-05 01:04:34.648 [info] (app) Using bindex 0.8.1

2024-10-05 01:04:34.648 [info] (app) Using debug_inspector 1.2.0

2024-10-05 01:04:34.649 [info] (app) Using binding_of_caller 1.0.1

2024-10-05 01:04:34.649 [info] (app) Using msgpack 1.7.2

2024-10-05 01:04:34.649 [info] (app) Using bootsnap 1.18.4

2024-10-05 01:04:34.649 [info] (app) Using brakeman 6.2.1

2024-10-05 01:04:34.649 [info] (app) Using bundler 2.4.10

2024-10-05 01:04:34.649 [info] (app) Using rails 7.1.4

2024-10-05 01:04:34.650 [info] (app) Using bullet_train-has_uuid 1.7.22

2024-10-05 01:04:34.650 [info] (app) Using cancancan 3.6.1

2024-10-05 01:04:34.650 [info] (app) Using bullet_train-roles 1.7.22

2024-10-05 01:04:34.650 [info] (app) Using bullet_train-routes 1.0.0

2024-10-05 01:04:34.651 [info] (app) Using bullet_train-scope_validator 1.7.22

2024-10-05 01:04:34.651 [info] (app) Using bullet_train-super_load_and_authorize_resource 1.7.22

2024-10-05 01:04:34.651 [info] (app) Using chronic 0.10.2

2024-10-05 01:04:34.651 [info] (app) Using uri 0.13.1

2024-10-05 01:04:34.651 [info] (app) Using net-http 0.4.1

2024-10-05 01:04:34.651 [info] (app) Using faraday-net_http 3.3.0

2024-10-05 01:04:34.652 [info] (app) Using json 2.7.2

2024-10-05 01:04:34.652 [info] (app) Using logger 1.6.1

2024-10-05 01:04:34.652 [info] (app) Using faraday 2.12.0

2024-10-05 01:04:34.652 [info] (app) Using faraday-follow_redirects 0.3.0

2024-10-05 01:04:34.653 [info] (app) Using multipart-post 2.4.1

2024-10-05 01:04:34.653 [info] (app) Using faraday-multipart 1.0.4

2024-10-05 01:04:34.653 [info] (app) Using ostruct 0.6.0

2024-10-05 01:04:34.654 [info] (app) Using cloudinary 2.2.0

2024-10-05 01:04:34.654 [info] (app) Using phonelib 0.9.2

2024-10-05 01:04:34.654 [info] (app) Using bullet_train-fields 1.7.22

2024-10-05 01:04:34.654 [info] (app) Using nice_partials 0.10.1

2024-10-05 01:04:34.655 [info] (app) Using bullet_train-themes 1.7.22

2024-10-05 01:04:34.655 [info] (app) Using observer 0.1.2

2024-10-05 01:04:34.655 [info] (app) Using thread-local 1.1.0

2024-10-05 01:04:34.655 [info] (app) Using cable_ready 5.0.5

2024-10-05 01:04:34.656 [info] (app) Using colorizer 0.0.2

2024-10-05 01:04:34.657 [info] (app) Using commonmarker 1.1.5 (x86_64-linux)

2024-10-05 01:04:34.657 [info] (app) Using orm_adapter 0.5.0

2024-10-05 01:04:34.657 [info] (app) Using responders 3.1.1

2024-10-05 01:04:34.658 [info] (app) Using warden 1.2.9

2024-10-05 01:04:34.658 [info] (app) Using devise 4.9.4

2024-10-05 01:04:34.658 [info] (app) Using pwned 2.4.1

2024-10-05 01:04:34.658 [info] (app) Using devise-pwned_password 0.1.12

2024-10-05 01:04:34.658 [info] (app) Using charlock_holmes 0.7.9

2024-10-05 01:04:34.659 [info] (app) Using email_reply_parser 0.5.11

2024-10-05 01:04:34.659 [info] (app) Using extended_email_reply_parser 0.5.1

2024-10-05 01:04:34.659 [info] (app) Using fastimage 2.3.1

2024-10-05 01:04:34.659 [info] (app) Using figaro 1.2.0

2024-10-05 01:04:34.659 [info] (app) Using hiredis 0.6.3

2024-10-05 01:04:34.660 [info] (app) Using http_accept_language 2.1.1

2024-10-05 01:04:34.660 [info] (app) Using mini_magick 4.13.2

2024-10-05 01:04:34.660 [info] (app) Using ffi 1.17.0 (x86_64-linux-gnu)

2024-10-05 01:04:34.661 [info] (app) Using ruby-vips 2.2.2

2024-10-05 01:04:34.661 [info] (app) Using image_processing 1.13.0

2024-10-05 01:04:34.662 [info] (app) Using microscope 1.1.1
Using hashie 5.0.0
Using omniauth 1.9.2
Using possessive 1.0.1
Using css_parser 1.19.0
Using htmlentities 4.3.4
Using premailer 1.27.0

2024-10-05 01:04:34.663 [info] (app) Using premailer-rails 1.12.0

2024-10-05 01:04:34.663 [info] (app) Using event_stream_parser 1.0.0

2024-10-05 01:04:34.664 [info] (app) Using ruby-openai 7.1.0

2024-10-05 01:04:34.664 [info] (app) Using showcase-rails 0.4.6

2024-10-05 01:04:34.664 [info] (app) Using redis-client 0.22.2

2024-10-05 01:04:34.665 [info] (app) Using sidekiq 7.3.2

2024-10-05 01:04:34.665 [info] (app) Using unicode-version 1.4.0

2024-10-05 01:04:34.665 [info] (app) Using unicode-emoji 3.5.0

2024-10-05 01:04:34.665 [info] (app) Using simpleidn 0.2.3

2024-10-05 01:04:34.666 [info] (app) Using valid_email 0.2.1

2024-10-05 01:04:34.666 [info] (app) Using xxhash 0.5.0

2024-10-05 01:04:34.667 [info] (app) Using bullet_train 1.7.22

2024-10-05 01:04:34.667 [info] (app) Using indefinite_article 0.2.5

2024-10-05 01:04:34.667 [info] (app) Using prism 1.0.0

2024-10-05 01:04:34.667 [info] (app) Using masamune-ast 2.0.2

2024-10-05 01:04:34.668 [info] (app) Using bullet_train-super_scaffolding 1.7.22

2024-10-05 01:04:34.668 [info] (app) Using doorkeeper 5.7.1

2024-10-05 01:04:34.668 [info] (app) Using factory_bot 6.5.0

2024-10-05 01:04:34.669 [info] (app) Using jbuilder 2.13.0

2024-10-05 01:04:34.669 [info] (app) Using jbuilder-schema 2.6.9

2024-10-05 01:04:34.669 [info] (app) Using pagy_cursor 0.8.0

2024-10-05 01:04:34.669 [info] (app) Using rack-cors 2.0.2

2024-10-05 01:04:34.670 [info] (app) Using bullet_train-api 1.7.22

2024-10-05 01:04:34.670 [info] (app) Using bullet_train-incoming_webhooks 1.7.22

2024-10-05 01:04:34.670 [info] (app) Using bullet_train-integrations 1.7.22

2024-10-05 01:04:34.670 [info] (app) Using omniauth-rails_csrf_protection 0.1.2

2024-10-05 01:04:34.671 [info] (app) Using jwt 2.1.0

2024-10-05 01:04:34.671 [info] (app) Using version_gem 1.1.4

2024-10-05 01:04:34.673 [info] (app) Using snaky_hash 2.0.1

2024-10-05 01:04:34.674 [info] (app) Using oauth2 2.0.9

2024-10-05 01:04:34.675 [info] (app) Using omniauth-oauth2 1.7.3

2024-10-05 01:04:34.675 [info] (app) Using omniauth-stripe-connect 2.10.1

2024-10-05 01:04:34.676 [info] (app) Using stripe 13.0.0

2024-10-05 01:04:34.676 [info] (app) Using bullet_train-integrations-stripe 1.7.22

2024-10-05 01:04:34.678 [info] (app) Using hashids 1.0.6

2024-10-05 01:04:34.678 [info] (app) Using bullet_train-obfuscates_id 1.7.22

2024-10-05 01:04:34.679 [info] (app) Using bullet_train-outgoing_webhooks 1.7.22

2024-10-05 01:04:34.680 [info] (app) Using bullet_train-scope_questions 1.7.22

2024-10-05 01:04:34.681 [info] (app) Using bullet_train-sortable 1.7.22

2024-10-05 01:04:34.681 [info] (app) Using bullet_train-themes-tailwind_css 1.7.22

2024-10-05 01:04:34.682 [info] (app) Using bullet_train-themes-light 1.7.22

2024-10-05 01:04:34.682 [info] (app) Using bundler-audit 0.9.2

2024-10-05 01:04:34.683 [info] (app) Using matrix 0.4.2

2024-10-05 01:04:34.683 [info] (app) Using regexp_parser 2.9.2

2024-10-05 01:04:34.683 [info] (app) Using xpath 3.2.0

2024-10-05 01:04:34.684 [info] (app) Using capybara 3.40.0

2024-10-05 01:04:34.684 [info] (app) Using capybara-email 3.0.2

2024-10-05 01:04:34.685 [info] (app) Using ruby2_keywords 0.0.5

2024-10-05 01:04:34.685 [info] (app) Using rexml 3.3.7

2024-10-05 01:04:34.685 [info] (app) Using rubyzip 2.3.2

2024-10-05 01:04:34.686 [info] (app) Using websocket 1.2.11

2024-10-05 01:04:34.686 [info] (app) Using selenium-webdriver 4.24.0

2024-10-05 01:04:34.686 [info] (app) Using capybara-lockstep 2.2.2

2024-10-05 01:04:34.687 [info] (app) Using childprocess 5.1.0

2024-10-05 01:04:34.687 [info] (app) Using choice 0.2.0

2024-10-05 01:04:34.687 [info] (app) Using chunky_png 1.4.0

2024-10-05 01:04:34.688 [info] (app) Using sexp_processor 4.17.2

2024-10-05 01:04:34.688 [info] (app) Using code_analyzer 0.5.5

2024-10-05 01:04:34.688 [info] (app) Using coderay 1.1.3

2024-10-05 01:04:34.688 [info] (app) Using colorize 1.1.0

2024-10-05 01:04:34.689 [info] (app) Using cssbundling-rails 1.4.1

2024-10-05 01:04:34.689 [info] (app) Using debug 1.9.2

2024-10-05 01:04:34.689 [info] (app) Using rotp 6.3.0

2024-10-05 01:04:34.689 [info] (app) Using devise-two-factor 6.0.0

2024-10-05 01:04:34.689 [info] (app) Using erubis 2.7.0

2024-10-05 01:04:34.690 [info] (app) Using execjs 2.9.1

2024-10-05 01:04:34.690 [info] (app) Using factory_bot_rails 6.4.3

2024-10-05 01:04:34.690 [info] (app) Using foreman 0.88.1

2024-10-05 01:04:34.690 [info] (app) Using temple 0.10.3

2024-10-05 01:04:34.691 [info] (app) Using tilt 2.4.0

2024-10-05 01:04:34.691 [info] (app) Using haml 6.3.0

2024-10-05 01:04:34.692 [info] (app) Using haml-rails 2.1.0

2024-10-05 01:04:34.692 [info] (app) Using honeybadger 5.15.6

2024-10-05 01:04:34.692 [info] (app) Using jsbundling-rails 1.3.1

2024-10-05 01:04:34.693 [info] (app) Using mini_portile2 2.8.7

2024-10-05 01:04:34.693 [info] (app) Using karafka-rdkafka 0.17.6

2024-10-05 01:04:34.693 [info] (app) Using karafka-core 2.4.4

2024-10-05 01:04:34.694 [info] (app) Using waterdrop 2.8.0

2024-10-05 01:04:34.694 [info] (app) Using karafka 2.4.12

2024-10-05 01:04:34.694 [info] (app) Using roda 3.84.0

2024-10-05 01:04:34.695 [info] (app) Using karafka-web 0.10.3

2024-10-05 01:04:34.695 [info] (app) Using knapsack_pro 7.8.0

2024-10-05 01:04:34.695 [info] (app) Using language_server-protocol 3.17.0.3

2024-10-05 01:04:34.696 [info] (app) Using launchy 3.0.1

2024-10-05 01:04:34.696 [info] (app) Using letter_opener 1.10.0

2024-10-05 01:04:34.696 [info] (app) Using lint_roller 1.1.0

2024-10-05 01:04:34.697 [info] (app) Using pry 0.14.2

2024-10-05 01:04:34.697 [info] (app) Using pry-stack_explorer 0.6.1

2024-10-05 01:04:34.697 [info] (app) Using magic_test 0.1.0

2024-10-05 01:04:34.698 [info] (app) Using ruby-progressbar 1.13.0

2024-10-05 01:04:34.699 [info] (app) Using minitest-reporters 1.7.1

2024-10-05 01:04:34.699 [info] (app) Using minitest-retry 0.2.3

2024-10-05 01:04:34.699 [info] (app) Using omniauth-google-oauth2 0.8.0

2024-10-05 01:04:34.700 [info] (app) Using omniauth-microsoft_graph 0.3.3

2024-10-05 01:04:34.700 [info] (app) Using parallel 1.26.3

2024-10-05 01:04:34.700 [info] (app) Using parser 3.3.5.0

2024-10-05 01:04:34.700 [info] (app) Using pg 1.5.8

2024-10-05 01:04:34.701 [info] (app) Using postmark 1.25.1

2024-10-05 01:04:34.701 [info] (app) Using postmark-rails 0.22.1

2024-10-05 01:04:34.701 [info] (app) Using puma 6.4.3

2024-10-05 01:04:34.702 [info] (app) Using rack-mini-profiler 3.3.1

2024-10-05 01:04:34.702 [info] (app) Using ruby-graphviz 1.2.5

2024-10-05 01:04:34.702 [info] (app) Using rails-erd 1.7.2

2024-10-05 01:04:34.703 [info] (app) Using rails_autoscale_agent 0.12.0

2024-10-05 01:04:34.703 [info] (app) Using require_all 3.0.0

2024-10-05 01:04:34.703 [info] (app) Using rails_best_practices 1.23.2

2024-10-05 01:04:34.704 [info] (app) Using rainbow 3.1.1

2024-10-05 01:04:34.704 [info] (app) Using redis 5.3.0

2024-10-05 01:04:34.704 [info] (app) Using rqrcode_core 1.2.0

2024-10-05 01:04:34.705 [info] (app) Using rqrcode 2.2.0

2024-10-05 01:04:34.705 [info] (app) Using rubocop-ast 1.32.3

2024-10-05 01:04:34.705 [info] (app) Using unicode-display_width 2.6.0

2024-10-05 01:04:34.706 [info] (app) Using rubocop 1.65.1

2024-10-05 01:04:34.706 [info] (app) Using rubocop-performance 1.21.1

2024-10-05 01:04:34.706 [info] (app) Using sentry-ruby 5.19.0

2024-10-05 01:04:34.706 [info] (app) Using sentry-rails 5.19.0

2024-10-05 01:04:34.707 [info] (app) Using sentry-sidekiq 5.19.0

2024-10-05 01:04:34.707 [info] (app) Using simplecov-html 0.13.1

2024-10-05 01:04:34.707 [info] (app) Using simplecov_json_formatter 0.1.4

2024-10-05 01:04:34.707 [info] (app) Using simplecov 0.22.0

2024-10-05 01:04:34.709 [info] (app) Using sprockets 4.2.1

2024-10-05 01:04:34.709 [info] (app) Using sprockets-rails 3.5.2

2024-10-05 01:04:34.709 [info] (app) Using standard-custom 1.0.2

2024-10-05 01:04:34.710 [info] (app) Using standard-performance 1.4.0

2024-10-05 01:04:34.710 [info] (app) Using standard 1.40.0

2024-10-05 01:04:34.710 [info] (app) Using stimulus-rails 1.3.4

2024-10-05 01:04:34.711 [info] (app) Using terser 1.2.3

2024-10-05 01:04:34.711 [info] (app) Using web-console 4.2.1

2024-10-05 01:04:34.731 [info] (app) Bundle complete! 75 Gemfile dependencies, 271 gems now installed.

2024-10-05 01:04:34.731 [info] (app) Bundled gems are installed into `/bundle/vendor`

2024-10-05 01:04:34.733 [info] (app) 2 installed gems you directly depend on are looking for funding.
  Run `bundle fund` for details

2024-10-05 01:04:35.081 [info] (app) bundler: failed to load command: ruby-lsp (/home/vscode/.rbenv/versions/3.3.5/bin/ruby-lsp)

2024-10-05 01:04:35.081 [info] (app) /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/rubygems_integration.rb:308:in `block in replace_bin_path': can't find executable ruby-lsp for gem ruby-lsp. ruby-lsp is not currently included in the bundle, perhaps you meant to add it to your Gemfile? (Gem::Exception)
    from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/rubygems_integration.rb:336:in `block in replace_bin_path'
    from /home/vscode/.rbenv/versions/3.3.5/bin/ruby-lsp:25:in `<top (required)>'
    from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/cli/exec.rb:58:in `load'
    from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/cli/exec.rb:58:in `kernel_load'
    from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/cli/exec.rb:23:in `run'
    from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/cli.rb:492:in `exec'
    from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
    from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
    from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
    from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/cli.rb:34:in `dispatch'
    from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
    from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/cli.rb:28:in `start'
    from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/exe/bundle:45:in `block in <top (required)>'
    from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
    from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/exe/bundle:33:in `<top (required)>'
    from /home/vscode/.rbenv/versions/3.3.5/bin/bundle:25:in `load'
    from /home/vscode/.rbenv/versions/3.3.5/bin/bundle:25:in `<main>'

2024-10-05 01:04:35.085 [info] (app) [Error - 1:04:35 AM] Server initialization failed.
2024-10-05 01:04:35.085 [info] (app)   Message: Pending response rejected since connection got disposed
  Code: -32097 
2024-10-05 01:04:35.085 [info] (app) [Error - 1:04:35 AM] Ruby LSP client: couldn't create connection to server.
2024-10-05 01:04:35.085 [info] (app)   Message: Pending response rejected since connection got disposed
  Code: -32097 
2024-10-05 01:04:35.085 [error] (app) Error starting the server: Pending response rejected since connection got disposed
2024-10-05 01:04:35.086 [info] (app) [Error - 1:04:35 AM] Server process exited with code 1.
2024-10-05 01:04:45.840 [info] (app) [Error - 1:04:45 AM] Connection to server got closed. Server will not be restarted.
patriciomacadden commented 1 month ago

The common pattern for me certainly has been existing app and beginning to use devcontainer - not starting fresh.

I didn't think this had anything to do with it because I have couple of projects running with devcontainer (added with rails g devcontainer) and this feature and I thought they were working just fine... until I tried again.

I can now reproduce the error. Unfortunately, it seems to be something to do with ruby-lsp. See https://github.com/Shopify/ruby-lsp/issues/2607. Apparently setting BUNDLE_PATH breaks it.

So, removed the volume and tried again, and this is what I found:

ruby-lsp's initialization creates a .ruby-lsp folder with a Gemfile requiring ruby-lsp and ruby-lsp-rails. Then it should install it.

On a newly created container, the bundle install command succeeds and ruby-lsp fails to start. Then inside the container, ruby-lsp is installed:

$ which ruby-lsp
/home/vscode/.rbenv/shims/ruby-lsp

but then when you run it, it fails:

$ ruby-lsp
Ruby LSP> Skipping custom bundle setup since /workspaces/timetracker/.ruby-lsp/Gemfile.lock already exists and is up to date
Ruby LSP> Running bundle install for the custom bundle. This may take a while...
Ruby LSP> Command: (bundle check || bundle install) 1>&2
The Gemfile's dependencies are satisfied
bundler: failed to load command: ruby-lsp (/bundle/vendor/ruby/3.3.0/bin/ruby-lsp)
/bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/rubygems_integration.rb:265:in `block in replace_bin_path': can't find executable ruby-lsp for gem ruby-lsp. ruby-lsp is not currently included in the bundle, perhaps you meant to add it to your Gemfile? (Gem::Exception)
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/rubygems_integration.rb:293:in `block in replace_bin_path'
        from /bundle/vendor/ruby/3.3.0/bin/ruby-lsp:25:in `<top (required)>'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/cli/exec.rb:58:in `load'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/cli/exec.rb:58:in `kernel_load'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/cli/exec.rb:23:in `run'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/cli.rb:451:in `exec'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/cli.rb:34:in `dispatch'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/cli.rb:28:in `start'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/exe/bundle:28:in `block in <top (required)>'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/exe/bundle:20:in `<top (required)>'
        from /home/vscode/.rbenv/versions/3.3.4/bin/bundle:25:in `load'
        from /home/vscode/.rbenv/versions/3.3.4/bin/bundle:25:in `<main>'

if you try to run the exe directly, you'll notice that /bundle/vendor/ruby/3.3.0/bin/ruby-lsp is missing. if you go to the .ruby-lsp folder and ruby bundle install you can see the gems are now installed.

If you run ruby-lsp within the .ruby-lsp folder, it works:

$ ruby-lsp
Ruby LSP> Skipping custom bundle setup since LSP dependencies are already in /workspaces/timetracker/.ruby-lsp/Gemfile
Ruby LSP> Running bundle install for the custom bundle. This may take a while...
Ruby LSP> Command: (bundle check || bundle install) 1>&2
The Gemfile's dependencies are satisfied

if you run outside (in your project's root folder), it doesn't work (same output as the error above).

If you run using the absolute path to the bin directory (/bundle/vendor/ruby/3.3.0/bin/ruby-lsp), it doesn't work either.

If you run using the absolute path to the gem directory (/bundle/vendor/ruby/3.3.0/gems/ruby-lsp-0.19.1/exe/ruby-lsp), it doesn't work either.

Prepending bundle exec doesn't do anything either.

I now don't understand what's the difference between a newly created project vs an existing one - at some point, both scenarios build the image/container from scratch.

patriciomacadden commented 1 month ago

I'm still trying to understand what's the difference between a newly created rails project vs an existing one with new devcontainer config. Both have pretty much the same setup: same $BUNDLE_PATH, same $PATH, same ruby-lsp version (0.19.1).

With the existing project with new devcontainer config, however, it seems to break when the rubygems bin (/bundle/vendor/ruby/3.3.0/bin/ruby-lsp) tries to activate the gem bin path. In both cases it resolves correctly to /home/vscode/.rbenv/versions/3.3.4/lib/ruby/gems/3.3.0/gems/ruby-lsp-0.19.1/exe/ruby-lsp (though it's not in the BUNDLE_PATH), but in the existing project it fails to execute.

/bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/rubygems_integration.rb:265:in `block in replace_bin_path': can't find executable ruby-lsp for gem ruby-lsp. ruby-lsp is not currently included in the bundle, perhaps you meant to add it to your Gemfile? (Gem::Exception)

Question for @andrewn617. Off-topic and out of curiosity, why are we using rbenv in the devcontainer? If we stick to just one ruby version (for example using ruby's official docker images as our base image), it would be easier to just set up /usr/local/bundler as a volume and we wouldn't be messing around with env vars at all (no rbenv in the path, no separate bundle_path), etc.

JeremiahChurch commented 1 month ago

@patriciomacadden a hacky fix for this is to add another containerEnv of "GEM_HOME": "/bundle/vendor/ruby/3.3.0/"

This restores rails and other gems because they are now all installed in the same folder that bundler is using. ruby-lsp and other system gems all go back to working.

This feels more right because it restores the functionality to 'base' before installing the feature while still having the persisted gem storage for faster boots.

I'm not sure of the downfalls of this.

I'm sure it could also be handled as a script to better match multiple ruby versions. Since that ruby version folder is a moving target. Something like "postCreateCommand": "sudo chown -R ${USER} /bundle && export GEM_HOME=$BUNDLE_PATH/ruby/$(ruby -e 'puts RbConfig::CONFIG["ruby_version"]')"

Pulling the script back to an install.sh with some in-line comments would probably be the clearest way to communicate intent of all the implementation details.

If you think that all sounds workable let me know and I'll pull together a PR

patriciomacadden commented 1 month ago

hey @JeremiahChurch , that indeed solves it. But I feel like it's a bit hacky to export the env var in the postCreateCommand instead of the containerEnv section of the devcontainer-feature.json. Unfortunately it wouldn't work because it won't do command substitutions (it's what I wanted to do before changing the BUNDLE_PATH).

I'm still trying to figure out why this feature works for newly created projects but not for an existing one - I think that is key.

sbounmy commented 1 month ago

running into the same issue. following up 🙏

viktorianer commented 1 month ago

Hey all,

could you please check, if my change in https://github.com/rails/rails/pull/53161 would solve your issues?

Thanks a lot.