diff --git a/.vsts-ci/releaseBuild.yml b/.vsts-ci/releaseBuild.yml
index f11c870d..dd150aa9 100644
--- a/.vsts-ci/releaseBuild.yml
+++ b/.vsts-ci/releaseBuild.yml
@@ -42,7 +42,7 @@ stages:
Write-Host "PS Version: $($($PSVersionTable.PSVersion))"
Set-Location -Path '$(Build.SourcesDirectory)\PSReadLine'
.\build.ps1 -Bootstrap
- .\build.ps1 -Configuration Release -Framework net462 -CheckHelpContent
+ .\build.ps1 -Configuration Release -Framework net462
# Set target folder paths
New-Item -Path .\bin\Release\NuGetPackage -ItemType Directory > $null
diff --git a/MockPSConsole/MockPSConsole.csproj b/MockPSConsole/MockPSConsole.csproj
index 73766831..8c66078c 100644
--- a/MockPSConsole/MockPSConsole.csproj
+++ b/MockPSConsole/MockPSConsole.csproj
@@ -18,7 +18,7 @@
-
+
diff --git a/PSReadLine.build.ps1 b/PSReadLine.build.ps1
index 366ca494..49a397c2 100644
--- a/PSReadLine.build.ps1
+++ b/PSReadLine.build.ps1
@@ -160,7 +160,8 @@ task LayoutModule BuildPolyfiller, BuildMainModule, {
$version = $versionInfo.FileVersion
$semVer = $versionInfo.ProductVersion
- if ($semVer -match "(.*)-(.*)") {
+ # dotnet build may add the Git commit hash to the 'ProductVersion' attribute with this format: +.
+ if ($semVer -match "(.*)-([^\+]*)(?:\+.*)?") {
# Make sure versions match
if ($matches[1] -ne $version) { throw "AssemblyFileVersion mismatch with AssemblyInformationalVersion" }
$prerelease = $matches[2]
diff --git a/PSReadLine/Changes.txt b/PSReadLine/Changes.txt
index e2c67302..ab68c56c 100644
--- a/PSReadLine/Changes.txt
+++ b/PSReadLine/Changes.txt
@@ -1,3 +1,21 @@
+### [2.4.0-beta0] - 2024-03-01
+
+- Fix the null-reference exception when running `Debug-Job` on a thread job (#3957)
+- Add needed permission to the workflow (#3944, #3945, #3946)
+- Fix copying text to system clipboard on Linux using xclip (#3937)
+- Use the correct directory separator for tab completion based on the platform we are working with (#3935)
+- Update the minimal PS version required to be 5.1 (#3936)
+- Little code style cleanup for the `GetCompletions()` method (#3898)
+- Stop trying to de-duplicate completion results (#3897)
+- Windows keyboard layout handling: get the current layout from the parent terminal process (#3786) (Thanks @ForNeVeR!)
+- Add "resolution no activity" label to the bot-close list (#3852)
+- Fix a few VI key handlers to close edit group properly (#3845)
+- Update the documentation issue template to point to the PowerShell-Doc repo (#3839, #3840, #3841)
+- Handle large history file properly by reading lines in the streaming way (#3810)
+- Update build script to always include the `ProjectUri` info (#3821)
+
+[2.4.0-beta0]: https://github.com/PowerShell/PSReadLine/compare/v2.3.4...v2.4.0-beta0
+
### [2.3.4] - 2023-10-02
- Choose the inline prediction color based on the environment (#3808)
diff --git a/PSReadLine/PSReadLine.csproj b/PSReadLine/PSReadLine.csproj
index 2b294692..2c7fa7e4 100644
--- a/PSReadLine/PSReadLine.csproj
+++ b/PSReadLine/PSReadLine.csproj
@@ -5,9 +5,9 @@
Microsoft.PowerShell.PSReadLine
Microsoft.PowerShell.PSReadLine2
$(NoWarn);CA1416
- 2.3.4.0
- 2.3.4
- 2.3.4
+ 2.4.0.0
+ 2.4.0
+ 2.4.0-beta0
true
net462;net6.0
true
@@ -22,7 +22,7 @@
-
+
diff --git a/PSReadLine/PSReadLine.psd1 b/PSReadLine/PSReadLine.psd1
index 972931c4..560df39b 100644
--- a/PSReadLine/PSReadLine.psd1
+++ b/PSReadLine/PSReadLine.psd1
@@ -1,7 +1,7 @@
@{
RootModule = 'PSReadLine.psm1'
NestedModules = @("Microsoft.PowerShell.PSReadLine2.dll")
-ModuleVersion = '2.3.4'
+ModuleVersion = '2.4.0'
GUID = '5714753b-2afd-4492-a5fd-01d9e2cff8b5'
Author = 'Microsoft Corporation'
CompanyName = 'Microsoft Corporation'
diff --git a/Polyfill/Polyfill.csproj b/Polyfill/Polyfill.csproj
index bcc2fcb2..a1a1693c 100644
--- a/Polyfill/Polyfill.csproj
+++ b/Polyfill/Polyfill.csproj
@@ -12,7 +12,7 @@
-
+
diff --git a/test/PSReadLine.Tests.csproj b/test/PSReadLine.Tests.csproj
index b6c4625f..f7d69cd7 100644
--- a/test/PSReadLine.Tests.csproj
+++ b/test/PSReadLine.Tests.csproj
@@ -24,7 +24,7 @@
-
+