Skip to content

Commit 9fd1712

Browse files
DindexxJoTiTu
andauthored
[WIP] v3.0.0 (#425)
* Migrate storage layer to EF Core Signed-off-by: Kevin <[email protected]> * deprecate aries and indy (#427) Signed-off-by: Kevin <[email protected]> * Align IssuerMetadata with VCI 1.0 spec (#438) * support credential_metadata in issuer metadata and drop AttributeOrder support Signed-off-by: Johannes Tuerk <[email protected]> * clean attribute order Signed-off-by: Johannes Tuerk <[email protected]> * Merge branch 'v3.0.0' of github.com:openwallet-foundation-labs/wallet-framework-dotnet into algin-isser-metadata-with-oid4vci1.0 Signed-off-by: Johannes Tuerk <[email protected]> * Add CredentialsSet id as index to SdJwt and MDoc records Signed-off-by: Johannes Tuerk <[email protected]> * Fix the issuance for the PID (associate SdJwt AND MDocs with PID) Signed-off-by: Johannes Tuerk <[email protected]> * implement requested changes Signed-off-by: Johannes Tuerk <[email protected]> * minimal cleanup Signed-off-by: Kevin <[email protected]> * Revert Vctmetadata ClaimDisplay removal Signed-off-by: Johannes Tuerk <[email protected]> --------- Signed-off-by: Johannes Tuerk <[email protected]> Signed-off-by: Kevin <[email protected]> Co-authored-by: Kevin <[email protected]> Signed-off-by: Kevin <[email protected]> * adjust readme for deprecating indy (#439) Signed-off-by: Kevin <[email protected]> * adjustment for indy migration (#450) Signed-off-by: Kevin <[email protected]> * Fix supported algs for the issuer signed jwt in wallet metadata (#449) Signed-off-by: Johannes Tuerk <[email protected]> Signed-off-by: Kevin <[email protected]> * fix tests Signed-off-by: Kevin <[email protected]> * make dependencies packable again Signed-off-by: Kevin <[email protected]> * DC-API: Validate origin Signed-off-by: Kevin <[email protected]> * Introduce SDLC (#466) * initial sdcl introduction Signed-off-by: Johannes Tuerk <[email protected]> * add TODO Signed-off-by: Johannes Tuerk <[email protected]> * sign git tag Signed-off-by: Johannes Tuerk <[email protected]> * update sdlc guide Signed-off-by: Johannes Tuerk <[email protected]> --------- Signed-off-by: Johannes Tuerk <[email protected]> Signed-off-by: Kevin <[email protected]> * Dc api validate origin (#473) * DC-API: Validate origin Signed-off-by: Kevin <[email protected]> * DC-API: refactor Signed-off-by: Kevin <[email protected]> --------- Signed-off-by: Kevin <[email protected]> --------- Signed-off-by: Kevin <[email protected]> Signed-off-by: Johannes Tuerk <[email protected]> Co-authored-by: Johannes Tuerk <[email protected]>
1 parent 5d65949 commit 9fd1712

File tree

757 files changed

+8605
-8950
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

757 files changed

+8605
-8950
lines changed

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
#### Short description of what this resolves:
1+
## Summary
2+
Short description of what this PR changes and why.
23

4+
### Related Issue(s)
5+
If applicable link the related issue(s).
36

4-
#### Changes proposed in this pull request:
5-
6-
-
7-
-
8-
-
9-
10-
**Fixes**: #
7+
## Checklist
8+
- [ ] No secrets, credentials, or sensitive data are added
9+
- [ ] CHANGELOG.md updated under [Unreleased] with correct category and links according to [CONTRIBUTING.md](../CONTRIBUTING.md)
10+
- [ ] [README.md](../README.md) updated if applicable
11+
- [ ] (Unit) Tests added if applicable
Lines changed: 77 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,87 @@
1-
name: Maui CI
1+
name: WalletFramework CI
22

33
on:
4-
push:
5-
branches:
6-
- main
7-
pull_request:
8-
branches:
9-
- main
4+
workflow_dispatch:
5+
push:
6+
branches:
7+
- main
8+
- develop
9+
pull_request:
10+
branches:
11+
- main
12+
- develop
13+
- 'release/**'
1014

1115
env:
12-
BUILD_CONFIG: 'Release'
13-
SOLUTION: 'src/WalletFramework.sln'
14-
IS_PULL_REQUEST: ${{ github.event_name == 'pull_request' }}
15-
IS_MAIN_BRANCH: ${{ github.ref == 'refs/heads/main' }}
16+
BUILD_CONFIG: 'Release'
17+
SOLUTION: 'src/WalletFramework.sln'
18+
IS_PULL_REQUEST: ${{ github.event_name == 'pull_request' }}
19+
IS_DEVELOP_BRANCH: ${{ github.ref == 'refs/heads/develop' }}
20+
IS_RELEASE_BRANCH: ${{ startsWith(github.ref, 'refs/heads/release/') }}
21+
IS_MAIN_BRANCH: ${{ github.ref == 'refs/heads/main' }}
1622

17-
jobs:
18-
build:
19-
20-
runs-on: ubuntu-22.04
21-
22-
steps:
23-
- uses: actions/checkout@v2
24-
with:
25-
fetch-depth: 0
26-
27-
- name: Set Version
28-
run: |
29-
sudo apt-get update && sudo apt-get install -y libxml2-utils
30-
VERSION=$(xmllint --xpath "string(/Project/PropertyGroup/Version)" Directory.Build.props)
31-
if $IS_MAIN_BRANCH; then
32-
COMMIT_COUNT=$(git log --oneline | wc -l)
33-
SUFFIX="-rc.$COMMIT_COUNT"
34-
elif $IS_PULL_REQUEST; then
35-
COMMIT_COUNT=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/commits?per_page=100" | jq length)
36-
SUFFIX="-pr.${{ github.event.pull_request.number }}.$COMMIT_COUNT"
37-
fi
38-
echo "APP_VERSION=$VERSION$SUFFIX" >> $GITHUB_ENV
23+
jobs:
24+
build:
25+
runs-on: ubuntu-22.04
3926

40-
- name: Setup .NET
41-
uses: actions/setup-dotnet@v3
42-
with:
43-
global-json-file: global.json
27+
steps:
28+
- uses: actions/checkout@v2
29+
with:
30+
fetch-depth: 0
4431

45-
# - name: Install libindy library
46-
# run: |
47-
# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys CE7709D068DB5E88
48-
# sudo add-apt-repository "deb https://repo.sovrin.org/sdk/deb bionic stable"
49-
# sudo apt-get update \
50-
# apt-get install -y libindy
51-
52-
- name: Restore dependencies
53-
run: dotnet restore $SOLUTION
54-
55-
- name: Build
56-
run: dotnet build $SOLUTION --configuration $BUILD_CONFIG -p:Version=$APP_VERSION
32+
- name: Set Version
33+
env:
34+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
35+
run: |
36+
sudo apt-get update && sudo apt-get install -y libxml2-utils jq
37+
VERSION=$(xmllint --xpath "string(/Project/PropertyGroup/Version)" Directory.Build.props)
38+
SUFFIX=""
39+
if $IS_MAIN_BRANCH; then
40+
SUFFIX=""
41+
elif $IS_RELEASE_BRANCH; then
42+
WORKFLOW_ID=$(gh workflow list --json name,id -q ".[] | select(.name == \"${{ github.workflow }}\") | .id")
43+
echo "workflowID is $WORKFLOW_ID"
44+
RUN_COUNT=$(gh run list --workflow "$WORKFLOW_ID" --branch "${{ github.ref_name }}" --json status -q "[.[] | select(.status != \"in_progress\" and .status != \"queued\")] | length")
45+
echo "run count is $RUN_COUNT"
46+
RC_NUMBER=$((RUN_COUNT + 1))
47+
echo "RC_NUMBER=$RC_NUMBER" >> $GITHUB_OUTPUT
48+
SUFFIX="-rc.$RC_NUMBER"
49+
elif $IS_DEVELOP_BRANCH; then
50+
PR_NUMBER=${{ github.event.pull_request.number }}
51+
SUFFIX="-dev.$PR_NUMBER"
52+
elif $IS_PULL_REQUEST; then
53+
PR_NUMBER=${{ github.event.pull_request.number }}
54+
COMMIT_COUNT=$(git rev-list --count HEAD)
55+
SUFFIX="-pr.$PR_NUMBER.$COMMIT_COUNT"
56+
fi
57+
echo "APP_VERSION=$VERSION$SUFFIX" >> $GITHUB_ENV
5758
58-
- name: Run tests
59-
run: |
60-
dotnet test test/WalletFramework.Core.Tests --configuration $BUILD_CONFIG --no-restore --no-build
61-
dotnet test test/WalletFramework.MdocLib.Tests --configuration $BUILD_CONFIG --no-restore --no-build
62-
dotnet test test/WalletFramework.MdocVc.Tests --configuration $BUILD_CONFIG --no-restore --no-build
63-
dotnet test test/WalletFramework.Oid4Vc.Tests --configuration $BUILD_CONFIG --no-restore --no-build
64-
dotnet test test/WalletFramework.SdJwtVc.Tests --configuration $BUILD_CONFIG --no-restore --no-build
65-
dotnet test test/WalletFramework.SdJwtLib.Tests --configuration $BUILD_CONFIG --no-restore --no-build
59+
- name: Setup .NET
60+
uses: actions/setup-dotnet@v4
61+
with:
62+
global-json-file: global.json
6663

67-
- name: Pack WalletFramework
68-
run: dotnet pack $SOLUTION --configuration $BUILD_CONFIG -p:Version=$APP_VERSION --no-build --output .
64+
- name: Restore dependencies
65+
run: dotnet restore $SOLUTION
6966

70-
- name: Publish
71-
run: nuget push **\*.nupkg -Source 'https://api.nuget.org/v3/index.json' -ApiKey ${{secrets.NUGET_API_KEY}}
67+
- name: Build
68+
run: dotnet build $SOLUTION --configuration $BUILD_CONFIG -p:Version=$APP_VERSION
69+
70+
- name: Run tests
71+
run: |
72+
dotnet test test/WalletFramework.Core.Tests --configuration $BUILD_CONFIG --no-restore --no-build
73+
dotnet test test/WalletFramework.MdocLib.Tests --configuration $BUILD_CONFIG --no-restore --no-build
74+
dotnet test test/WalletFramework.MdocVc.Tests --configuration $BUILD_CONFIG --no-restore --no-build
75+
dotnet test test/WalletFramework.Oid4Vc.Tests --configuration $BUILD_CONFIG --no-restore --no-build
76+
dotnet test test/WalletFramework.SdJwtVc.Tests --configuration $BUILD_CONFIG --no-restore --no-build
77+
dotnet test test/WalletFramework.SdJwtLib.Tests --configuration $BUILD_CONFIG --no-restore --no-build
78+
79+
- name: Pack WalletFramework
80+
run: dotnet pack $SOLUTION --configuration $BUILD_CONFIG -p:Version=$APP_VERSION --no-build --output .
81+
82+
- name: Publish to NuGet (main and release branches only)
83+
if: env.IS_PULL_REQUEST == 'false' && (env.IS_MAIN_BRANCH == 'true' || env.IS_RELEASE_BRANCH == 'true')
84+
run: |
85+
echo 'BUILD NUGET'
86+
# TODO: Add the nuget push after the pipeline functionality is fully tested.
87+
# run: dotnet nuget push "**/*.nupkg" --source 'https://api.nuget.org/v3/index.json' --api-key ${{ secrets.NUGET_API_KEY }}

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

CONTRIBUTING.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Contributing to Wallet Framework for .NET
2+
3+
Thank you for your interest in contributing! This guide explains how to propose changes and what maintainers expect in pull requests.
4+
5+
## Ways to contribute
6+
- Report bugs and request features via GitHub Issues.
7+
- Improve docs: README.md, samples, and code comments.
8+
- Submit code changes via Pull Requests (PRs) from a fork.
9+
10+
## Development setup
11+
- Prerequisites: .NET SDK (net8.0)
12+
- Build: `dotnet build`
13+
- Run tests: `dotnet test`
14+
15+
## Before you start
16+
- For larger work, open an Issue/Discussion to align on scope.
17+
- For small fixes or features, you can go straight to a PR.
18+
19+
## Coding standards
20+
- C#: follow standard .NET conventions. Keep code clear and well-documented.
21+
- We follow a functional programming approach using [LanguageExt](https://github.com/pasoft-share/language-ext/tree/master?tab=readme-ov-file): prefer immutability, pure functions, and expression-oriented code.
22+
- Add/update unit tests for your changes; avoid breaking public APIs unless coordinated.
23+
24+
## Commits and PRs
25+
- If applicable, always link the related Issue in the PR description (e.g., "Fixes #123").
26+
- Every PR MUST update [CHANGELOG.md](./CHANGELOG.md) under the `[Unreleased]` section, using one of the categories: Added, Changed, Deprecated, Removed, Fixed, Security. Use clear, user-facing language and link to the PR/Issue.
27+
- Sign your commits and include a sign-off: `git commit -S --signoff`.
28+
- Keep PRs focused and reasonably small.
29+
- Target branch:
30+
- Features/regular (bug)fixes → `develop`.
31+
- Hotfixes for production → `hotfix/vX.Y.Z` branched from `main` (Maintainer responsibility).
32+
33+
## Review and merge
34+
- CI must pass (build + tests).
35+
- At least one maintainer approval (four-eye principle) is required.

Directory.Build.props

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
2222
</PropertyGroup>
2323
<PropertyGroup>
24-
<TargetFramework>netstandard2.1</TargetFramework>
24+
<TargetFramework>net8.0</TargetFramework>
2525
</PropertyGroup>
2626
<!--Versions of packages used across the repository-->
2727
<PropertyGroup Label="Package Versions">
@@ -41,8 +41,6 @@
4141
<FluentValidationAspNetCoreVersion>9.2.0</FluentValidationAspNetCoreVersion>
4242
<FluentValidationVersion>9.2.0</FluentValidationVersion>
4343
<FlurlVersion>2.8.2</FlurlVersion>
44-
<WalletFrameworkIndySdkVersion>2.0.1</WalletFrameworkIndySdkVersion>
45-
<HyperledgerIndyVdrVersion>0.4.2-alpha</HyperledgerIndyVdrVersion>
4644
<MediatrExtensionsMicrosoftDependencyInjectionVersion>8.0.1</MediatrExtensionsMicrosoftDependencyInjectionVersion>
4745
<MediatrVersion>8.0.2</MediatrVersion>
4846
<MicroElementsSwashbuckleFluentValidationVersion>4.0.0</MicroElementsSwashbuckleFluentValidationVersion>

Directory.Build.targets

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<Project>
2+
<Target Name="WarnOnLegacyReferences" BeforeTargets="Build">
3+
<ItemGroup>
4+
<_LegacyRefs Include="@(ProjectReference)"
5+
Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('%(ProjectReference.Identity)', '(?i)[/\\\\]legacy[/\\\\]'))" />
6+
</ItemGroup>
7+
<Warning Condition="'@(_LegacyRefs)' != ''"
8+
Text="Project '$(MSBuildProjectName)' references legacy projects: @(_LegacyRefs). These are deprecated." />
9+
</Target>
10+
</Project>
11+

MAINTAINERS.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,3 @@
77
| Christopher Hempel | [@CHempel-esatus](https://github.com/CHempel-esatus) | CHempel_esatus#6640 |
88
| Kevin Dinh | [@Dindexx](https://github.com/Dindexx) | |
99
| Johannes Türk | [@JoTiTu](https://github.com/JoTiTu) | |
10-
| Ken Kosmowski | [@kenkosmowski](https://github.com/kenkosmowski) | |

0 commit comments

Comments
 (0)