diff --git a/CMakeLists.txt b/CMakeLists.txt
index cdfb12753bf54c378cc354acc93c33181eabcd86..439f2b0d205250d461bb065c649771af7eb8dfee 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -11,7 +11,7 @@
 cmake_minimum_required(VERSION 3.15)
 option(CMAKE_EXPORT_COMPILE_COMMANDS "Enable/Disable output of compile_commands.json" ON)
 
-project(LHCb VERSION 54.0
+project(LHCb VERSION 54.1
         LANGUAGES CXX)
 
 # Enable testing with CTest/CDash
diff --git a/ReleaseNotes/v54r1.md b/ReleaseNotes/v54r1.md
new file mode 100644
index 0000000000000000000000000000000000000000..a5d5fb407e30f7ac77f7ee32bd4e14ccd579441e
--- /dev/null
+++ b/ReleaseNotes/v54r1.md
@@ -0,0 +1,54 @@
+2022-10-26 LHCb v54r1
+===
+
+This version uses
+Gaudi [v36r8](../../../../Gaudi/-/tags/v36r8),
+Detector [v1r5](../../../../Detector/-/tags/v1r5) and
+This version uses LCG [101a](http://lcginfo.cern.ch/release/101a_LHCB_7/) with ROOT 6.24.08.
+
+This version is released on `master` branch.
+Built relative to LHCb [v54r0](/../../tags/v54r0), with the following changes:
+
+### New features ~"new feature"
+
+- ~Tracking | PrSciFiHits add method to check if empty, !3814 (@gunther)
+
+
+### Fixes ~"bug fix" ~workaround
+
+- ~Core | Make sure barriers do not think they depend on themselves, !3819 (@graven)
+
+
+### Enhancements ~enhancement
+
+- ~Decoding ~Muon | Protect the muon decoding from unexpected data, !3736 (@rmatev) [#242]
+- ~Conditions | Add Condition conversion to JSON and improve conversion to YAML, !3768 (@clemenci) [#241]
+
+
+### Code cleanups and changes to tests ~modernisation ~cleanup ~testing
+
+- ~Decoding ~RICH | Clean up how RICH DAQ helper initialisation status codes are set, !3821 (@jonrob)
+- ~Decoding ~RICH | Add RICH decode-and-spacepoints test using 2022 data, !3820 (@jonrob)
+- ~Calo | Modernize CaloFutureFillRawBuffer, !3744 (@jmarchan)
+- ~Persistency | Do not write keys imported from file into git, !3804 (@graven)
+- ~Build | Speed up projectenv.sh generation and execution, !3824 (@rmatev)
+- Added missing std::pair<int, LHCb::GenFSR::CrossValues> to XML dict, !3835 (@bcouturi)
+- Do not hardcode value for default field current in DD4hepSvc, !3828 (@jonrob)
+- Do not use minus in Plume channel string representation, !3798 (@rmatev)
+- Dropped compilation of DetDesc in DD4hep mode and adapted code, !3789 (@sponce)
+- Make MuonChamberLayout error message more explicit, !3815 (@samarian)
+
+
+### Other
+
+- ~Tracking ~Persistency | Increase version number of PackedTrack to reflect change in the definition of LHCbID, !3810 (@graven)
+- ~RICH | Add defines for VerboseCounter and DebugCounter to RichCommonBase, !3813 (@jonrob)
+- ~RICH ~Conditions | Rich Conditions - Use nlohmann::json, !3818 (@jonrob)
+- ~"Event model" ~Persistency | SOA persistency, !3581 (@sesen)
+- ~Luminosity | Update V2 of lumi summary rawbank to use correct counter sizes, !3803 (@sxian)
+- Fix use of Gaudi::Accumulators::Counter, !3830 (@clemenci)
+- Unify packing code further, pack multiple types with a single packer, !3805 (@graven)
+- Extend HltLumiSummary decoding to Run 3 format, !3518 (@dcraik)
+- Add an is_barrier property to the PyConf algorithm wrapper, !3809 (@graven)
+- Update References for: LHCb!3808 based on lhcb-master-mr/5862, !3812 (@lhcbsoft)
+- IOSvc info print number of processed files, !3808 (@gunther)