Visit https://docs.shorebird.dev to get started.
This repository is a monorepo containing the following packages:
| Package | Description |
|---|---|
| shorebird_cli | Command-line which allows developers to interact with various Shorebird services |
| shorebird_code_push_client | Dart library which allows Dart applications to interact with the Shorebird CodePush API |
| shorebird_code_push_protocol | Dart library which contains common interfaces used by Shorebird CodePush |
| artifact_proxy | Dart server which supports intercepting and proxying Flutter artifact requests |
| discord_gcp_alerts | Dart server which forwards GCP alerts to Discord |
| flutter_version_resolver | Command-line utility that determines which Flutter version should be used for a project |
| jwt | Dart library for verifying JSON Web Tokens |
| redis_client | Dart library for interacting with Redis |
| scoped_deps | A simple dependency injection library built on Zones |
| stripe_api | Dart library for interacting with Stripe |
For more information, please refer to the documentation for each package.
If you're interested in contributing, please join us on Discord.
Working on Shorebird requires Dart.
./scripts/bootstrap.sh will run pub get all packages in the repository.
We don't yet have a script to run tests locally. For now, we recommend using
very_good test -r in the packages directory to run all shorebird tests.
(If you run it in the root, it will find packages in bin/cache/flutter and try to run tests there, some of which will fail.)
To generate a coverage report install lcov:
brew install lcov
Then run tests with the --coverage flag:
very_good test -r --coverage
genhtml coverage/lcov.info -o coverage
You can view the generated coverage report via:
open coverage/index.html
The following command will generate a coverage report for the Dart packages:
dart test --coverage=coverage && dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info --packages=.dart_tool/package_config.json --check-ignoreCoverage reports are uploaded to Codecov.
Shorebird projects are licensed for use under either Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0) MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.
See our license philosophy for more information on why we license files this way: https://handbook.shorebird.dev/engineering/#licensing-philosophy