Skip to content

Commit

Permalink
Merge branch 'main' into feat/identity-rebased-cleanup-squash-pre-mai…
Browse files Browse the repository at this point in the history
…n-merge-fixed-messages-format-fix-signing-main-merge-2
  • Loading branch information
wulfraem committed Nov 22, 2024
2 parents 4cdb242 + e8df299 commit 1b49cf0
Show file tree
Hide file tree
Showing 219 changed files with 10,145 additions and 8,222 deletions.
2 changes: 1 addition & 1 deletion .github/actions/iota-sandbox/tear-down/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ runs:
shell: bash
run: |
cd iota-sandbox/sandbox
docker-compose down
docker compose down
cd ../..
sudo rm -rf iota-sandbox
2 changes: 1 addition & 1 deletion .github/actions/publish/publish-wasm/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ runs:
registry-url: 'https://registry.npmjs.org'

- name: Download bindings/wasm artifacts
uses: actions/download-artifact@v2
uses: actions/download-artifact@v4
with:
name: ${{ inputs.input-artifact-name }}
path: bindings/wasm
Expand Down
19 changes: 17 additions & 2 deletions .github/actions/rust/rust-setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,16 @@ runs:
shell: bash
run: |
if ! rustup self update; then
# self update is currently broken on Windows runners:
# https://github.com/rust-lang/rustup/issues/3709
# so we'll skip self update for windows
OS=${{ inputs.os }}
IS_WINDOWS=false; [[ $OS =~ ^[wW]indows ]] && IS_WINDOWS=true
if [[ $IS_WINDOWS = true ]] ;
then
echo "skipping self update on windows runner due to https://github.com/rust-lang/rustup/issues/3709"
elif ! rustup self update; then
echo "rustup self update failed"
fi
Expand All @@ -57,7 +66,13 @@ runs:
rustup target add $TARGET
fi
rustup update
if [[ $IS_WINDOWS = true ]] ;
then
echo "skipping self update on windows runner due to https://github.com/rust-lang/rustup/issues/3709"
rustup update --no-self-update
else
rustup update
fi
TOOLCHAIN=${{ inputs.toolchain }}
if [[ $TOOLCHAIN != 'stable' ]]; then
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-and-test-grpc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,4 @@ jobs:
context: .
file: bindings/grpc/Dockerfile
push: false
labels: iotaledger/identity-grpc:latest
tags: iotaledger/identity-grpc:latest
119 changes: 112 additions & 7 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,12 @@ jobs:
steps:
- uses: actions/checkout@v3

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

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

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

- name: Run tests
run: cargo test --workspace --all-features --release
- name: Run tests excluding `custom_time` feature
run: cargo test --workspace --release

- name: Run tests with `custom_time` feature
run: cargo test --test custom_time --features="custom_time"

- name: Run Rust examples
# run examples only on ubuntu for now
Expand All @@ -151,7 +160,7 @@ jobs:
- name: Tear down iota sandbox
if: matrix.os == 'ubuntu-latest' && always()
uses: './.github/actions/iota-sandbox/tear-down'

- name: Stop sccache
uses: './.github/actions/rust/sccache/stop-sccache'
with:
Expand Down Expand Up @@ -189,7 +198,7 @@ jobs:
working-directory: bindings/wasm

- name: Download bindings/wasm artifacts
uses: actions/download-artifact@v2
uses: actions/download-artifact@v4
with:
name: identity-wasm-bindings-build
path: bindings/wasm
Expand All @@ -198,9 +207,105 @@ jobs:
uses: './.github/actions/iota-sandbox/setup'

- name: Run Wasm examples
run: npm run test:examples
run: npm run test:readme && npm run test:node
working-directory: bindings/wasm

- name: Tear down iota sandbox
if: always()
uses: './.github/actions/iota-sandbox/tear-down'

test-wasm-firefox:
needs: build-wasm
if: ${{ needs.check-for-run-condition.outputs.should-run == 'true' }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
include:
- os: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Set up Node.js
uses: actions/setup-node@v1
with:
node-version: 16.x

- name: Install JS dependencies
run: npm ci
working-directory: bindings/wasm

- name: Download bindings/wasm artifacts
uses: actions/download-artifact@v4
with:
name: identity-wasm-bindings-build
path: bindings/wasm

- name: Start iota sandbox
uses: './.github/actions/iota-sandbox/setup'

- name: Build Docker image
uses: docker/[email protected]
with:
context: bindings/wasm/
file: bindings/wasm/cypress/Dockerfile
push: false
tags: cypress-test:latest
load: true

- name: Run cypress
run: docker run --network host cypress-test test:browser:parallel:firefox

- name: Tear down iota sandbox
if: always()
uses: './.github/actions/iota-sandbox/tear-down'

test-wasm-chrome:
needs: build-wasm
if: ${{ needs.check-for-run-condition.outputs.should-run == 'true' }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
include:
- os: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Set up Node.js
uses: actions/setup-node@v1
with:
node-version: 16.x

- name: Install JS dependencies
run: npm ci
working-directory: bindings/wasm

- name: Download bindings/wasm artifacts
uses: actions/download-artifact@v4
with:
name: identity-wasm-bindings-build
path: bindings/wasm

- name: Start iota sandbox
uses: './.github/actions/iota-sandbox/setup'

- name: Build Docker image
uses: docker/[email protected]
with:
context: bindings/wasm/
file: bindings/wasm/cypress/Dockerfile
push: false
tags: cypress-test:latest
load: true

- name: Run cypress
run: docker run --network host cypress-test test:browser:parallel:chrome

- name: Tear down iota sandbox
if: always()
uses: './.github/actions/iota-sandbox/tear-down'
5 changes: 3 additions & 2 deletions .github/workflows/grpc-publish-to-dockerhub.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,15 @@ jobs:
context: .
file: bindings/grpc/Dockerfile
push: ${{ !inputs.dry-run }}
labels: iotaledger/identity-grpc:${{ inputs.tag }}
tags: iotaledger/identity-grpc:${{ inputs.tag }}

- name: Docker Hub Description
uses: peter-evans/dockerhub-description@e98e4d1628a5f3be2be7c231e50981aee98723ae
if: ${{ !inputs.dry-run }}
with:
username: ${{ secrets.IOTALEDGER_DOCKER_USERNAME }}
password: ${{ secrets.IOTALEDGER_DOCKER_PASSWORD }}
repository: iotaledger/identity-grpc
readme-filepath: ./bindigns/grpc/README.md
readme-filepath: ./bindings/grpc/README.md
short-description: ${{ github.event.repository.description }}

3 changes: 2 additions & 1 deletion .github/workflows/shared-build-wasm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,13 @@ jobs:
os: ${{matrix.os}}

- name: Upload artifact
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.output-artifact-name }}
path: |
bindings/wasm/node
bindings/wasm/web
bindings/wasm/examples/dist
bindings/wasm/docs
if-no-files-found: error
retention-days: 1
51 changes: 51 additions & 0 deletions .github/workflows/upload-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Build and upload API docs

on:
release:
types: [published]
workflow_dispatch:
inputs:
version:
description: 'Version to publish docs under (e.g. `v1.2.3-dev.1`)'
required: true

permissions:
actions: 'write'

jobs:
build-wasm:
# owner/repository of workflow has to be static, see https://github.community/t/env-variables-in-uses/17466
uses: iotaledger/identity.rs/.github/workflows/shared-build-wasm.yml@main
with:
run-unit-tests: false
ref: ${{ inputs.ref }}
output-artifact-name: identity-docs

upload-docs:
runs-on: ubuntu-latest
needs: build-wasm
steps:
- uses: actions/download-artifact@v4
with:
name: identity-docs
- name: Get release version
id: get_release_version
run: |
if [ "${{ github.event_name }}" = "release" ]; then
INPUT_VERSION="${{ github.ref }}"
else
INPUT_VERSION="${{ github.event.inputs.version }}"
fi
VERSION=$(echo $INPUT_VERSION | sed -e 's/.*v\([0-9]*\.[0-9]*\).*/\1/')
echo VERSION=$VERSION >> $GITHUB_OUTPUT
- name: Compress generated docs
run: |
tar czvf wasm.tar.gz docs/*
- name: Upload docs to AWS S3
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_IOTA_WIKI }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_IOTA_WIKI }}
AWS_DEFAULT_REGION: "eu-central-1"
run: |
aws s3 cp wasm.tar.gz s3://files.iota.org/iota-wiki/iota-identity/${{ steps.get_release_version.outputs.VERSION }}/ --acl public-read
2 changes: 1 addition & 1 deletion .license_template
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
// Copyright {20\d{2}(-20\d{2})?} IOTA Stiftung
// Copyright {20\d{2}(-20\d{2})?} IOTA Stiftung{(?:, .+)?}
// SPDX-License-Identifier: Apache-2.0
48 changes: 44 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,57 @@
# Changelog

## [v1.4.0](https://github.com/iotaledger/identity.rs/tree/v1.4.0) (2024-09-23)

[Full Changelog](https://github.com/iotaledger/identity.rs/compare/v1.3.1...v1.4.0)

### Added

- Add feature to support custom `now_utc` implementations [\#1397](https://github.com/iotaledger/identity.rs/pull/1397)
- Add support for `did:jwk` resolution [\#1404](https://github.com/iotaledger/identity.rs/pull/1404)
- Linked Verifiable Presentations [\#1398](https://github.com/iotaledger/identity.rs/pull/1398)
- Add support for custom JWS algorithms [\#1410](https://github.com/iotaledger/identity.rs/pull/1410)

### Patch

- Make `bls12_381_plus` dependency more flexible again [\#1393](https://github.com/iotaledger/identity.rs/pull/1393)
- Mark `js-sys` as optional for identity_core [\#1405](https://github.com/iotaledger/identity.rs/pull/1405)
- Remove dependency on `identity_core` default features [\#1408](https://github.com/iotaledger/identity.rs/pull/1408)

## [v1.3.1](https://github.com/iotaledger/identity.rs/tree/v1.3.1) (2024-06-12)

[Full Changelog](https://github.com/iotaledger/identity.rs/compare/v1.3.0...v1.3.1)

### Patch

- Pin and bump `bls12_381_plus` dependency [\#1378](https://github.com/iotaledger/identity.rs/pull/1378)

## [v1.3.0](https://github.com/iotaledger/identity.rs/tree/v1.3.0) (2024-05-28)

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

### Added

- Add ZK BBS+-based selectively disclosable credentials \(JPT\) [\#1355](https://github.com/iotaledger/identity.rs/pull/1355)
- Add EcDSA verifier [\#1353](https://github.com/iotaledger/identity.rs/pull/1353)

### Patch

- Support for specification-compliant verification method type `JsonWebKey2020` [\#1367](https://github.com/iotaledger/identity.rs/pull/1367)

## [v1.2.0](https://github.com/iotaledger/identity.rs/tree/v1.2.0) (2024-03-27)

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

### Added
- Add `get_public_key` for `StrongholdStorage` [\#1311](https://github.com/iotaledger/identity.rs/pull/1311)
- Support multiple IOTA networks in the Resolver [\#1304](https://github.com/iotaledger/identity.rs/pull/1304)
- Allow setting additional controllers for `IotaDocument` [\#1314](https://github.com/iotaledger/identity.rs/pull/1314)
- use latest release of sd-jwt-payload `IotaDocument` [\#1333](https://github.com/iotaledger/identity.rs/pull/1333)

- Allow arbitrary verification methods [\#1334](https://github.com/iotaledger/identity.rs/pull/1334)
- use latest release of sd-jwt-payload [\#1333](https://github.com/iotaledger/identity.rs/pull/1333)
- Allow setting additional controllers for `IotaDocument` [\#1314](https://github.com/iotaledger/identity.rs/pull/1314)
- Add `get_public_key` for `StrongholdStorage` [\#1311](https://github.com/iotaledger/identity.rs/pull/1311)
- Support multiple IOTA networks in the `Resolver` [\#1304](https://github.com/iotaledger/identity.rs/pull/1304)

### Patch

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

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

0 comments on commit 1b49cf0

Please sign in to comment.