Skip to content

Add dart publish workflow, prebuilt binary support, and README#1886

Open
crodas wants to merge 1 commit intocashubtc:mainfrom
crodas:feature/dart-release
Open

Add dart publish workflow, prebuilt binary support, and README#1886
crodas wants to merge 1 commit intocashubtc:mainfrom
crodas:feature/dart-release

Conversation

@crodas
Copy link
Copy Markdown
Collaborator

@crodas crodas commented Apr 14, 2026

Description

Add a GitHub Actions workflow (publish.yml) for the cdk-dart repo that automates the full Dart release pipeline: updates Cargo.toml versions, builds native FFI libraries for 8 targets (Linux x86_64/arm64, macOS arm64, Windows x86_64, Android arm64/armv7/x86_64, iOS arm64), generates Dart bindings via uniffi-bindgen, and creates a GitHub release with tag.

Extend the Dart build hook (build.dart) to detect and use prebuilt binaries from a prebuilt/<target-triple>/ directory, skipping the cargo build when available. Falls back to building from source otherwise.

Enable npubcash and bip353 features on cdk-ffi for the Dart bindings.


Notes to the reviewers


Suggested CHANGELOG Updates

CHANGED

ADDED

REMOVED

FIXED


Checklist

  • I followed the code style guidelines
  • I ran just quick-check before committing
  • If the Wallet API was modified (added/removed/changed), I have reflected those changes in the FFI bindings (crates/cdk-ffi)

@crodas crodas self-assigned this Apr 14, 2026
@github-project-automation github-project-automation bot moved this to Backlog in CDK Apr 14, 2026
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 14, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 64.27%. Comparing base (bbbcae7) to head (3892851).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1886      +/-   ##
==========================================
- Coverage   64.32%   64.27%   -0.05%     
==========================================
  Files         329      329              
  Lines       55610    55610              
==========================================
- Hits        35770    35744      -26     
- Misses      19840    19866      +26     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment thread bindings/dart/.github/workflows/publish.yml Outdated
Comment thread .github/workflows/dart-publish.yml Outdated
Comment thread .github/workflows/dart-publish.yml Outdated
Comment thread .github/workflows/dart-publish.yml
@thesimplekid thesimplekid changed the title Add publish workflow, prebuilt binary support, and README Add dart publish workflow, prebuilt binary support, and README Apr 14, 2026
@crodas crodas force-pushed the feature/dart-release branch 3 times, most recently from 6371f8e to 9cc2a6a Compare April 16, 2026 04:27
@crodas
Copy link
Copy Markdown
Collaborator Author

crodas commented Apr 16, 2026

Here is an example in action from my personal repos:

@thesimplekid @Forte11Cuba ^

@crodas crodas force-pushed the feature/dart-release branch from 9cc2a6a to cd3e615 Compare April 16, 2026 04:30
@crodas crodas requested a review from thesimplekid April 16, 2026 04:31
@thesimplekid thesimplekid added this to the 0.17.0 milestone Apr 16, 2026
@crodas crodas marked this pull request as ready for review April 16, 2026 14:24
Copy link
Copy Markdown
Collaborator

@thesimplekid thesimplekid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you also document what secrets we need to set where?

Comment thread .github/workflows/dart-publish.yml Outdated
Comment thread .github/workflows/dart-publish.yml Outdated
Comment thread bindings/dart/README.md
@crodas crodas force-pushed the feature/dart-release branch 3 times, most recently from 5e9a007 to 7c39772 Compare April 19, 2026 23:58
@crodas
Copy link
Copy Markdown
Collaborator Author

crodas commented Apr 19, 2026

Chopped a few minutes off the building process
image

@crodas crodas force-pushed the feature/dart-release branch from a618945 to e9aca4a Compare April 20, 2026 00:18
@crodas crodas requested a review from thesimplekid April 20, 2026 00:32
Comment thread bindings/dart/README.md
Comment thread bindings/dart/README.md Outdated
Comment thread bindings/dart/README.md
Comment thread .github/workflows/dart-publish.yml Outdated
@github-project-automation github-project-automation bot moved this from Backlog to In progress in CDK Apr 20, 2026
@crodas crodas force-pushed the feature/dart-release branch from 595799d to 17b08c7 Compare April 20, 2026 15:14
@crodas crodas requested a review from thesimplekid April 21, 2026 00:54
@thesimplekid thesimplekid force-pushed the feature/dart-release branch from 6035e3a to 3f70ce7 Compare April 21, 2026 10:18
Add a GitHub Actions workflow (dart-publish.yml) in the monorepo that
automates the full Dart release pipeline for the cdk-dart repo:
- Syncs sources to cdk-dart using rsync and resolves Cargo workspace references.
- Builds native FFI libraries for 8 targets (Linux, macOS, Windows, Android, iOS).
- Generates Dart bindings via uniffi-bindgen reusing cargo cache.
- Creates per-platform release archives containing source code and binaries.
- Stages changes on a release branch and merges to master.
- Creates a GitHub release with tags and per-platform release assets.

Extend the Dart build hook (build.dart) to detect and use prebuilt binaries
from a `prebuilt/<target-triple>/` directory, skipping the cargo build when
available. Falls back to building from source otherwise.

Enable npubcash and bip353 features on cdk-ffi for the Dart bindings.
Update bindings/dart/README.md with installation and workflow instructions.
@thesimplekid thesimplekid force-pushed the feature/dart-release branch from 3f70ce7 to 3892851 Compare April 21, 2026 10:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In progress

Development

Successfully merging this pull request may close these issues.

2 participants