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 |
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 |
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-ignore
Coverage 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