Bumps the dependencies group with 2 updates: [@herb-tools/linter](https://github.com/marcoroth/herb/tree/HEAD/javascript/packages/linter) and [eslint](https://github.com/eslint/eslint).
Updates `@herb-tools/linter` from 0.10.1 to 0.10.2
- [Release notes](https://github.com/marcoroth/herb/releases)
- [Commits](https://github.com/marcoroth/herb/commits/v0.10.2/javascript/packages/linter)
Updates `eslint` from 10.6.0 to 10.7.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v10.6.0...v10.7.0)
Andy Allan [Wed, 15 Jul 2026 15:59:13 +0000 (16:59 +0100)]
Move shared partials to application directory
The rails default is to fall back to the "app/views/application" directory,
and we already use that for some other partials. This provides consistency
by refactoring the partials that were previous in the "shared" directory.
Updates `terser` from 1.2.7 to 1.2.8
- [Release notes](https://github.com/ahorek/terser-ruby/releases)
- [Changelog](https://github.com/ahorek/terser-ruby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ahorek/terser-ruby/compare/1.2.7...1.2.8)
Updates `doorkeeper-openid_connect` from 1.10.3 to 1.10.4
- [Release notes](https://github.com/doorkeeper-gem/doorkeeper-openid_connect/releases)
- [Changelog](https://github.com/doorkeeper-gem/doorkeeper-openid_connect/blob/master/CHANGELOG.md)
- [Commits](https://github.com/doorkeeper-gem/doorkeeper-openid_connect/compare/v1.10.3...v1.10.4)
Updates `aasm` from 5.5.2 to 6.0.0
- [Changelog](https://github.com/aasm/aasm/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aasm/aasm/compare/v5.5.2...v6.0.0)
Updates `opentelemetry-exporter-otlp` from 0.34.0 to 0.34.1
- [Release notes](https://github.com/open-telemetry/opentelemetry-ruby/releases)
- [Commits](https://github.com/open-telemetry/opentelemetry-ruby/compare/opentelemetry-exporter-otlp/v0.34.0...opentelemetry-exporter-otlp/v0.34.1)
Updates `opentelemetry-sdk` from 1.12.0 to 1.12.1
- [Release notes](https://github.com/open-telemetry/opentelemetry-ruby/releases)
- [Commits](https://github.com/open-telemetry/opentelemetry-ruby/compare/opentelemetry-sdk/v1.12.0...opentelemetry-sdk/v1.12.1)
Bump annotaterb from 4.22.0 to 4.23.0 in the dependencies group
Bumps the dependencies group with 1 update: [annotaterb](https://github.com/drwl/annotaterb).
Updates `annotaterb` from 4.22.0 to 4.23.0
- [Changelog](https://github.com/drwl/annotaterb/blob/main/CHANGELOG.md)
- [Commits](https://github.com/drwl/annotaterb/compare/v4.22.0...v4.23.0)
Grant Slater [Mon, 29 Jun 2026 21:16:43 +0000 (22:16 +0100)]
Update CD:NGI link to correct department
CD:NGI is part of the Department of Land Reform and Rural Development (dlrrd), which was previously known as Department of Agriculture, Land Reform and Rural Development (DALRRD). The ngi sub-domain changed domains when the department was renamed.
Lee Kindness [Fri, 26 Jun 2026 20:24:54 +0000 (21:24 +0100)]
Make traces feature optional via traces_disabled setting
Adds an optional traces_disabled setting to allow alternative deployments to disable the traces/tracks feature entirely. When absent (the default) traces are enabled; set to true to disable.
When disabled, all trace routes are removed via a routing constraint so requests return 404. Navigation links to traces in the header and user profile are conditionally hidden. CanCan abilities for Trace respect the setting.
dependabot[bot] [Wed, 24 Jun 2026 23:16:03 +0000 (23:16 +0000)]
Bump the dependencies group with 2 updates
Bumps the dependencies group with 2 updates: [doorkeeper-openid_connect](https://github.com/doorkeeper-gem/doorkeeper-openid_connect) and [cgi](https://github.com/ruby/cgi).
Updates `doorkeeper-openid_connect` from 1.10.1 to 1.10.3
- [Release notes](https://github.com/doorkeeper-gem/doorkeeper-openid_connect/releases)
- [Changelog](https://github.com/doorkeeper-gem/doorkeeper-openid_connect/blob/master/CHANGELOG.md)
- [Commits](https://github.com/doorkeeper-gem/doorkeeper-openid_connect/compare/v1.10.1...v1.10.3)
Updates `cgi` from 0.5.1 to 0.5.2
- [Release notes](https://github.com/ruby/cgi/releases)
- [Commits](https://github.com/ruby/cgi/compare/v0.5.1...v0.5.2)
dependabot[bot] [Wed, 24 Jun 2026 23:13:00 +0000 (23:13 +0000)]
Bump the rubocop group with 2 updates
Bumps the rubocop group with 2 updates: [rubocop-capybara](https://github.com/rubocop/rubocop-capybara) and [rubocop-rails](https://github.com/rubocop/rubocop-rails).
Updates `rubocop-capybara` from 2.23.0 to 3.0.0
- [Release notes](https://github.com/rubocop/rubocop-capybara/releases)
- [Changelog](https://github.com/rubocop/rubocop-capybara/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-capybara/compare/v2.23.0...v3.0.0)
Updates `rubocop-rails` from 2.35.4 to 2.35.5
- [Release notes](https://github.com/rubocop/rubocop-rails/releases)
- [Changelog](https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rails/compare/v2.35.4...v2.35.5)
dependabot[bot] [Wed, 24 Jun 2026 23:12:29 +0000 (23:12 +0000)]
Bump the dependencies group with 2 updates
Bumps the dependencies group with 2 updates: [actions/checkout](https://github.com/actions/checkout) and [ruby/setup-ruby](https://github.com/ruby/setup-ruby).
Updates `actions/checkout` from 6.0.3 to 7.0.0
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/df4cb1c069e1874edd31b4311f1884172cec0e10...9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0)
Updates `ruby/setup-ruby` from 1.313.0 to 1.314.0
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb)
- [Commits](https://github.com/ruby/setup-ruby/compare/89f90524b88a01fe6e0b732220432cc6142926af...9eb537ca036ebaed86729dcb9309076e4c5c3b74)
Pablo Brasero [Wed, 24 Jun 2026 12:23:42 +0000 (13:23 +0100)]
Keep linkification regexps in memory
I was playing with [derailed_benchmarks](https://github.com/zombocom/derailed_benchmarks) today and noticed that history pages were spending a long time in `Regexp#initialize`. Example:
Note that this is measured while running the app in production mode.
I went poking and saw that the [18 patterns (as of these lines)](https://github.com/openstreetmap/openstreetmap-website/blob/5053e2e76b82031b54cba71944d50128929459b7/config/settings.yml#L146-L182) used to detect text to linkify are being used to instantiate `Regexp` every time that linkification takes place. Looks like this takes a significant amount of time.
This PR moves the instantiation to a class method where the result is memoized. This is the result, for comparison:
So that's from ~24 ips to ~30 ips, or 25% more requests per second.
Caveat: the tests for `RichText` set up custom patterns, assuming no
memoization. To work around this, I have added a `RichText.reset_state`
method that is run before each relevant test.