Home of the Shorebird Tools
Shorebird code push is in Open Beta! Instructions for install and usage are at https://docs.shorebird.dev/
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 |
discord_gcp_alerts | Dart server which forwards GCP alerts to Discord |
jwt | Dart library for verifying Json Web Tokens |
scoped | A simple dependency injection library built on Zones |
For more information, please refer to the documentation for each package.
❗️ Note: This project is under heavy development. Things will change frequently and none of the code is ready for production use. We will do our best to keep the documentation up-to-date.
If you're interested in contributing, please join us on Discord.
Working on Shorebird requires Dart and Rust.
Once both are installed, ./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
We don't yet have a recommended way to view the coverage report but there are several extensions available in VSCode.
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://github.com/shorebirdtech/handbook/blob/main/engineering.md#licensing-philosophy