Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
2a9d1a5
Initial commit
LucDeCaf Jul 7, 2026
353c6e3
Use .net 10 for workflows
LucDeCaf Jul 14, 2026
6383afe
Update global.json feature band
LucDeCaf Jul 15, 2026
0f4beaa
Replace net8.0 with net10.0 in READMEs
LucDeCaf Jul 15, 2026
aebb849
Replace net8.0 with net10.0 in test comments
LucDeCaf Jul 15, 2026
ba732e3
Remove unneeded csproj config/deps
LucDeCaf Jul 15, 2026
e513c85
Run net10.0 instead of net8.0 for test
LucDeCaf Jul 15, 2026
68cb85d
Merge branch 'main' into dotnet-10
LucDeCaf Jul 15, 2026
d426e68
Merge branch 'main' into dotnet-10
LucDeCaf Aug 12, 2026
ddd506e
Merge branch 'v1' into dotnet-10
LucDeCaf Aug 13, 2026
4e2ab77
remove fluff + unused deps, remove SQLitePCLRaw workaround
LucDeCaf Aug 17, 2026
2f98f32
Merge branch 'main' into dotnet-10
LucDeCaf Sep 9, 2026
3603413
Merge branch 'main' into dotnet-10
LucDeCaf Sep 18, 2026
8786839
Deprecate `PowerSync.Maui`, expand `PowerSync.Common`'s supported run…
LucDeCaf Sep 22, 2026
8dac328
Merge branch 'v1' into dotnet-10
LucDeCaf Sep 22, 2026
545214a
Add Tools/Setup to solution, update comment
LucDeCaf Sep 23, 2026
4c46fbc
scaffold classes
LucDeCaf Sep 29, 2026
824cee5
temp commit
LucDeCaf Sep 30, 2026
59bc0a9
json converters, doc comments, better structuring, test
LucDeCaf Oct 1, 2026
932615b
use Options.Schema
LucDeCaf Oct 1, 2026
f654aec
tests, fix serialization
LucDeCaf Oct 1, 2026
69942e8
fix missing raw_tables in schema
LucDeCaf Oct 2, 2026
8ebd41c
port tests from Kotlin/JS, fix serialization error
LucDeCaf Oct 2, 2026
2d8d31f
more tests, validation logic
LucDeCaf Oct 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .github/workflows/build-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ jobs:

- name: Restore Projects
run: |
dotnet restore PowerSync/PowerSync.Common/PowerSync.Common.csproj -p:TargetFrameworks=net8.0
dotnet restore PowerSync/PowerSync.Maui/PowerSync.Maui.csproj -p:TargetFrameworks=net8.0
dotnet restore PowerSync/PowerSync.Common/PowerSync.Common.csproj -p:TargetFrameworks=net10.0

- name: Generate API Metadata
working-directory: docs
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/deploy-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,7 @@ jobs:

- name: Restore Projects
run: |
dotnet restore PowerSync/PowerSync.Common/PowerSync.Common.csproj -p:TargetFrameworks=net8.0
dotnet restore PowerSync/PowerSync.Maui/PowerSync.Maui.csproj -p:TargetFrameworks=net8.0
dotnet restore PowerSync/PowerSync.Common/PowerSync.Common.csproj -p:TargetFrameworks=net10.0

- name: Generate API Metadata
working-directory: docs
Expand Down
37 changes: 10 additions & 27 deletions .github/workflows/dev-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ jobs:
- name: Setup .NET SDK
uses: actions/setup-dotnet@v4
with:
dotnet-version: "8.0.x"
dotnet-version: "10.0.x"

- name: Install MAUI Workloads
- name: Install native workloads
run: dotnet workload restore

- name: Download PowerSync extension
Expand All @@ -33,9 +33,6 @@ jobs:
- name: Restore dependencies
run: dotnet restore

- name: Install Android SDK for net8.0-android
run: dotnet build PowerSync/PowerSync.Common -t:InstallAndroidDependencies -f net8.0-android -p:AndroidSdkDirectory="$ANDROID_HOME" -p:AcceptAndroidSdkLicenses=True

- name: Extract Common Package Version from CHANGELOG.md
shell: bash
run: |
Expand All @@ -50,20 +47,6 @@ jobs:
- name: Run Pack For Common
run: dotnet pack PowerSync/PowerSync.Common -c Release -o ${{ github.workspace }}/output

- name: Extract MAUI Package Version from CHANGELOG.md
shell: bash
run: |
MAUI_VERSION=$(awk '/^## [0-9]+\.[0-9]+\.[0-9]+-dev(\.[0-9]+)?$/ {print $2; exit}' PowerSync/PowerSync.Maui/CHANGELOG.md)
if [[ -z "$MAUI_VERSION" ]]; then
echo "Error: Invalid dev version found in PowerSync.Maui/CHANGELOG.md. Expected format: x.x.x-dev.x"
exit 1
fi
echo "Detected Version: $MAUI_VERSION"
echo "VERSION=$MAUI_VERSION" >> $GITHUB_ENV

- name: Run Pack For MAUI
run: dotnet pack PowerSync/PowerSync.Maui -c Release -o ${{ github.workspace }}/output

- name: Upload Build Artifacts
uses: actions/upload-artifact@v4
with:
Expand All @@ -81,6 +64,11 @@ jobs:
contents: read

steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
ref: ${{ github.ref }}

- name: Download build artifacts
uses: actions/download-artifact@v4
with:
Expand All @@ -90,7 +78,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: "8.0.x"
dotnet-version: "10.0.x"

- name: Install Sign CLI tool
run: dotnet tool install --tool-path . --prerelease sign
Expand All @@ -108,6 +96,7 @@ jobs:
./sign code azure-key-vault
**/*.nupkg
--base-directory "${{ github.workspace }}/BuildArtifacts"
--file-list "${{ github.workspace }}/Tools/Setup/sign-file-list.txt"
--publisher-name "PowerSync"
--description "PowerSync .NET SDK"
--description-url "https://github.com/powersync-ja/powersync-dotnet"
Expand Down Expand Up @@ -142,7 +131,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: "8.0.x"
dotnet-version: "10.0.x"

- name: Validate artifact signatures
run: dotnet nuget verify ${{ github.workspace }}/SignedArtifacts/**/*.nupkg
Expand All @@ -158,9 +147,3 @@ jobs:
dotnet nuget push "${{ github.workspace }}\SignedArtifacts\PowerSync.Common*.nupkg"
--api-key "${{ steps.login.outputs.NUGET_API_KEY }}"
--source https://api.nuget.org/v3/index.json

- name: Run Push For Maui
run: >
dotnet nuget push "${{ github.workspace }}\SignedArtifacts\PowerSync.Maui*.nupkg"
--api-key "${{ steps.login.outputs.NUGET_API_KEY }}"
--source https://api.nuget.org/v3/index.json
55 changes: 10 additions & 45 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ jobs:

outputs:
common_version: ${{ steps.extract_version.outputs.common_version }}
maui_version: ${{ steps.extract_maui_version.outputs.maui_version }}

steps:
- name: Checkout Repository
Expand All @@ -26,9 +25,9 @@ jobs:
- name: Setup .NET SDK
uses: actions/setup-dotnet@v4
with:
dotnet-version: "8.0.x"
dotnet-version: "10.0.x"

- name: Install MAUI Workloads
- name: Install native workloads
run: dotnet workload restore

- name: Download PowerSync extension
Expand All @@ -37,9 +36,6 @@ jobs:
- name: Restore dependencies
run: dotnet restore

- name: Install Android SDK for net8.0-android
run: dotnet build PowerSync/PowerSync.Common -t:InstallAndroidDependencies -f net8.0-android -p:AndroidSdkDirectory="$ANDROID_HOME" -p:AcceptAndroidSdkLicenses=True

- name: Extract Common Package Version from CHANGELOG.md
id: extract_version
shell: bash
Expand All @@ -56,22 +52,6 @@ jobs:
- name: Run Pack For Common
run: dotnet pack PowerSync/PowerSync.Common -c Release -o ${{ github.workspace }}/output

- name: Extract MAUI Package Version from CHANGELOG.md
id: extract_maui_version
shell: bash
run: |
MAUI_VERSION=$(awk '/^## [0-9]+\.[0-9]+\.[0-9]+/ {print $2; exit}' PowerSync/PowerSync.Maui/CHANGELOG.md)
if [[ -z "$MAUI_VERSION" ]]; then
echo "Error: Invalid version found in PowerSync.Maui/CHANGELOG.md. Expected format: '## x.x.x'"
exit 1
fi
echo "Detected Version: $MAUI_VERSION"
echo "VERSION=$MAUI_VERSION" >> $GITHUB_ENV
echo "maui_version=$MAUI_VERSION" >> $GITHUB_OUTPUT

- name: Run Pack For MAUI
run: dotnet pack PowerSync/PowerSync.Maui -c Release -o ${{ github.workspace }}/output

- name: Upload Build Artifacts
uses: actions/upload-artifact@v4
with:
Expand All @@ -89,6 +69,11 @@ jobs:
contents: read

steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
ref: ${{ github.ref }}

- name: Download build artifacts
uses: actions/download-artifact@v4
with:
Expand All @@ -98,7 +83,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: "8.0.x"
dotnet-version: "10.0.x"

- name: Install Sign CLI tool
run: dotnet tool install --tool-path . --prerelease sign
Expand All @@ -116,6 +101,7 @@ jobs:
./sign code azure-key-vault
**/*.nupkg
--base-directory "${{ github.workspace }}/BuildArtifacts"
--file-list "${{ github.workspace }}/Tools/Setup/sign-file-list.txt"
--publisher-name "PowerSync"
--description "PowerSync .NET SDK"
--description-url "https://github.com/powersync-ja/powersync-dotnet"
Expand Down Expand Up @@ -150,7 +136,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: "8.0.x"
dotnet-version: "10.0.x"

- name: Validate artifact signatures
run: dotnet nuget verify ${{ github.workspace }}/SignedArtifacts/**/*.nupkg
Expand Down Expand Up @@ -181,24 +167,3 @@ jobs:
--target main \
--generate-notes \
SignedArtifacts/PowerSync.Common*.nupkg

- name: Run Push For Maui
run: >
dotnet nuget push "${{ github.workspace }}\SignedArtifacts\PowerSync.Maui*.nupkg"
--api-key "${{ steps.login.outputs.NUGET_API_KEY }}"
--source https://api.nuget.org/v3/index.json

- name: Create GitHub Release For Maui
continue-on-error: true
shell: bash
env:
GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}
MAUI_VERSION: ${{ needs.build.outputs.maui_version }}
run: |
gh release create "PowerSync.Maui@${MAUI_VERSION}" \
--draft \
--title "PowerSync.Maui@${MAUI_VERSION}" \
--target main \
--generate-notes \
SignedArtifacts/PowerSync.Maui*.nupkg
14 changes: 7 additions & 7 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
jobs:
build:
strategy:
matrix:
matrix:
runner: [windows-latest, windows-11-arm]
name: Test Packages ${{ matrix.runner }}
runs-on: ${{ matrix.runner }}
Expand All @@ -18,16 +18,16 @@ jobs:
- name: Setup .NET SDK
uses: actions/setup-dotnet@v5
with:
dotnet-version: '8.0'
dotnet-version: "10.0"

- name: Install MAUI Workloads
- name: Install native workloads
run: dotnet workload restore

- name: Download PowerSync extension
run: dotnet run --project Tools/Setup
run: dotnet run --project Tools/Setup

- name: Restore dependencies
run: dotnet restore

- name: Run tests
run: dotnet test -v n --framework net8.0
run: dotnet test -v n --framework net10.0
10 changes: 3 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -53,18 +53,14 @@ TestResults/
*.VSIXProjectLaunch
.project
.vsconfig
.env

*.db
*.db-shm
*.db-wal

#Core binaries - add rules after ps extension downloading is supported
*.dylib
*.dll
*.so
*.xcframework
.env
*NativeLibs
# PowerSync runtimes installed by Tools/Setup
**/runtimes/

# Ignore user id file
user_id.txt
Expand Down
3 changes: 0 additions & 3 deletions Directory.build.props
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,4 @@
<PropertyGroup>
<MSBuildWarningsAsMessages>$(MSBuildWarningsAsMessages);NETSDK1202</MSBuildWarningsAsMessages>
</PropertyGroup>
<ItemGroup>
<Compile Include="$(MSBuildThisFileDirectory)IsExternalInit.cs" Visible="false" />
</ItemGroup>
</Project>
7 changes: 0 additions & 7 deletions IsExternalInit.cs

This file was deleted.

3 changes: 2 additions & 1 deletion PowerSync/PowerSync.Common/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@

- Full release.
- `PowerSyncDatabase.OnChange` now returns the underlying raw table name instead of the view name to mirror PowerSync JS.
- Use `long` for op IDs instead of `string`. This affects the types returned by some methods used in `PowerSyncBackendConnector.UploadData`, namely `PowerSyncDatabase.GetNextCrudTransaction()` and `PowerSyncDatabase.GetCrudBatch()`.
- Use `long` for op IDs instead of `string`. This affects the types returned by some methods used in `PowerSyncBackendConnector.UploadData`, namely `PowerSyncDatabase.GetNextCrudTransaction()` and `PowerSyncDatabase.GetCrudBatch()`, as well as `ICustomCheckpointRequestConnector.PostCheckpointRequest`.
- Bundle and load native libraries on Android, iOS, and MacCatalyst. This allows `PowerSync.Common` to fully replace `PowerSync.Maui`.

## 1.0.0 (unlisted)

Expand Down
Loading
Loading