diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,43 @@
 # Changelog for haskell-language-server
 
+## 2.5.0.0
+
+- Bindists for GHC 9.4.8
+- Drop support for GHC 9.0
+- Re-add stan plugin
+- Load default operator fixities in Fourmolu plugin
+
+### Pull Requests
+
+- Drop support for GHC 9.0
+  ([#3875](https://github.com/haskell/haskell-language-server/pull/3875)) by @michaelpj
+- Fix support tables
+  ([#3874](https://github.com/haskell/haskell-language-server/pull/3874)) by @michaelpj
+- Prefer hls-test-utils functions over code duplication
+  ([#3870](https://github.com/haskell/haskell-language-server/pull/3870)) by @fendor
+- Make sure running tests locally pick up the correct cradle type
+  ([#3869](https://github.com/haskell/haskell-language-server/pull/3869)) by @fendor
+- Some versions of stylish-haskell do need the ghc-lib flag
+  ([#3868](https://github.com/haskell/haskell-language-server/pull/3868)) by @michaelpj
+- Remove head.hackage
+  ([#3867](https://github.com/haskell/haskell-language-server/pull/3867)) by @wz1000
+- Load default operator fixities in Fourmolu plugin non-CLI mode
+  ([#3855](https://github.com/haskell/haskell-language-server/pull/3855)) by @georgefst
+- Fix #3847
+  ([#3854](https://github.com/haskell/haskell-language-server/pull/3854)) by @BurningLutz
+- Re-add hls-stan-plugin
+  ([#3851](https://github.com/haskell/haskell-language-server/pull/3851)) by @0rphee
+- Bump fkirc/skip-duplicate-actions from 5.3.0 to 5.3.1
+  ([#3850](https://github.com/haskell/haskell-language-server/pull/3850)) by @dependabot[bot]
+- Merge definitions from all plugins for Document(Type)Definition message
+  ([#3846](https://github.com/haskell/haskell-language-server/pull/3846)) by @JiriLojda
+- Simplify cabal.project
+  ([#3836](https://github.com/haskell/haskell-language-server/pull/3836)) by @michaelpj
+- Set the root for tests to the test directory
+  ([#3830](https://github.com/haskell/haskell-language-server/pull/3830)) by @fendor
+- Reduce Nix support
+  ([#3804](https://github.com/haskell/haskell-language-server/pull/3804)) by @michaelpj
+
 ## 2.4.0.0
 
 * Initial support for GHC 9.8.1, without plugins dependent on `ghc-exactprint`
diff --git a/haskell-language-server.cabal b/haskell-language-server.cabal
--- a/haskell-language-server.cabal
+++ b/haskell-language-server.cabal
@@ -1,7 +1,7 @@
 cabal-version:      3.0
 category:           Development
 name:               haskell-language-server
-version:            2.4.0.0
+version:            2.5.0.0
 synopsis:           LSP server for GHC
 description:
   Please see the README on GitHub at <https://github.com/haskell/haskell-language-server#readme>
@@ -104,6 +104,11 @@
   default:     True
   manual:      True
 
+flag stan
+  description: Enable stan plugin
+  default:     True
+  manual:      True
+
 flag moduleName
   description: Enable moduleName plugin
   default:     True
@@ -198,129 +203,134 @@
 
 common cabalfmt
   if flag(cabalfmt)
-    build-depends: hls-cabal-fmt-plugin == 2.4.0.0
+    build-depends: hls-cabal-fmt-plugin == 2.5.0.0
     cpp-options: -Dhls_cabalfmt
 
 common cabal
   if flag(cabal)
-    build-depends: hls-cabal-plugin == 2.4.0.0
+    build-depends: hls-cabal-plugin == 2.5.0.0
     cpp-options: -Dhls_cabal
 
 common class
   if flag(class) && (impl(ghc < 9.8.0) || flag(ignore-plugins-ghc-bounds))
-    build-depends: hls-class-plugin == 2.4.0.0
+    build-depends: hls-class-plugin == 2.5.0.0
     cpp-options: -Dhls_class
 
 common callHierarchy
   if flag(callHierarchy)
-    build-depends: hls-call-hierarchy-plugin == 2.4.0.0
+    build-depends: hls-call-hierarchy-plugin == 2.5.0.0
     cpp-options: -Dhls_callHierarchy
 
 common eval
   if flag(eval)
-    build-depends: hls-eval-plugin == 2.4.0.0
+    build-depends: hls-eval-plugin == 2.5.0.0
     cpp-options: -Dhls_eval
 
 common importLens
   if flag(importLens)
-    build-depends: hls-explicit-imports-plugin == 2.4.0.0
+    build-depends: hls-explicit-imports-plugin == 2.5.0.0
     cpp-options: -Dhls_importLens
 
 common rename
   if flag(rename) && (impl(ghc < 9.8.0) || flag(ignore-plugins-ghc-bounds))
-    build-depends: hls-rename-plugin == 2.4.0.0
+    build-depends: hls-rename-plugin == 2.5.0.0
     cpp-options: -Dhls_rename
 
 common retrie
   if flag(retrie) && (impl(ghc < 9.8.0) || flag(ignore-plugins-ghc-bounds))
-    build-depends: hls-retrie-plugin == 2.4.0.0
+    build-depends: hls-retrie-plugin == 2.5.0.0
     cpp-options: -Dhls_retrie
 
 common hlint
   if flag(hlint) && (impl(ghc < 9.8.0) || flag(ignore-plugins-ghc-bounds))
-    build-depends: hls-hlint-plugin == 2.4.0.0
+    build-depends: hls-hlint-plugin == 2.5.0.0
     cpp-options: -Dhls_hlint
 
+common stan
+  if flag(stan) && (impl(ghc > 8.8.1) && impl(ghc <= 9.2.3) || impl(ghc >= 9.4.0) && impl(ghc < 9.10.0))
+    build-depends: hls-stan-plugin == 2.5.0.0
+    cpp-options: -Dhls_stan
+
 common moduleName
   if flag(moduleName)
-    build-depends: hls-module-name-plugin == 2.4.0.0
+    build-depends: hls-module-name-plugin == 2.5.0.0
     cpp-options: -Dhls_moduleName
 
 common pragmas
   if flag(pragmas)
-    build-depends: hls-pragmas-plugin == 2.4.0.0
+    build-depends: hls-pragmas-plugin == 2.5.0.0
     cpp-options: -Dhls_pragmas
 
 common splice
   if flag(splice) && (impl(ghc < 9.8.0) || flag(ignore-plugins-ghc-bounds))
-    build-depends: hls-splice-plugin == 2.4.0.0
+    build-depends: hls-splice-plugin == 2.5.0.0
     cpp-options: -Dhls_splice
 
 common alternateNumberFormat
   if flag(alternateNumberFormat)
-    build-depends: hls-alternate-number-format-plugin == 2.4.0.0
+    build-depends: hls-alternate-number-format-plugin == 2.5.0.0
     cpp-options: -Dhls_alternateNumberFormat
 
 common qualifyImportedNames
   if flag(qualifyImportedNames)
-    build-depends: hls-qualify-imported-names-plugin == 2.4.0.0
+    build-depends: hls-qualify-imported-names-plugin == 2.5.0.0
     cpp-options: -Dhls_qualifyImportedNames
 
 common codeRange
   if flag(codeRange)
-    build-depends: hls-code-range-plugin == 2.4.0.0
+    build-depends: hls-code-range-plugin == 2.5.0.0
     cpp-options: -Dhls_codeRange
 
 common changeTypeSignature
   if flag(changeTypeSignature)
-    build-depends: hls-change-type-signature-plugin == 2.4.0.0
+    build-depends: hls-change-type-signature-plugin == 2.5.0.0
     cpp-options: -Dhls_changeTypeSignature
 
 common gadt
   if flag(gadt) && (impl(ghc < 9.8.0) || flag(ignore-plugins-ghc-bounds))
-    build-depends: hls-gadt-plugin == 2.4.0.0
+    build-depends: hls-gadt-plugin == 2.5.0.0
     cpp-options: -Dhls_gadt
 
 common explicitFixity
   if flag(explicitFixity)
-    build-depends: hls-explicit-fixity-plugin == 2.4.0.0
+    build-depends: hls-explicit-fixity-plugin == 2.5.0.0
     cpp-options: -DexplicitFixity
 
 common explicitFields
   if flag(explicitFields)
-    build-depends: hls-explicit-record-fields-plugin == 2.4.0.0
+    build-depends: hls-explicit-record-fields-plugin == 2.5.0.0
     cpp-options: -DexplicitFields
 
 common overloadedRecordDot
   if flag(overloadedRecordDot) && (impl(ghc >= 9.2.0) || flag(ignore-plugins-ghc-bounds))
-    build-depends: hls-overloaded-record-dot-plugin == 2.4.0.0
+    build-depends: hls-overloaded-record-dot-plugin == 2.5.0.0
     cpp-options: -Dhls_overloaded_record_dot
 
 -- formatters
 
 common floskell
   if flag(floskell) && impl(ghc < 9.5)
-    build-depends: hls-floskell-plugin == 2.4.0.0
+    build-depends: hls-floskell-plugin == 2.5.0.0
     cpp-options: -Dhls_floskell
 
 common fourmolu
   if flag(fourmolu) && (impl(ghc < 9.8.0) || flag(ignore-plugins-ghc-bounds))
-    build-depends: hls-fourmolu-plugin == 2.4.0.0
+    build-depends: hls-fourmolu-plugin == 2.5.0.0
     cpp-options: -Dhls_fourmolu
 
 common ormolu
   if flag(ormolu) && impl(ghc < 9.7)
-    build-depends: hls-ormolu-plugin == 2.4.0.0
+    build-depends: hls-ormolu-plugin == 2.5.0.0
     cpp-options: -Dhls_ormolu
 
 common stylishHaskell
   if flag(stylishHaskell) && (impl(ghc < 9.8.0) || flag(ignore-plugins-ghc-bounds))
-    build-depends: hls-stylish-haskell-plugin == 2.4.0.0
+    build-depends: hls-stylish-haskell-plugin == 2.5.0.0
     cpp-options: -Dhls_stylishHaskell
 
 common refactor
   if flag(refactor) && (impl(ghc < 9.8.0) || flag(ignore-plugins-ghc-bounds))
-    build-depends: hls-refactor-plugin == 2.4.0.0
+    build-depends: hls-refactor-plugin == 2.5.0.0
     cpp-options: -Dhls_refactor
 
 library
@@ -339,6 +349,7 @@
                   , rename
                   , retrie
                   , hlint
+                  , stan
                   , moduleName
                   , pragmas
                   , splice
@@ -372,12 +383,12 @@
     , cryptohash-sha1
     , data-default
     , ghc
-    , ghcide                == 2.4.0.0
+    , ghcide                == 2.5.0.0
     , githash               >=0.1.6.1
-    , lsp                   >= 2.2.0.0
+    , lsp                   >= 2.3.0.0
     , hie-bios
     , hiedb
-    , hls-plugin-api        == 2.4.0.0
+    , hls-plugin-api        == 2.5.0.0
     , optparse-applicative
     , optparse-simple
     , process
@@ -516,7 +527,7 @@
     , lens-aeson
     , ghcide
     , ghcide-test-utils
-    , hls-test-utils == 2.4.0.0
+    , hls-test-utils == 2.5.0.0
     , lsp-types
     , aeson
     , hls-plugin-api
@@ -570,6 +581,9 @@
   main-is:            Main.hs
 
 benchmark benchmark
+    -- Depends on shake-bench which is unbuildable after this point
+    if impl(ghc >= 9.5)
+      buildable: False
     type: exitcode-stdio-1.0
     default-language: Haskell2010
     ghc-options: -Wall -Wno-name-shadowing -threaded
diff --git a/src/HlsPlugins.hs b/src/HlsPlugins.hs
--- a/src/HlsPlugins.hs
+++ b/src/HlsPlugins.hs
@@ -50,6 +50,10 @@
 import qualified Ide.Plugin.Hlint                  as Hlint
 #endif
 
+#if hls_stan
+import qualified Ide.Plugin.Stan                   as Stan
+#endif
+
 #if hls_moduleName
 import qualified Ide.Plugin.ModuleName             as ModuleName
 #endif
@@ -185,6 +189,9 @@
 #endif
 #if hls_hlint
       let pId = "hlint" in Hlint.descriptor (pluginRecorder pId) pId:
+#endif
+#if hls_stan
+      let pId = "stan" in Stan.descriptor (pluginRecorder pId) pId :
 #endif
 #if hls_splice
       Splice.descriptor "splice" :
diff --git a/src/Ide/Main.hs b/src/Ide/Main.hs
--- a/src/Ide/Main.hs
+++ b/src/Ide/Main.hs
@@ -90,7 +90,7 @@
 
         BiosMode PrintCradleType -> do
             dir <- IO.getCurrentDirectory
-            hieYaml <- Session.findCradle def dir
+            hieYaml <- Session.findCradle def (dir </> "a")
             cradle <- Session.loadCradle def hieYaml dir
             print cradle
 
