Skip to content

Commit 1b49cf0

Browse files
committed
Merge branch 'main' into feat/identity-rebased-cleanup-squash-pre-main-merge-fixed-messages-format-fix-signing-main-merge-2
2 parents 4cdb242 + e8df299 commit 1b49cf0

File tree

219 files changed

+10145
-8222
lines changed

Some content is hidden

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

219 files changed

+10145
-8222
lines changed

.github/actions/iota-sandbox/tear-down/action.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ runs:
77
shell: bash
88
run: |
99
cd iota-sandbox/sandbox
10-
docker-compose down
10+
docker compose down
1111
cd ../..
1212
sudo rm -rf iota-sandbox

.github/actions/publish/publish-wasm/action.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ runs:
2424
registry-url: 'https://registry.npmjs.org'
2525

2626
- name: Download bindings/wasm artifacts
27-
uses: actions/download-artifact@v2
27+
uses: actions/download-artifact@v4
2828
with:
2929
name: ${{ inputs.input-artifact-name }}
3030
path: bindings/wasm

.github/actions/rust/rust-setup/action.yml

+17-2
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,16 @@ runs:
4848
shell: bash
4949
run: |
5050
51-
if ! rustup self update; then
51+
# self update is currently broken on Windows runners:
52+
# https://github.com/rust-lang/rustup/issues/3709
53+
# so we'll skip self update for windows
54+
OS=${{ inputs.os }}
55+
IS_WINDOWS=false; [[ $OS =~ ^[wW]indows ]] && IS_WINDOWS=true
56+
57+
if [[ $IS_WINDOWS = true ]] ;
58+
then
59+
echo "skipping self update on windows runner due to https://github.com/rust-lang/rustup/issues/3709"
60+
elif ! rustup self update; then
5261
echo "rustup self update failed"
5362
fi
5463
@@ -57,7 +66,13 @@ runs:
5766
rustup target add $TARGET
5867
fi
5968
60-
rustup update
69+
if [[ $IS_WINDOWS = true ]] ;
70+
then
71+
echo "skipping self update on windows runner due to https://github.com/rust-lang/rustup/issues/3709"
72+
rustup update --no-self-update
73+
else
74+
rustup update
75+
fi
6176
6277
TOOLCHAIN=${{ inputs.toolchain }}
6378
if [[ $TOOLCHAIN != 'stable' ]]; then

.github/workflows/build-and-test-grpc.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,4 @@ jobs:
3838
context: .
3939
file: bindings/grpc/Dockerfile
4040
push: false
41-
labels: iotaledger/identity-grpc:latest
41+
tags: iotaledger/identity-grpc:latest

.github/workflows/build-and-test.yml

+112-7
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,12 @@ jobs:
8282
steps:
8383
- uses: actions/checkout@v3
8484

85+
- name: Ensure, OpenSSL is available in Windows
86+
if: matrix.os == 'windows-latest'
87+
run: |
88+
echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Append
89+
vcpkg install openssl:x64-windows-static-md
90+
8591
- name: Setup Rust and cache
8692
uses: './.github/actions/rust/rust-setup'
8793
with:
@@ -120,15 +126,18 @@ jobs:
120126
run: cargo clean
121127

122128
# Build the library, tests, and examples without running them to avoid recompilation in the run tests step
123-
- name: Build with all features
124-
run: cargo build --workspace --tests --examples --all-features --release
129+
- name: Build with default features
130+
run: cargo build --workspace --tests --examples --release
125131

126132
- name: Start iota sandbox
127133
if: matrix.os == 'ubuntu-latest'
128134
uses: './.github/actions/iota-sandbox/setup'
129135

130-
- name: Run tests
131-
run: cargo test --workspace --all-features --release
136+
- name: Run tests excluding `custom_time` feature
137+
run: cargo test --workspace --release
138+
139+
- name: Run tests with `custom_time` feature
140+
run: cargo test --test custom_time --features="custom_time"
132141

133142
- name: Run Rust examples
134143
# run examples only on ubuntu for now
@@ -151,7 +160,7 @@ jobs:
151160
- name: Tear down iota sandbox
152161
if: matrix.os == 'ubuntu-latest' && always()
153162
uses: './.github/actions/iota-sandbox/tear-down'
154-
163+
155164
- name: Stop sccache
156165
uses: './.github/actions/rust/sccache/stop-sccache'
157166
with:
@@ -189,7 +198,7 @@ jobs:
189198
working-directory: bindings/wasm
190199

191200
- name: Download bindings/wasm artifacts
192-
uses: actions/download-artifact@v2
201+
uses: actions/download-artifact@v4
193202
with:
194203
name: identity-wasm-bindings-build
195204
path: bindings/wasm
@@ -198,9 +207,105 @@ jobs:
198207
uses: './.github/actions/iota-sandbox/setup'
199208

200209
- name: Run Wasm examples
201-
run: npm run test:examples
210+
run: npm run test:readme && npm run test:node
202211
working-directory: bindings/wasm
203212

204213
- name: Tear down iota sandbox
205214
if: always()
206215
uses: './.github/actions/iota-sandbox/tear-down'
216+
217+
test-wasm-firefox:
218+
needs: build-wasm
219+
if: ${{ needs.check-for-run-condition.outputs.should-run == 'true' }}
220+
runs-on: ubuntu-latest
221+
strategy:
222+
fail-fast: false
223+
matrix:
224+
os: [ ubuntu-latest ]
225+
include:
226+
- os: ubuntu-latest
227+
228+
steps:
229+
- uses: actions/checkout@v3
230+
231+
- name: Set up Node.js
232+
uses: actions/setup-node@v1
233+
with:
234+
node-version: 16.x
235+
236+
- name: Install JS dependencies
237+
run: npm ci
238+
working-directory: bindings/wasm
239+
240+
- name: Download bindings/wasm artifacts
241+
uses: actions/download-artifact@v4
242+
with:
243+
name: identity-wasm-bindings-build
244+
path: bindings/wasm
245+
246+
- name: Start iota sandbox
247+
uses: './.github/actions/iota-sandbox/setup'
248+
249+
- name: Build Docker image
250+
uses: docker/build-push-action@v6.2.0
251+
with:
252+
context: bindings/wasm/
253+
file: bindings/wasm/cypress/Dockerfile
254+
push: false
255+
tags: cypress-test:latest
256+
load: true
257+
258+
- name: Run cypress
259+
run: docker run --network host cypress-test test:browser:parallel:firefox
260+
261+
- name: Tear down iota sandbox
262+
if: always()
263+
uses: './.github/actions/iota-sandbox/tear-down'
264+
265+
test-wasm-chrome:
266+
needs: build-wasm
267+
if: ${{ needs.check-for-run-condition.outputs.should-run == 'true' }}
268+
runs-on: ubuntu-latest
269+
strategy:
270+
fail-fast: false
271+
matrix:
272+
os: [ ubuntu-latest ]
273+
include:
274+
- os: ubuntu-latest
275+
276+
steps:
277+
- uses: actions/checkout@v3
278+
279+
- name: Set up Node.js
280+
uses: actions/setup-node@v1
281+
with:
282+
node-version: 16.x
283+
284+
- name: Install JS dependencies
285+
run: npm ci
286+
working-directory: bindings/wasm
287+
288+
- name: Download bindings/wasm artifacts
289+
uses: actions/download-artifact@v4
290+
with:
291+
name: identity-wasm-bindings-build
292+
path: bindings/wasm
293+
294+
- name: Start iota sandbox
295+
uses: './.github/actions/iota-sandbox/setup'
296+
297+
- name: Build Docker image
298+
uses: docker/build-push-action@v6.2.0
299+
with:
300+
context: bindings/wasm/
301+
file: bindings/wasm/cypress/Dockerfile
302+
push: false
303+
tags: cypress-test:latest
304+
load: true
305+
306+
- name: Run cypress
307+
run: docker run --network host cypress-test test:browser:parallel:chrome
308+
309+
- name: Tear down iota sandbox
310+
if: always()
311+
uses: './.github/actions/iota-sandbox/tear-down'

.github/workflows/grpc-publish-to-dockerhub.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,15 @@ jobs:
3939
context: .
4040
file: bindings/grpc/Dockerfile
4141
push: ${{ !inputs.dry-run }}
42-
labels: iotaledger/identity-grpc:${{ inputs.tag }}
42+
tags: iotaledger/identity-grpc:${{ inputs.tag }}
4343

4444
- name: Docker Hub Description
4545
uses: peter-evans/dockerhub-description@e98e4d1628a5f3be2be7c231e50981aee98723ae
46+
if: ${{ !inputs.dry-run }}
4647
with:
4748
username: ${{ secrets.IOTALEDGER_DOCKER_USERNAME }}
4849
password: ${{ secrets.IOTALEDGER_DOCKER_PASSWORD }}
4950
repository: iotaledger/identity-grpc
50-
readme-filepath: ./bindigns/grpc/README.md
51+
readme-filepath: ./bindings/grpc/README.md
5152
short-description: ${{ github.event.repository.description }}
5253

.github/workflows/shared-build-wasm.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,13 @@ jobs:
8282
os: ${{matrix.os}}
8383

8484
- name: Upload artifact
85-
uses: actions/upload-artifact@v2
85+
uses: actions/upload-artifact@v4
8686
with:
8787
name: ${{ inputs.output-artifact-name }}
8888
path: |
8989
bindings/wasm/node
9090
bindings/wasm/web
9191
bindings/wasm/examples/dist
92+
bindings/wasm/docs
9293
if-no-files-found: error
9394
retention-days: 1

.github/workflows/upload-docs.yml

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: Build and upload API docs
2+
3+
on:
4+
release:
5+
types: [published]
6+
workflow_dispatch:
7+
inputs:
8+
version:
9+
description: 'Version to publish docs under (e.g. `v1.2.3-dev.1`)'
10+
required: true
11+
12+
permissions:
13+
actions: 'write'
14+
15+
jobs:
16+
build-wasm:
17+
# owner/repository of workflow has to be static, see https://github.community/t/env-variables-in-uses/17466
18+
uses: iotaledger/identity.rs/.github/workflows/shared-build-wasm.yml@main
19+
with:
20+
run-unit-tests: false
21+
ref: ${{ inputs.ref }}
22+
output-artifact-name: identity-docs
23+
24+
upload-docs:
25+
runs-on: ubuntu-latest
26+
needs: build-wasm
27+
steps:
28+
- uses: actions/download-artifact@v4
29+
with:
30+
name: identity-docs
31+
- name: Get release version
32+
id: get_release_version
33+
run: |
34+
if [ "${{ github.event_name }}" = "release" ]; then
35+
INPUT_VERSION="${{ github.ref }}"
36+
else
37+
INPUT_VERSION="${{ github.event.inputs.version }}"
38+
fi
39+
VERSION=$(echo $INPUT_VERSION | sed -e 's/.*v\([0-9]*\.[0-9]*\).*/\1/')
40+
echo VERSION=$VERSION >> $GITHUB_OUTPUT
41+
- name: Compress generated docs
42+
run: |
43+
tar czvf wasm.tar.gz docs/*
44+
45+
- name: Upload docs to AWS S3
46+
env:
47+
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_IOTA_WIKI }}
48+
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_IOTA_WIKI }}
49+
AWS_DEFAULT_REGION: "eu-central-1"
50+
run: |
51+
aws s3 cp wasm.tar.gz s3://files.iota.org/iota-wiki/iota-identity/${{ steps.get_release_version.outputs.VERSION }}/ --acl public-read

.license_template

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
// Copyright {20\d{2}(-20\d{2})?} IOTA Stiftung
1+
// Copyright {20\d{2}(-20\d{2})?} IOTA Stiftung{(?:, .+)?}
22
// SPDX-License-Identifier: Apache-2.0

CHANGELOG.md

+44-4
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,57 @@
11
# Changelog
22

3+
## [v1.4.0](https://github.com/iotaledger/identity.rs/tree/v1.4.0) (2024-09-23)
4+
5+
[Full Changelog](https://github.com/iotaledger/identity.rs/compare/v1.3.1...v1.4.0)
6+
7+
### Added
8+
9+
- Add feature to support custom `now_utc` implementations [\#1397](https://github.com/iotaledger/identity.rs/pull/1397)
10+
- Add support for `did:jwk` resolution [\#1404](https://github.com/iotaledger/identity.rs/pull/1404)
11+
- Linked Verifiable Presentations [\#1398](https://github.com/iotaledger/identity.rs/pull/1398)
12+
- Add support for custom JWS algorithms [\#1410](https://github.com/iotaledger/identity.rs/pull/1410)
13+
14+
### Patch
15+
16+
- Make `bls12_381_plus` dependency more flexible again [\#1393](https://github.com/iotaledger/identity.rs/pull/1393)
17+
- Mark `js-sys` as optional for identity_core [\#1405](https://github.com/iotaledger/identity.rs/pull/1405)
18+
- Remove dependency on `identity_core` default features [\#1408](https://github.com/iotaledger/identity.rs/pull/1408)
19+
20+
## [v1.3.1](https://github.com/iotaledger/identity.rs/tree/v1.3.1) (2024-06-12)
21+
22+
[Full Changelog](https://github.com/iotaledger/identity.rs/compare/v1.3.0...v1.3.1)
23+
24+
### Patch
25+
26+
- Pin and bump `bls12_381_plus` dependency [\#1378](https://github.com/iotaledger/identity.rs/pull/1378)
27+
28+
## [v1.3.0](https://github.com/iotaledger/identity.rs/tree/v1.3.0) (2024-05-28)
29+
30+
[Full Changelog](https://github.com/iotaledger/identity.rs/compare/v1.2.0...v1.3.0)
31+
32+
### Added
33+
34+
- Add ZK BBS+-based selectively disclosable credentials \(JPT\) [\#1355](https://github.com/iotaledger/identity.rs/pull/1355)
35+
- Add EcDSA verifier [\#1353](https://github.com/iotaledger/identity.rs/pull/1353)
36+
37+
### Patch
38+
39+
- Support for specification-compliant verification method type `JsonWebKey2020` [\#1367](https://github.com/iotaledger/identity.rs/pull/1367)
40+
341
## [v1.2.0](https://github.com/iotaledger/identity.rs/tree/v1.2.0) (2024-03-27)
442

543
[Full Changelog](https://github.com/iotaledger/identity.rs/compare/v1.1.1...v1.2.0)
644

745
### Added
8-
- Add `get_public_key` for `StrongholdStorage` [\#1311](https://github.com/iotaledger/identity.rs/pull/1311)
9-
- Support multiple IOTA networks in the Resolver [\#1304](https://github.com/iotaledger/identity.rs/pull/1304)
10-
- Allow setting additional controllers for `IotaDocument` [\#1314](https://github.com/iotaledger/identity.rs/pull/1314)
11-
- use latest release of sd-jwt-payload `IotaDocument` [\#1333](https://github.com/iotaledger/identity.rs/pull/1333)
46+
1247
- Allow arbitrary verification methods [\#1334](https://github.com/iotaledger/identity.rs/pull/1334)
48+
- use latest release of sd-jwt-payload [\#1333](https://github.com/iotaledger/identity.rs/pull/1333)
49+
- Allow setting additional controllers for `IotaDocument` [\#1314](https://github.com/iotaledger/identity.rs/pull/1314)
50+
- Add `get_public_key` for `StrongholdStorage` [\#1311](https://github.com/iotaledger/identity.rs/pull/1311)
51+
- Support multiple IOTA networks in the `Resolver` [\#1304](https://github.com/iotaledger/identity.rs/pull/1304)
1352

1453
### Patch
54+
1555
- Support %-encoded characters in DID method id [\#1303](https://github.com/iotaledger/identity.rs/pull/1303)
1656

1757
## [v1.1.1](https://github.com/iotaledger/identity.rs/tree/v1.1.1) (2024-02-19)

0 commit comments

Comments
 (0)