This document is for project maintainers and contributors.
dart pub get
dart analyze
dart testCoverage check:
dart test --coverage=coverage
dart run coverage:format_coverage --packages=.dart_tool/package_config.json --report-on=lib --in=coverage --out=coverage/lcov.info --lcov --fail-under=80
dart run tool/check_coverage.dart 80 coverage/lcov.info/.github/workflows/ci.yml- analyze + tests on Linux/macOS/Windows (
x64,arm64) and coverage gate. - includes GH mode/runtime integration matrix coverage (
test/gh_integration_test.dart).
- analyze + tests on Linux/macOS/Windows (
/.github/workflows/installer-smoke.yml- validates one-liner install scripts on Linux/macOS/Windows (
x64,arm64).
- validates one-liner install scripts on Linux/macOS/Windows (
/.github/workflows/live-gh-smoke.yml- manual live-network smoke tests against real GitHub repos.
/.github/workflows/publish-pubdev.yml- publishes to pub.dev when a tag like
vX.Y.Zis pushed.
- publishes to pub.dev when a tag like
/.github/workflows/release-binaries.yml- builds and uploads release binaries/checksums for
v*tags.
- builds and uploads release binaries/checksums for
Configure once on pub.dev package admin page:
- Enable Automated publishing from GitHub Actions.
- Repository:
leehack/drx. - Tag pattern:
v{{version}}.
No PUB_TOKEN is required when trusted publishing is configured correctly.
- Update version in:
pubspec.yamllib/src/engine.dart
- Add release notes to
CHANGELOG.md. - Validate:
dart analyzedart testdart pub publish --dry-run
- Commit and push
main. - Create and push tag:
git tag vX.Y.Z
git push origin vX.Y.ZTag push triggers:
- pub.dev publish (
publish-pubdev.yml) - binary release (
release-binaries.yml)
Use workflow dispatch on Release Binaries with input tag, for example v0.3.1.
This is useful if a previous binary job failed and source code fixes were applied without changing the package version.
- Installer scripts support
DRX_DOWNLOAD_BASEoverride for local/test payloads. - This is used by installer smoke workflow to test the one-liner flow end-to-end without depending on external GitHub release artifacts.
test/gh_live_smoke_test.dartis disabled by default and only runs whenDRX_ENABLE_LIVE_GH_TESTS=1.- Run locally:
DRX_ENABLE_LIVE_GH_TESTS=1 dart test test/gh_live_smoke_test.dart