Skip to content
This repository was archived by the owner on Mar 20, 2025. It is now read-only.

Commit 59c36f2

Browse files
Merge pull request #88 from akkadotnet/dev
v1.4.17 Release
2 parents 585cfa6 + 327bc4a commit 59c36f2

40 files changed

+1393
-260
lines changed

README.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,19 @@ akka.persistence{
4242
4343
# defines column db type used to store payload. Available option: BYTEA (default), JSON, JSONB
4444
stored-as = BYTEA
45+
46+
# Setting used to toggle sequential read access when loading large objects
47+
# from journals and snapshot stores.
48+
sequential-access = off
49+
50+
# When turned on, persistence will use `BIGINT` and `GENERATED ALWAYS AS IDENTITY`
51+
# for journal table schema creation.
52+
# NOTE: This only affects newly created tables, as such, it should not affect any
53+
# existing database.
54+
#
55+
# !!!!! WARNING !!!!!
56+
# To use this feature, you have to have PorsgreSql version 10 or above
57+
use-bigint-identity-for-ordering-column = off
4558
}
4659
}
4760
@@ -71,6 +84,10 @@ akka.persistence{
7184
7285
# defines column db type used to store payload. Available option: BYTEA (default), JSON, JSONB
7386
stored-as = BYTEA
87+
88+
# Setting used to toggle sequential read access when loading large objects
89+
# from journals and snapshot stores.
90+
sequential-access = off
7491
}
7592
}
7693
}
@@ -110,6 +127,23 @@ CREATE TABLE {your_metadata_table_name} (
110127
);
111128
```
112129

130+
Note that if you turn on the `akka.persistence.journal.postgresql.use-bigint-identity-for-ordering-column` flag, the journal table schema will be altered to the latest recommended primary key setting.
131+
```
132+
CREATE TABLE {your_journal_table_name} (
133+
ordering BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
134+
persistence_id VARCHAR(255) NOT NULL,
135+
sequence_nr BIGINT NOT NULL,
136+
is_deleted BOOLEAN NOT NULL,
137+
created_at BIGINT NOT NULL,
138+
manifest VARCHAR(500) NOT NULL,
139+
payload BYTEA NOT NULL,
140+
tags VARCHAR(100) NULL,
141+
serializer_id INTEGER NULL,
142+
CONSTRAINT {your_journal_table_name}_uq UNIQUE (persistence_id, sequence_nr)
143+
);
144+
```
145+
Since this script is only run once during table generation, we will not provide any migration path for this change, any migration is left as an exercise for the user.
146+
113147
### Migration
114148

115149
#### From 1.1.0 to 1.3.1

RELEASE_NOTES.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
### 1.4.17 March 13 2021 ###
2+
Major upgrade and modernization for Akka.Persistence.PostgreSql
3+
4+
- Upgraded to Akka.NET v1.4.17
5+
- Implemented all Akka.Persistence.Query's correctly
6+
- [Lots of other fixes and modernizations, which you can read here](https://github.com/akkadotnet/Akka.Persistence.PostgreSql/projects/1).
7+
8+
Akka.Persistence.PostgreSql is now under the umbrella of the Akka.NET project again and will be maintained at roughly the same cadence as the other officially supported Akka.NET plugins.
9+
110
#### 1.3.9 August 29 2018 ####
211
Upgraded for Akka.NET v1.3.9.
312

build-system/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Azure Pipelines Build Files
2+
These `.yaml` files are used by Windows Azure DevOps Pipelines to help execute the following types of builds:
3+
4+
- Pull request validation on Linux (Mono / .NET Core)
5+
- Pull request validation on Windows (.NET Framework / .NET Core)
6+
- NuGet releases with automatic release notes posted to a Github Release repository.
7+
8+
**NOTE**: you will need to change some of the pipeline variables inside the `windows-release.yaml` for your specific project and you will also want to create variable groups with your signing and NuGet push information.
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
parameters:
2+
name: ''
3+
vmImage: ''
4+
displayName: ''
5+
artifactName: 'akkaBuild'
6+
scriptFileName: ''
7+
scriptArgs: 'all'
8+
outputDirectory: ''
9+
timeoutInMinutes: 120
10+
11+
jobs:
12+
- job: ${{ parameters.name }}
13+
displayName: ${{ parameters.displayName }}
14+
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
15+
pool:
16+
vmImage: ${{ parameters.vmImage }}
17+
steps:
18+
- checkout: self # self represents the repo where the initial Pipelines YAML file was found
19+
clean: false # whether to fetch clean each time
20+
submodules: recursive # set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules
21+
persistCredentials: true
22+
- task: UseDotNet@2
23+
displayName: 'Use .NET Core Runtime 3.1.10'
24+
inputs:
25+
packageType: runtime
26+
version: 3.1.10
27+
# Linux or macOS
28+
- task: Bash@3
29+
displayName: Linux / OSX Build
30+
inputs:
31+
filePath: ${{ parameters.scriptFileName }}
32+
arguments: ${{ parameters.scriptArgs }}
33+
continueOnError: true
34+
condition: in( variables['Agent.OS'], 'Linux', 'Darwin' )
35+
# Windows test is disabled, could not use redis container in Azure Pipelines
36+
# - task: BatchScript@1
37+
# displayName: Windows Build
38+
# inputs:
39+
# filename: ${{ parameters.scriptFileName }}
40+
# arguments: ${{ parameters.scriptArgs }}
41+
# continueOnError: true
42+
# condition: eq( variables['Agent.OS'], 'Windows_NT' )
43+
- task: PublishTestResults@2
44+
inputs:
45+
testRunner: VSTest
46+
testResultsFiles: '**/*.trx' #TestResults folder usually
47+
testRunTitle: ${{ parameters.name }}
48+
mergeTestResults: true
49+
- task: CopyFiles@2
50+
displayName: 'Copy Build Output'
51+
inputs:
52+
sourceFolder: ${{ parameters.outputDirectory }}
53+
contents: '**\*'
54+
targetFolder: $(Build.ArtifactStagingDirectory)
55+
continueOnError: boolean # 'true' if future steps should run even if this step fails; defaults to 'false'
56+
- task: PublishBuildArtifacts@1
57+
inputs:
58+
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
59+
artifactName: ${{ parameters.artifactName }}
60+
- script: 'echo 1>&2'
61+
failOnStderr: true
62+
displayName: 'If above is partially succeeded, then fail'
63+
condition: eq(variables['Agent.JobStatus'], 'SucceededWithIssues')

build-system/pr-validation.yaml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Pull request validation for Windows against the `dev` and `master` branches
2+
# See https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema for reference
3+
trigger:
4+
branches:
5+
include:
6+
- dev
7+
- master
8+
9+
pr:
10+
autoCancel: true # indicates whether additional pushes to a PR should cancel in-progress runs for the same PR. Defaults to true
11+
branches:
12+
include: [ dev, master ] # branch names which will trigger a build
13+
14+
name: $(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r)
15+
16+
jobs:
17+
# Windows testing is disabled, Redis linux container can not run in windows docker.
18+
# - template: azure-pipeline.template.yaml
19+
# parameters:
20+
# name: 'windows_pr'
21+
# displayName: 'Windows PR Validation'
22+
# vmImage: 'windows-2019'
23+
# scriptFileName: build.cmd
24+
# scriptArgs: all
25+
26+
- template: azure-pipeline.template.yaml
27+
parameters:
28+
name: 'linux_pr'
29+
displayName: 'Linux PR Validation'
30+
vmImage: 'ubuntu-16.04'
31+
scriptFileName: './build.sh'
32+
scriptArgs: RunTestsNetCore
33+
outputDirectory: 'TestResults'
34+
artifactName: 'net_core_tests-$(Build.BuildId)'

build-system/windows-release.yaml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Release task for PbLib projects
2+
# See https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema for reference
3+
4+
pool:
5+
vmImage: vs2017-win2016
6+
demands: Cmd
7+
8+
trigger:
9+
branches:
10+
include:
11+
- refs/tags/*
12+
pr: none
13+
14+
variables:
15+
- group: signingSecrets #create this group with SECRET variables `signingUsername` and `signingPassword`
16+
- group: nugetKeys #create this group with SECRET variables `nugetKey`
17+
- name: githubConnectionName
18+
value: AkkaDotNet_Releases
19+
- name: projectName
20+
value: Akka.Persistence.PostgreSql
21+
- name: githubRepositoryName
22+
value: akkadotnet/Akka.Persistence.PostgreSql
23+
steps:
24+
- task: UseDotNet@2
25+
displayName: 'Use .NET Core Runtime 3.1.10'
26+
inputs:
27+
packageType: runtime
28+
version: 3.1.10
29+
- task: BatchScript@1
30+
displayName: 'FAKE Build'
31+
inputs:
32+
filename: build.cmd
33+
arguments: 'Nuget nugetpublishurl=https://www.nuget.org/api/v2/package nugetkey=$(nugetKey)'
34+
35+
- task: GitHubRelease@0
36+
displayName: 'GitHub release (create)'
37+
inputs:
38+
gitHubConnection: $(githubConnectionName)
39+
repositoryName: $(githubRepositoryName)
40+
title: '$(projectName) v$(Build.SourceBranchName)'
41+
releaseNotesFile: 'RELEASE_NOTES.md'
42+
assets: |
43+
bin\nuget\*.nupkg

0 commit comments

Comments
 (0)