@pablobm commented on this pull request.

Tried with a newly-installed Ubuntu Desktop 26.04 (arm64) and it's complaining 
about Geckodriver not being present.

<details>
<summary>Full output</summary>
<pre>
$ bundle exec rails test:all
2026-06-11 11:14:47 INFO Selenium [:logger_info] Details on how to use and 
modify Selenium logger:
  https://selenium.dev/documentation/webdriver/troubleshooting/logging

2026-06-11 11:14:47 ERROR Selenium Exception occurred: Unsuccessful command 
executed: 
["/var/lib/gems/3.3.0/gems/selenium-webdriver-4.44.0/bin/linux/selenium-manager",
 "--browser", "firefox", "--language-binding", "ruby", "--output", "json"] - 
Code 2
{}
/var/lib/gems/3.3.0/gems/selenium-webdriver-4.44.0/bin/linux/selenium-manager: 
1: Syntax error: ")" unexpected

2026-06-11 11:14:47 ERROR Selenium Backtrace:
        
/var/lib/gems/3.3.0/gems/selenium-webdriver-4.44.0/lib/selenium/webdriver/common/selenium_manager.rb:117:in
 `validate_command_result'
        
/var/lib/gems/3.3.0/gems/selenium-webdriver-4.44.0/lib/selenium/webdriver/common/selenium_manager.rb:67:in
 `run'
        
/var/lib/gems/3.3.0/gems/selenium-webdriver-4.44.0/lib/selenium/webdriver/common/selenium_manager.rb:44:in
 `binary_paths'
        
/var/lib/gems/3.3.0/gems/selenium-webdriver-4.44.0/lib/selenium/webdriver/common/driver_finder.rb:58:in
 `paths'
        
/var/lib/gems/3.3.0/gems/selenium-webdriver-4.44.0/lib/selenium/webdriver/common/driver_finder.rb:39:in
 `driver_path'
        
/var/lib/gems/3.3.0/gems/actionpack-8.1.3/lib/action_dispatch/system_testing/browser.rb:68:in
 `resolve_driver_path'
        
/var/lib/gems/3.3.0/gems/actionpack-8.1.3/lib/action_dispatch/system_testing/browser.rb:46:in
 `preload'
        
/var/lib/gems/3.3.0/gems/actionpack-8.1.3/lib/action_dispatch/system_testing/driver.rb:21:in
 `initialize'
        
/var/lib/gems/3.3.0/gems/actionpack-8.1.3/lib/action_dispatch/system_test_case.rb:161:in
 `new'
        
/var/lib/gems/3.3.0/gems/actionpack-8.1.3/lib/action_dispatch/system_test_case.rb:161:in
 `driven_by'
        
/home/pablobm/Documents/openstreetmap-website/test/application_system_test_case.rb:39:in
 `driven_by_selenium'
        
/home/pablobm/Documents/openstreetmap-website/test/application_system_test_case.rb:51:in
 `<class:ApplicationSystemTestCase>'
        
/home/pablobm/Documents/openstreetmap-website/test/application_system_test_case.rb:11:in
 `<top (required)>'
        /usr/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
        /usr/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in 
replace_require'
        
/var/lib/gems/3.3.0/gems/bootsnap-1.24.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33:in
 `require'
        
/var/lib/gems/3.3.0/gems/zeitwerk-2.8.2/lib/zeitwerk/core_ext/kernel.rb:34:in 
`require'
        
/home/pablobm/Documents/openstreetmap-website/test/system/account_deletion_test.rb:3:in
 `<top (required)>'
        /usr/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
        /usr/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in 
replace_require'
        
/var/lib/gems/3.3.0/gems/bootsnap-1.24.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33:in
 `require'
        
/var/lib/gems/3.3.0/gems/zeitwerk-2.8.2/lib/zeitwerk/core_ext/kernel.rb:34:in 
`require'
        
/var/lib/gems/3.3.0/gems/railties-8.1.3/lib/rails/test_unit/runner.rb:71:in 
`block in load_tests'
        
/var/lib/gems/3.3.0/gems/railties-8.1.3/lib/rails/test_unit/runner.rb:69:in 
`each'
        
/var/lib/gems/3.3.0/gems/railties-8.1.3/lib/rails/test_unit/runner.rb:69:in 
`load_tests'
        
/var/lib/gems/3.3.0/gems/railties-8.1.3/lib/minitest/rails_plugin.rb:147:in 
`block in plugin_rails_options'
        /usr/lib/ruby/3.3.0/optparse.rb:1715:in `block in parse_in_order'
        /usr/lib/ruby/3.3.0/optparse.rb:913:in `search'
        /usr/lib/ruby/3.3.0/optparse.rb:1832:in `block in visit'
        /usr/lib/ruby/3.3.0/optparse.rb:1831:in `reverse_each'
        /usr/lib/ruby/3.3.0/optparse.rb:1831:in `visit'
        /usr/lib/ruby/3.3.0/optparse.rb:1715:in `parse_in_order'
        /usr/lib/ruby/3.3.0/optparse.rb:1630:in `order!'
        /usr/lib/ruby/3.3.0/optparse.rb:1739:in `permute!'
        /usr/lib/ruby/3.3.0/optparse.rb:1764:in `parse!'
        /var/lib/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:254:in `block 
in process_args'
        /usr/lib/ruby/3.3.0/optparse.rb:1153:in `initialize'
        /var/lib/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:160:in `new'
        /var/lib/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:160:in 
`process_args'
        /var/lib/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:300:in `run'
        /var/lib/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:84:in `block in 
autorun'
/var/lib/gems/3.3.0/gems/selenium-webdriver-4.44.0/lib/selenium/webdriver/common/driver_finder.rb:75:in
 `rescue in paths': Unable to obtain geckodriver; For documentation on this 
error, please visit: 
https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
 (Selenium::WebDriver::Error::NoSuchDriverError)
        from 
/var/lib/gems/3.3.0/gems/selenium-webdriver-4.44.0/lib/selenium/webdriver/common/driver_finder.rb:49:in
 `paths'
        from 
/var/lib/gems/3.3.0/gems/selenium-webdriver-4.44.0/lib/selenium/webdriver/common/driver_finder.rb:39:in
 `driver_path'
        from 
/var/lib/gems/3.3.0/gems/actionpack-8.1.3/lib/action_dispatch/system_testing/browser.rb:68:in
 `resolve_driver_path'
        from 
/var/lib/gems/3.3.0/gems/actionpack-8.1.3/lib/action_dispatch/system_testing/browser.rb:46:in
 `preload'
        from 
/var/lib/gems/3.3.0/gems/actionpack-8.1.3/lib/action_dispatch/system_testing/driver.rb:21:in
 `initialize'
        from 
/var/lib/gems/3.3.0/gems/actionpack-8.1.3/lib/action_dispatch/system_test_case.rb:161:in
 `new'
        from 
/var/lib/gems/3.3.0/gems/actionpack-8.1.3/lib/action_dispatch/system_test_case.rb:161:in
 `driven_by'
        from 
/home/pablobm/Documents/openstreetmap-website/test/application_system_test_case.rb:39:in
 `driven_by_selenium'
        from 
/home/pablobm/Documents/openstreetmap-website/test/application_system_test_case.rb:51:in
 `<class:ApplicationSystemTestCase>'
        from 
/home/pablobm/Documents/openstreetmap-website/test/application_system_test_case.rb:11:in
 `<top (required)>'
        from /usr/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
        from /usr/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in 
replace_require'
        from 
/var/lib/gems/3.3.0/gems/bootsnap-1.24.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33:in
 `require'
        from 
/var/lib/gems/3.3.0/gems/zeitwerk-2.8.2/lib/zeitwerk/core_ext/kernel.rb:34:in 
`require'
        from 
/home/pablobm/Documents/openstreetmap-website/test/system/account_deletion_test.rb:3:in
 `<top (required)>'
        from /usr/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
        from /usr/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in 
replace_require'
        from 
/var/lib/gems/3.3.0/gems/bootsnap-1.24.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33:in
 `require'
        from 
/var/lib/gems/3.3.0/gems/zeitwerk-2.8.2/lib/zeitwerk/core_ext/kernel.rb:34:in 
`require'
        from 
/var/lib/gems/3.3.0/gems/railties-8.1.3/lib/rails/test_unit/runner.rb:71:in 
`block in load_tests'
        from 
/var/lib/gems/3.3.0/gems/railties-8.1.3/lib/rails/test_unit/runner.rb:69:in 
`each'
        from 
/var/lib/gems/3.3.0/gems/railties-8.1.3/lib/rails/test_unit/runner.rb:69:in 
`load_tests'
        from 
/var/lib/gems/3.3.0/gems/railties-8.1.3/lib/minitest/rails_plugin.rb:147:in 
`block in plugin_rails_options'
        from /usr/lib/ruby/3.3.0/optparse.rb:1715:in `block in parse_in_order'
        from /usr/lib/ruby/3.3.0/optparse.rb:913:in `search'
        from /usr/lib/ruby/3.3.0/optparse.rb:1832:in `block in visit'
        from /usr/lib/ruby/3.3.0/optparse.rb:1831:in `reverse_each'
        from /usr/lib/ruby/3.3.0/optparse.rb:1831:in `visit'
        from /usr/lib/ruby/3.3.0/optparse.rb:1715:in `parse_in_order'
        from /usr/lib/ruby/3.3.0/optparse.rb:1630:in `order!'
        from /usr/lib/ruby/3.3.0/optparse.rb:1739:in `permute!'
        from /usr/lib/ruby/3.3.0/optparse.rb:1764:in `parse!'
        from /var/lib/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:254:in 
`block in process_args'
        from /usr/lib/ruby/3.3.0/optparse.rb:1153:in `initialize'
        from /var/lib/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:160:in 
`new'
        from /var/lib/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:160:in 
`process_args'
        from /var/lib/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:300:in 
`run'
        from /var/lib/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:84:in 
`block in autorun'
/var/lib/gems/3.3.0/gems/selenium-webdriver-4.44.0/lib/selenium/webdriver/common/selenium_manager.rb:117:in
 `validate_command_result': Unsuccessful command executed: 
["/var/lib/gems/3.3.0/gems/selenium-webdriver-4.44.0/bin/linux/selenium-manager",
 "--browser", "firefox", "--language-binding", "ruby", "--output", "json"] - 
Code 2 (Selenium::WebDriver::Error::WebDriverError)
{}
/var/lib/gems/3.3.0/gems/selenium-webdriver-4.44.0/bin/linux/selenium-manager: 
1: Syntax error: ")" unexpected

        from 
/var/lib/gems/3.3.0/gems/selenium-webdriver-4.44.0/lib/selenium/webdriver/common/selenium_manager.rb:67:in
 `run'
        from 
/var/lib/gems/3.3.0/gems/selenium-webdriver-4.44.0/lib/selenium/webdriver/common/selenium_manager.rb:44:in
 `binary_paths'
        from 
/var/lib/gems/3.3.0/gems/selenium-webdriver-4.44.0/lib/selenium/webdriver/common/driver_finder.rb:58:in
 `paths'
        from 
/var/lib/gems/3.3.0/gems/selenium-webdriver-4.44.0/lib/selenium/webdriver/common/driver_finder.rb:39:in
 `driver_path'
        from 
/var/lib/gems/3.3.0/gems/actionpack-8.1.3/lib/action_dispatch/system_testing/browser.rb:68:in
 `resolve_driver_path'
        from 
/var/lib/gems/3.3.0/gems/actionpack-8.1.3/lib/action_dispatch/system_testing/browser.rb:46:in
 `preload'
        from 
/var/lib/gems/3.3.0/gems/actionpack-8.1.3/lib/action_dispatch/system_testing/driver.rb:21:in
 `initialize'
        from 
/var/lib/gems/3.3.0/gems/actionpack-8.1.3/lib/action_dispatch/system_test_case.rb:161:in
 `new'
        from 
/var/lib/gems/3.3.0/gems/actionpack-8.1.3/lib/action_dispatch/system_test_case.rb:161:in
 `driven_by'
        from 
/home/pablobm/Documents/openstreetmap-website/test/application_system_test_case.rb:39:in
 `driven_by_selenium'
        from 
/home/pablobm/Documents/openstreetmap-website/test/application_system_test_case.rb:51:in
 `<class:ApplicationSystemTestCase>'
        from 
/home/pablobm/Documents/openstreetmap-website/test/application_system_test_case.rb:11:in
 `<top (required)>'
        from /usr/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
        from /usr/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in 
replace_require'
        from 
/var/lib/gems/3.3.0/gems/bootsnap-1.24.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33:in
 `require'
        from 
/var/lib/gems/3.3.0/gems/zeitwerk-2.8.2/lib/zeitwerk/core_ext/kernel.rb:34:in 
`require'
        from 
/home/pablobm/Documents/openstreetmap-website/test/system/account_deletion_test.rb:3:in
 `<top (required)>'
        from /usr/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
        from /usr/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in 
replace_require'
        from 
/var/lib/gems/3.3.0/gems/bootsnap-1.24.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33:in
 `require'
        from 
/var/lib/gems/3.3.0/gems/zeitwerk-2.8.2/lib/zeitwerk/core_ext/kernel.rb:34:in 
`require'
        from 
/var/lib/gems/3.3.0/gems/railties-8.1.3/lib/rails/test_unit/runner.rb:71:in 
`block in load_tests'
        from 
/var/lib/gems/3.3.0/gems/railties-8.1.3/lib/rails/test_unit/runner.rb:69:in 
`each'
        from 
/var/lib/gems/3.3.0/gems/railties-8.1.3/lib/rails/test_unit/runner.rb:69:in 
`load_tests'
        from 
/var/lib/gems/3.3.0/gems/railties-8.1.3/lib/minitest/rails_plugin.rb:147:in 
`block in plugin_rails_options'
        from /usr/lib/ruby/3.3.0/optparse.rb:1715:in `block in parse_in_order'
        from /usr/lib/ruby/3.3.0/optparse.rb:913:in `search'
        from /usr/lib/ruby/3.3.0/optparse.rb:1832:in `block in visit'
        from /usr/lib/ruby/3.3.0/optparse.rb:1831:in `reverse_each'
        from /usr/lib/ruby/3.3.0/optparse.rb:1831:in `visit'
        from /usr/lib/ruby/3.3.0/optparse.rb:1715:in `parse_in_order'
        from /usr/lib/ruby/3.3.0/optparse.rb:1630:in `order!'
        from /usr/lib/ruby/3.3.0/optparse.rb:1739:in `permute!'
        from /usr/lib/ruby/3.3.0/optparse.rb:1764:in `parse!'
        from /var/lib/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:254:in 
`block in process_args'
        from /usr/lib/ruby/3.3.0/optparse.rb:1153:in `initialize'
        from /var/lib/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:160:in 
`new'
        from /var/lib/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:160:in 
`process_args'
        from /var/lib/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:300:in 
`run'
        from /var/lib/gems/3.3.0/gems/minitest-6.0.6/lib/minitest.rb:84:in 
`block in autorun'
Coverage report generated for Minitest to 
/home/pablobm/Documents/openstreetmap-website/coverage.
Line Coverage: 3.18% (314 / 9868)
Lcov style coverage report generated for Minitest to coverage/lcov.info
Stopped processing SimpleCov as a previous error not related to SimpleCov has 
been detected
</pre>
</details>

I was looking for a simple way to install it. A one-liner that downloads the 
latest version and puts it in a sensible place, but couldn't think of 
something. For one there isn't a URL to download the "latest" and instead we 
have to point to a specific version (eg: "0.37.0"). Any ideas?

> @@ -211,6 +233,13 @@ This test will take a few minutes, reporting tests run, 
> assertions, and any erro
 
 > [!NOTE]
 > The unit tests may output parser errors related to "Attribute lat 
 > redefined." These can be ignored.
+>
+> For the tests that use WebGL to complete successfully on an headless machine 
you need to start an X server rendering on the virtual framebuffer
+> an easy way to do that is to use the docker entrypoint script
+>
+> ```bash
+> docker/entrypoint.sh bundle exec rails test:all

The entrypoint file is not marked executable, so at least in the environment I 
tried (pristine Ubuntu Desktop 26.04, arm64, bash), this won't run on its own. 
Instead:

```suggestion
> sh docker/entrypoint.sh bundle exec rails test:all
```

> @@ -131,7 +145,15 @@ We use [Bundler](https://bundler.io/) to manage the 
> rubygems required for the pr
 ```bash
 cd openstreetmap-website
 bundle install
-```
+
+> [NOTE]
+> On Ubuntu 26.04 the version of bundle installed is old and will not install 
the gems, you can

Typo ("bundle" vs "bundler") and order/choice of words that I think flows 
better (although I'm not a native speaker):

```suggestion
> On Ubuntu 26.04 the provided version of bundler is old and will not install 
> the gems, you can
```

-- 
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/openstreetmap-website/pull/7139#pullrequestreview-4476114885
You are receiving this because you are subscribed to this thread.

Message ID: 
<openstreetmap/openstreetmap-website/pull/7139/review/[email protected]>
_______________________________________________
rails-dev mailing list
[email protected]
https://lists.openstreetmap.org/listinfo/rails-dev

Reply via email to