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
12 changes: 1 addition & 11 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Release
name: Publish to pub.dev
on:
push:
tags: ['[0-9]*.[0-9]*.[0-9]*']
Expand All @@ -20,13 +20,3 @@ jobs:
permissions:
id-token: write
uses: dart-lang/setup-dart/.github/workflows/publish.yml@v1
release:
needs: publish
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- run: gh release create "$GITHUB_REF_NAME" --verify-tag --generate-notes
env:
GH_TOKEN: ${{ github.token }}
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Changelog

## 0.1.2

- Align publishing with the Flutter reference libraries: validate on tag push, then publish through Dart's reusable pub.dev workflow.
- Remove automatic GitHub Release creation; retain exact version-tag validation and CORE License.

## 0.1.1

- Support app_links 7.2.1; require Flutter 3.44 and Dart 3.12.
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Flutter wallet library for Connect v1. Handles full `connect://` links and QR te

```yaml
dependencies:
flutter_connect: ^0.1.1
flutter_connect: ^0.1.2
```

```dart
Expand Down
22 changes: 13 additions & 9 deletions doc/RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
# Release setup

CI runs formatting/linting, static checks, relevant tests and package validation. Flutter additionally builds Android and iOS simulator examples. better-connect's release also runs cross-repository Flutter interoperability. No release has been pushed or published as part of implementation.
flutter_connect follows the publishing pattern used by flutter_licensing, flutter_paytorl and flutter_txms. A version tag push runs the shared CI checks and exact tag/version validation, then publishes through Dart's reusable pub.dev workflow. It does not create or modify a GitHub Release.

1. Review the package version and changelog. Keep v1 protocol vectors identical across all three repositories.
2. Configure repository Actions and the registry's trusted publisher for `bchainhub/flutter_connect` and `release.yml`. For npm use its GitHub OIDC trusted publishing settings; for pub.dev enable automated GitHub publishing with the `{{version}}` tag pattern. Initial package creation/ownership and registry settings must be established by maintainers.
3. Ensure dependent repositories are pushed before cross-repository CI runs. For incompatible future protocol changes pin the integration checkout to a matching release rather than silently mixing versions.
4. Push `<version>` to trigger validation, publication and a GitHub release. The tag must match the manifest exactly.
1. Update `pubspec.yaml` and `CHANGELOG.md`, then commit and push the source and workflows.
2. On pub.dev, enable automated publishing for repository `bchainhub/flutter_connect` with tag pattern `{{version}}` (no `v`).
3. Push the tag matching the manifest:

CORE License text is copied unchanged from the reference flutter_txms repository. npm metadata uses `SEE LICENSE IN LICENSE` because CORE is a custom license.
```sh
git tag 0.1.2
git push origin 0.1.2
```

For better-connect, CI checks out the matching SDK source and runs `node scripts/prepare-sdk.mjs` before installing dependencies. The helper builds the ignored vendor tarball; `node scripts/sync-protocol.mjs` refreshes a local installation. Reference conformance fixtures live in `test/fixtures/` and remain versioned. Generated `vectors/` and `vendor/` directories are ignored. The published bundle includes the SDK so registry users do not need local filesystem dependencies.
CI checks formatting, static analysis, tests, publishable package contents, and Android/iOS example builds before publication. A tag mismatch blocks publishing. Use a new version for each publication; an already published pub.dev version cannot be replaced.

References: [npm trusted publishing](https://docs.npmjs.com/trusted-publishers/), [Dart publishing workflow](https://github.com/dart-lang/setup-dart/blob/main/.github/workflows/publish.yml).
The npm packages use a different trigger: publish their GitHub Releases in the app to publish npm. For Flutter, pushing the tag is sufficient. Merely editing an existing GitHub Release does not trigger the Flutter workflow.

Dependency lockfiles are ignored. npm workflows install from package.json with `--package-lock=false`; npm cache keys use package.json. Flutter workflows already resolve dependencies with `flutter pub get`.
CORE License remains unchanged. Dependency lockfiles and generated artifacts remain ignored.

See [Dart automated publishing](https://dart.dev/tools/pub/automated-publishing) for registry setup.
2 changes: 1 addition & 1 deletion example/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: connect_wallet_example
description: Connect wallet reference application using an ephemeral Ed25519 test account.
publish_to: none
version: 0.1.1+2
version: 0.1.2+3
environment:
sdk: '>=3.12.0 <4.0.0'
dependencies:
Expand Down
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: flutter_connect
description: Wallet-side Connect protocol with strict transport validation, explicit approval, and multi-chain signing adapters.
version: 0.1.1
version: 0.1.2
homepage: https://github.com/bchainhub/flutter_connect
repository: https://github.com/bchainhub/flutter_connect
issue_tracker: https://github.com/bchainhub/flutter_connect/issues
Expand Down
Loading