Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 0 additions & 6 deletions .changeset/host-locale-subscription.md

This file was deleted.

109 changes: 93 additions & 16 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,9 @@ jobs:
if: needs.release.outputs.ios_version != ''
runs-on: macos-15
permissions:
actions: write
contents: write
pull-requests: write
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
Expand Down Expand Up @@ -366,7 +368,7 @@ jobs:
run: |
set -euo pipefail
xcodebuild test \
-scheme TrUAPIHost \
-scheme TrUAPIHost-Package \
-destination 'platform=iOS Simulator,name=iPhone 16,OS=latest' \
-derivedDataPath "$RUNNER_TEMP/TrUAPIHostDerivedData" \
CODE_SIGNING_ALLOWED=NO
Expand Down Expand Up @@ -397,7 +399,66 @@ jobs:
echo "published_checksum=${published_checksum}"
} >> "$GITHUB_OUTPUT"

- name: Commit published manifest
- name: Build SwiftPM consumer tag
id: ios_tag
env:
IOS_VERSION: ${{ needs.release.outputs.ios_version }}
PUBLISHED_URL: ${{ steps.ios_publish.outputs.published_url }}
PUBLISHED_CHECKSUM: ${{ steps.ios_publish.outputs.published_checksum }}
run: |
set -euo pipefail

read_tag_manifest_value() {
git show "refs/tags/${IOS_VERSION}:Package.swift" \
| sed -n -E "s/^let $1 = \"([^\"]+)\"$/\1/p"
}

git fetch --tags origin
if git rev-parse -q --verify "refs/tags/${IOS_VERSION}" >/dev/null 2>&1; then
if [ "$(read_tag_manifest_value publishedBinaryURL)" != "${PUBLISHED_URL}" ] \
|| [ "$(read_tag_manifest_value publishedBinaryChecksum)" != "${PUBLISHED_CHECKSUM}" ]; then
echo "::error::Tag ${IOS_VERSION} already exists with a different iOS manifest."
exit 1
fi
echo "created=false" >> "$GITHUB_OUTPUT"
exit 0
fi

grep -q '^let useLocalBinary = ProcessInfo' Package.swift
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add Package.swift
git commit -m "release(ios): TrUAPIHost ${IOS_VERSION}"
git tag "${IOS_VERSION}"
echo "created=true" >> "$GITHUB_OUTPUT"

- name: Verify the tag resolves as a consumer
env:
IOS_VERSION: ${{ needs.release.outputs.ios_version }}
run: |
set -euo pipefail
probe="$RUNNER_TEMP/tag-probe"
rm -rf "$probe"
git clone --quiet --branch "${IOS_VERSION}" "file://$PWD" "$probe"

cd "$probe"
xcodebuild build \
-scheme TrUAPIHost \
-destination 'generic/platform=iOS Simulator' \
-derivedDataPath "$RUNNER_TEMP/TagProbeDerivedData" \
CODE_SIGNING_ALLOWED=NO

- name: Push SwiftPM tag
if: steps.ios_tag.outputs.created == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
IOS_VERSION: ${{ needs.release.outputs.ios_version }}
run: |
set -euo pipefail
gh auth setup-git
git push origin "refs/tags/${IOS_VERSION}"

- name: Open published manifest pull request
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
IOS_VERSION: ${{ needs.release.outputs.ios_version }}
Expand Down Expand Up @@ -430,26 +491,42 @@ jobs:

sed -i '' -E "s|^let publishedBinaryURL = .*|let publishedBinaryURL = \"${PUBLISHED_URL}\"|" Package.swift
sed -i '' -E "s|^let publishedBinaryChecksum = .*|let publishedBinaryChecksum = \"${PUBLISHED_CHECKSUM}\"|" Package.swift
grep -q '^let useLocalBinary = false$' Package.swift
grep -q '^let useLocalBinary = ProcessInfo' Package.swift

git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add Package.swift
git commit -m "build(ios): publish host XCFramework ${IOS_VERSION}"

gh auth setup-git
attempt=1
until git push origin "HEAD:${RELEASE_BRANCH}"
do
if [ "${attempt}" -ge 3 ]; then
echo "::error::Could not push the Package.swift follow-up commit."
exit 1
fi
attempt=$((attempt + 1))
git fetch origin "${RELEASE_BRANCH}"
if ! git rebase "origin/${RELEASE_BRANCH}"; then
git rebase --abort
echo "::error::Package.swift changed while publishing; resolve the manifest update manually."
manifest_branch="release/ios-host-${IOS_VERSION}"
if git ls-remote --exit-code --heads origin "refs/heads/${manifest_branch}" >/dev/null 2>&1; then
git fetch origin "refs/heads/${manifest_branch}:refs/remotes/origin/${manifest_branch}"
if ! git show "origin/${manifest_branch}:Package.swift" | cmp - Package.swift; then
echo "::error::${manifest_branch} already exists with a different Package.swift."
exit 1
fi
done
else
git push origin "HEAD:refs/heads/${manifest_branch}"
fi

pr_number="$(gh pr list \
--base "${RELEASE_BRANCH}" \
--head "${manifest_branch}" \
--state open \
--json number \
--jq '.[0].number // empty')"
if [ -z "${pr_number}" ]; then
gh pr create \
--base "${RELEASE_BRANCH}" \
--head "${manifest_branch}" \
--title "build(ios): publish host XCFramework ${IOS_VERSION}" \
--body "Updates Package.swift with the published @parity/ios-host@${IOS_VERSION} XCFramework URL and verified checksum." \
--reviewer paritytech/host-sdk-team
else
echo "Manifest PR #${pr_number} is already open."
fi

# Events created by GITHUB_TOKEN do not start another workflow, so
# dispatch CI explicitly for the generated branch.
gh workflow run ci.yml --ref "${manifest_branch}"
166 changes: 166 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,24 @@ All notable changes to the TrUAPI protocol are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
generated from [Conventional Commits](https://www.conventionalcommits.org/).

## [0.12.0] - 2026-08-31

### Added

- `development_createAccountProof` for raw proof contexts to unblock Humanity as a Product (#457)
- open bump issues on consumer repos when a package is released (#529)

### Changed

- RFC: Host locale subscription (#526)
- fix prebuilt script runner lookup (#532)

### Fixed

- reject unknown wire messages (#547)
- declare the chat worker in the product manifest (#541)
- downgrade response and error payloads to the caller's version (#525)

## [0.11.0] - 2026-08-27

### Added
Expand All @@ -19,11 +37,13 @@ generated from [Conventional Commits](https://www.conventionalcommits.org/).

### Changed

- @parity/truapi 0.11.0, @parity/truapi-host 0.8.0 (#530)
- remove legacy single-execution core (#508)
- RFC: Host Identity and Version via `System.host_info` (#177)

### Fixed

- make the CLI release pipeline work end to end (#531)
- clear the sandbox client when the pipe closes (#509)
- persist and restore paired SSO hosts (#501)
- gate tags on a confirmed npm publish (#505)
Expand Down Expand Up @@ -591,3 +611,149 @@ generated from [Conventional Commits](https://www.conventionalcommits.org/).

- clippy needless_borrow and stale type import

## [0.8.0] - 2026-06-01

### Added

- create transaction refinement (#168)
- experimental debug hooks across host-api, host-container, host-papp (#154)

### Changed

- 0.8 (#179)
- Rename product-sdk to host-api-wrapper (#169)

## [0.7.8] - 2026-05-11

### RFCs

- **Withdrawn:** RFC Title
- **Withdrawn:** Permission Model for Host API
- **Withdrawn:** Payment Host API
- **Withdrawn:** RFC-0007: Deterministic Entropy Derivation for Products
- **Withdrawn:** Statement Store Host API v0.2
- **Withdrawn:** RFC-0009: Unauthenticated Product Access
- **Withdrawn:** RFC-0010: W3S Allowance Management in TrUAPI
- **Withdrawn:** Host API root account access
- **Withdrawn:** RFC-0014: Get User Primary DotNS Name

### Changed

- 0.7.8 (#164)
- Add @novasamatech/product-bulletin package wrapping @parity/bulletin-sdk (#114)

## [0.7.7] - 2026-05-07

### RFCs

- **Accepted:** RFC-0014: Get User Primary DotNS Name

### Added

- sso sign methods now accept product account ID instead of SS58 address (#159)
- Implemented more web apis, simplified working with buffers (#153)

### Changed

- 0.7.7 (#162)
- 0.7.6 (#160)
- Implement rfc 10 apis (#157)
- 0.7.4 (#148)
- RFC-0014: Get User Primary DotNS Name (#144)
- 0.7.3 (#145)

### Fixed

- key derivation now matches Substrate's standard rules (#158)
- reconnects (#151)

## [0.7.1] - 2026-04-23

### RFCs

- **Accepted:** RFC Title
- **Accepted:** Permission Model for Host API
- **Accepted:** Payment Host API
- **Accepted:** RFC-0007: Deterministic Entropy Derivation for Products
- **Accepted:** Statement Store Host API v0.2
- **Accepted:** RFC-0009: Unauthenticated Product Access
- **Accepted:** RFC-0010: W3S Allowance Management in TrUAPI
- **Accepted:** Host API root account access

### Added

- add pause/resume to drop the inner socket cleanly (#140)
- add handoff-service package for P2P file transfers via HOP (#109)
- add paseo-next network and drop unstable. PB-420 (#101)
- implemented correct session initialization and batching logic (#100)
- update Paseo stable stage endpoint (#45)
- handleChainConnection now supports transaction submit permission check (#97)
- add configurable destroyDelay to connection pool (#96)
- remove withPolkadotSdkCompat usage, added enhanceBranch option to branched provider instead (#91)
- add withSubscriptionReplay provider enhancer (#89)
- add worker-sandbox package. PB-333 (#71)
- papp secret storage reexport (#76)
- implement chain connection PB-332 (#69)
- RFC/features by .md files (#57)
- make logger configurable (#19)
- add Paseo stable stage endpoint (#43)
- product-react-renderer package with chat adapter integration (#38)
- added rate limiter. PB-192 (#20)
- support updated statement store api (#33)
- update stable stage endpoints (#29)
- save session only after attestation (#24)
- 0.6.0 (#22)
- implement chain JSON RPC methods (#17)
- changes for 0.5 release (#16)
- added a disconnect attempt and an error toast. PB-118 (#15)
- update sdk to 0.5 spec (#13)
- add tr-ui, PairingPopover and theme support (#10)
- added clearAll method to localStorageAdapter (#11)
- retry auth requests, add tests (#12)
- chat (#9)
- host api spec (#7)
- Support new statement store errors while submitting statements (#8)
- Implemented correct Polkadot app pairing ui (#6)
- papp integration (#5)
- new package names, removed shared package
- Support createTransaction interface
- connection status listening

### Changed

- RFC-0010: W3S Allowance Management in TrUApi (#129)
- 0.7 (#113)
- 0.6.18 (#132)
- RFC: Statement store Host API changes according to v0.2 discussion (#118)
- RFC-0006: Payment Host API (#94)
- 0.6.15 (#102)
- 0.6.10 (#87)
- 0.6.9 (#85)
- 0.6.7 (#77)
- Release/0.6.6 (#60)
- release 0.6.5 (#35)
- release 0.6.5 (#34)
- release 0.6.4 (#32)
- 0.6.1 (#30)
- Initial commit

### Fixed

- send JSON-RPC unsubscribe on subscription teardown (#111)
- buffer request statements to prevent race condition in waitForRequestMessage (#119)
- attestation service now listens to the best block instead of finalized (#116)
- close MessagePort on provider dispose PB-310 (#78)
- disable papp ws heartbeat timeout (#70)
- qr styles (#59)
- add hostMetadata to sign-in payload. PB-293 (#37)
- correct error message for unknown signing error (#36)
- address normalization in sso sessions sign requests (#31)
- chain connection sharing across products (#21)
- added Preview People Chain (#14)
- pairing ui logos and texts
- Explicitly set account type to sr25519 in extension injector
- simplified createTransaction codec
- code style
- node versions in github action
- husky config

4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading