Skip to content

Commit 318b624

Browse files
authored
Merge pull request #224 from azygis/features/222-support-npgsql5
Bring back support for Npgsql 5
2 parents 76f44c3 + d5a309b commit 318b624

File tree

5 files changed

+58
-19
lines changed

5 files changed

+58
-19
lines changed

README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ app.UseHangfireDashboard();
2020
```
2121

2222
### For ASP.NET Core
23-
First, additional NuGet packages needs installation:
24-
* Hangfire
25-
* Hangfire.AspNetCore
26-
* Hangfire.PostgreSql
23+
First, NuGet package needs installation.
24+
* Hangfire.PostgreSql (Uses Npgsql 6)
25+
* Hangfire.PostgreSql.Npgsql5 (Uses Npgsql 5)
2726

27+
Both packages are functionally the same, the only difference is the underlying Npgsql dependency version.
2828

2929
In `Startup.cs` _ConfigureServices(IServiceCollection services)_ method add the following line:
3030
```csharp

appveyor.yml

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ build_script:
1616
createdb hangfire_tests
1717
1818
.\build.ps1 -t Pack
19+
.\build.ps1 -t Pack -NpgsqlVersion 5
1920
cache:
2021
- tools -> build.cake
2122
- tools -> build.ps1

build.cake

+16-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
#addin nuget:?package=Newtonsoft.Json&version=9.0.1
1+
#addin nuget:?package=Newtonsoft.Json&version=9.0.1
22

33
//////////////////////////////////////////////////////////////////////
44
// ARGUMENTS
55
//////////////////////////////////////////////////////////////////////
66

77
var target = Argument("target", "Default");
8+
var npgsqlVersion = Argument("npgsql", "Default");
89

910
//////////////////////////////////////////////////////////////////////
1011
// FUNCTIONS
@@ -22,7 +23,11 @@ IEnumerable<string> GetFrameworks(string path)
2223
Task("Restore")
2324
.Does(() =>
2425
{
25-
DotNetCoreRestore();
26+
var settings = new DotNetCoreRestoreSettings
27+
{
28+
ArgumentCustomization = args => args.Append($"-p:NpgsqlVersion={npgsqlVersion}")
29+
};
30+
DotNetCoreRestore(settings);
2631
});
2732

2833
Task("Build")
@@ -31,7 +36,9 @@ Task("Build")
3136
{
3237
var settings = new DotNetCoreBuildSettings
3338
{
34-
Configuration = "Release"
39+
ArgumentCustomization = args => args.Append($"-p:NpgsqlVersion={npgsqlVersion}"),
40+
Configuration = "Release",
41+
NoRestore = true
3542
};
3643

3744
var projects = GetFiles("./src/**/*.csproj");
@@ -57,10 +64,14 @@ Task("Test")
5764
.Does(() =>
5865
{
5966
var files = GetFiles("tests/**/*.csproj");
67+
var settings = new DotNetCoreTestSettings
68+
{
69+
ArgumentCustomization = args => args.Append($"-p:NpgsqlVersion={npgsqlVersion}")
70+
};
6071
foreach(var file in files)
6172
{
6273
Information("Testing: {0}", file);
63-
DotNetCoreTest(file.ToString());
74+
DotNetCoreTest(file.ToString(), settings);
6475
}
6576
});
6677

@@ -70,6 +81,7 @@ Task("Pack")
7081
{
7182
var settings = new DotNetCorePackSettings
7283
{
84+
ArgumentCustomization = args => args.Append($"-p:NpgsqlVersion={npgsqlVersion}"),
7385
Configuration = "Release",
7486
OutputDirectory = "publish/",
7587
NoBuild = true

build.ps1

+10-5
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,20 @@ Param(
4040
[string]$Script,
4141
[string]$Target,
4242
[string]$Configuration,
43+
[Parameter(Mandatory=$false)]
44+
[string]$NpgsqlVersion,
4345
[ValidateSet("Quiet", "Minimal", "Normal", "Verbose", "Diagnostic")]
4446
[string]$Verbosity,
4547
[switch]$ShowDescription,
4648
[Alias("WhatIf", "Noop")]
4749
[switch]$DryRun,
4850
[switch]$SkipToolPackageRestore,
49-
[Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)]
51+
[Parameter(Position=0, Mandatory=$false, ValueFromRemainingArguments=$true)]
5052
[string[]]$ScriptArgs
5153
)
5254

55+
if (!$NpgsqlVersion) { $NpgsqlVersion = 'Default'; }
56+
5357
# This is an automatic variable in PowerShell Core, but not in Windows PowerShell 5.x
5458
if (-not (Test-Path variable:global:IsCoreCLR)) {
5559
$IsCoreCLR = $false
@@ -90,12 +94,12 @@ function MD5HashFile([string] $filePath)
9094
}
9195
finally
9296
{
93-
if ($file -ne $null)
97+
if ($null -ne $file)
9498
{
9599
$file.Dispose()
96100
}
97101

98-
if ($md5 -ne $null)
102+
if ($null -ne $md5)
99103
{
100104
$md5.Dispose()
101105
}
@@ -156,8 +160,8 @@ if (!(Test-Path $PACKAGES_CONFIG)) {
156160
if (!(Test-Path $NUGET_EXE)) {
157161
Write-Verbose -Message "Trying to find nuget.exe in PATH..."
158162
$existingPaths = $Env:Path -Split ';' | Where-Object { (![string]::IsNullOrEmpty($_)) -and (Test-Path $_ -PathType Container) }
159-
$NUGET_EXE_IN_PATH = Get-ChildItem -Path $existingPaths -Filter "nuget.exe" | Select -First 1
160-
if ($NUGET_EXE_IN_PATH -ne $null -and (Test-Path $NUGET_EXE_IN_PATH.FullName)) {
163+
$NUGET_EXE_IN_PATH = Get-ChildItem -Path $existingPaths -Filter "nuget.exe" | Select-Object -First 1
164+
if ($null -ne $NUGET_EXE_IN_PATH -and (Test-Path $NUGET_EXE_IN_PATH.FullName)) {
161165
Write-Verbose -Message "Found in PATH at $($NUGET_EXE_IN_PATH.FullName)."
162166
$NUGET_EXE = $NUGET_EXE_IN_PATH.FullName
163167
}
@@ -271,6 +275,7 @@ if ($Configuration) { $cakeArguments += "--configuration=$Configuration" }
271275
if ($Verbosity) { $cakeArguments += "--verbosity=$Verbosity" }
272276
if ($ShowDescription) { $cakeArguments += "--showdescription" }
273277
if ($DryRun) { $cakeArguments += "--dryrun" }
278+
$cakeArguments += "--npgsql=${NpgsqlVersion}"
274279
$cakeArguments += $ScriptArgs
275280

276281
# Start Cake

src/Hangfire.PostgreSql/Hangfire.PostgreSql.csproj

+27-6
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,18 @@
44
<Description>PostgreSql storage implementation for Hangfire (background job system for ASP.NET and aspnet core applications).</Description>
55
<Copyright>Copyright © 2014-2021 Frank Hommers and others</Copyright>
66
<AssemblyTitle>Hangfire PostgreSql Storage</AssemblyTitle>
7-
<VersionPrefix>1.8.6</VersionPrefix>
7+
<VersionPrefix>1.9.4</VersionPrefix>
88
<Authors>Frank Hommers and others (Burhan Irmikci (barhun), Zachary Sims(zsims), kgamecarter, Stafford Williams (staff0rd), briangweber, Viktor Svyatokha (ahydrax), Christopher Dresel (Dresel), Vytautas Kasparavičius (vytautask), Vincent Vrijburg, David Roth (davidroth).</Authors>
99
<TargetFramework>netstandard2.0</TargetFramework>
1010
<AssemblyName>Hangfire.PostgreSql</AssemblyName>
1111
<OutputType>Library</OutputType>
12-
<PackageId>Hangfire.PostgreSql</PackageId>
1312
<PackageTags>Hangfire;PostgreSql;Postgres</PackageTags>
1413
<PackageReleaseNotes>https://github.com/frankhommers/Hangfire.PostgreSql/releases</PackageReleaseNotes>
1514
<PackageProjectUrl>http://hmm.rs/Hangfire.PostgreSql</PackageProjectUrl>
1615
<PackageLicenseUrl></PackageLicenseUrl>
17-
<Version>1.8.6.0</Version>
18-
<FileVersion>1.8.6.0</FileVersion>
19-
<AssemblyVersion>1.8.6.0</AssemblyVersion>
16+
<Version>1.9.4.0</Version>
17+
<FileVersion>1.9.4.0</FileVersion>
18+
<AssemblyVersion>1.9.4.0</AssemblyVersion>
2019
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
2120
<PackageLicenseFile>LICENSE.md</PackageLicenseFile>
2221
<RepositoryUrl>https://github.com/frankhommers/Hangfire.PostgreSql</RepositoryUrl>
@@ -37,7 +36,6 @@
3736
</PackageReference>
3837
<PackageReference Include="Hangfire.Core" Version="1.7.27" />
3938
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
40-
<PackageReference Include="Npgsql" Version="6.0.0" />
4139
</ItemGroup>
4240

4341
<ItemGroup>
@@ -46,5 +44,28 @@
4644
<PackagePath></PackagePath>
4745
</None>
4846
</ItemGroup>
47+
48+
<!-- Overrides for Cake script -->
49+
50+
<Choose>
51+
<When Condition="'$(NpgsqlVersion)' == '5'">
52+
<PropertyGroup>
53+
<PackageId>Hangfire.PostgreSql.Npgsql5</PackageId>
54+
</PropertyGroup>
55+
<ItemGroup>
56+
<PackageReference Include="Npgsql" Version="5.0.0" />
57+
</ItemGroup>
58+
</When>
59+
<Otherwise>
60+
<PropertyGroup>
61+
<PackageId>Hangfire.PostgreSql</PackageId>
62+
</PropertyGroup>
63+
<ItemGroup>
64+
<PackageReference Include="Npgsql" Version="6.0.0" />
65+
</ItemGroup>
66+
</Otherwise>
67+
</Choose>
68+
69+
<!-- END Overrides for Cake script -->
4970

5071
</Project>

0 commit comments

Comments
 (0)