Shorebird
Getting Started
This fork is wired for the open workspace CI and self-hosted services described
in OPEN_SOURCE_REPLACEMENTS.md. The root
workspace workflow, .github/workflows/open-shorebird-ci.yml, builds the open
CLI, server, updater patch tools, custom Dart SDK, and engine artifacts.
Packages
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.
Contributing
If you're interested in contributing, use this fork's issue tracker or the root workspace documentation.
Environment setup
Working on Shorebird requires Dart.
./scripts/bootstrap.sh will run pub get all packages in the repository.
Running tests
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
Tracking coverage
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 generated locally under coverage/. Configure upload for
your own mirror or CI account when publishing this fork.
License
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 the Apache and MIT license files in this repository for the license terms.