- Updated AAR releaser test to use ShorebirdProcess.defaultFlutterStorageBaseUrl. - Changed macOS releaser test to reference a new troubleshooting URL. - Enhanced shorebird_yaml_test with deserialization for AOT patch metadata. - Modified network_checker_test to check self-hosted URLs from ShorebirdEnv. - Added tests for artifact paths in shorebird_artifacts_test. - Updated shorebird_cli_command_runner_test to reflect new repository URL. - Improved shorebird_env_test with additional tests for shorebirdRoot and engine revision fallback. - Adjusted shorebird_flutter_test to use environment variables for Flutter Git URL. - Updated shorebird_process_test to utilize default Flutter storage URL. - Enhanced shorebird_validator_test to link to the default hosted URL. - Updated shorebird_web_console_test to use the configured hosted URL. - Refactored code_push_client to use default hosted URL for API requests. - Updated README and generation scripts for the code_push_protocol package to reflect new OpenAPI spec source. - Modified shared.sh to allow configurable Flutter repository and storage URLs. Signed-off-by: Tony <tonylu@tony-cloud.com>
Shorebird 🐦
Getting Started
Visit https://docs.shorebird.dev to get started.
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, please join us on Discord.
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 uploaded to Codecov.
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 our license philosophy for more information on why we license files this way: https://handbook.shorebird.dev/engineering/#licensing-philosophy