Add skill to update SDK dependencies
Also adds an owners file for skills, allowing all eng. Change-Id: Iefc970e31d3c2168b5b66e05b413e569072013be Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/493560 Reviewed-by: Reid Baker <reidbaker@google.com> Auto-Submit: Jake Macdonald <jakemac@google.com> Commit-Queue: Jake Macdonald <jakemac@google.com> Reviewed-by: Alexander Thomas <athom@google.com>
This commit is contained in:
committed by
dart-scoped@luci-project-accounts.iam.gserviceaccount.com
parent
3e0828907c
commit
784b47c3ba
@@ -0,0 +1,2 @@
|
||||
# Allow all committers to review documentation CLs.
|
||||
file:/tools/OWNERS_ENG
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
name: update-dependency
|
||||
description: Updates third party dependencies in the Dart SDK
|
||||
---
|
||||
|
||||
# Instructions
|
||||
|
||||
Use this skill to update dependencies in the Dart SDK's `DEPS` file to their
|
||||
latest (or a specific) version. This tool automates the process of updating
|
||||
the version, syncing dependencies, updating package configurations, and
|
||||
creating a CL.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before running the tool, ensure your environment is prepared correctly:
|
||||
|
||||
1. **Clean Git State**: Your git checkout MUST be clean. No uncommitted
|
||||
changes should be present.
|
||||
2. **On Main Branch**: You MUST be on the `main` branch. The tool creates a
|
||||
new branch from your current HEAD, so being on `main` ensures the bump
|
||||
starts from a clean baseline.
|
||||
|
||||
## Tool Usage
|
||||
|
||||
Run the `tools/manage_deps.dart` script with the `bump` command from the root
|
||||
of the SDK.
|
||||
|
||||
### Command Syntax
|
||||
|
||||
```bash
|
||||
dart tools/manage_deps.dart bump <path/to/dependency> \
|
||||
[--branch <branch_name>] [--target <ref>]
|
||||
```
|
||||
|
||||
### Arguments
|
||||
|
||||
1. `<path/to/dependency>` (required): The path to the dependency directory
|
||||
relative to the SDK root. Dependencies are entire repositories and not
|
||||
packages, so the path will usually be `third_party/pkg/<repo>`.
|
||||
- **CRITICAL**: DO NOT include a trailing slash in the path.
|
||||
- If unsure of the repository, you can look at the
|
||||
`.dart_tool/package_config.json` file relative to the SDK root, and search
|
||||
for `"name": "<package-name>"`. Next to that you should see a "rootUri"
|
||||
key which will give you the path to the dependency. Do not use the full
|
||||
path though, just the top level directory under `third_party/pkg/<repo>`,
|
||||
since entire repos are always rolled at once.
|
||||
- If the `.dart_tool/package_config.json` file does not exist, it can be
|
||||
generated by running `gclient sync`.
|
||||
2. `--branch <branch_name>` (optional): The name of the branch to create for
|
||||
this update. Defaults to `bump_<dependency_name>`.
|
||||
3. `--target <ref>` (optional): The specific git ref (SHA, tag, branch) to
|
||||
update to. Defaults to the latest version on the remote's default branch.
|
||||
|
||||
## Example
|
||||
|
||||
To bump the `unified_analytics` dependency, which is a part of the `tools` repo:
|
||||
|
||||
```bash
|
||||
dart tools/manage_deps.dart bump third_party/pkg/tools
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- **"Already at <target> - nothing to do"**: The dependency is already at the
|
||||
latest version or the specified target.
|
||||
- **Branch already exists**: If the tool says a branch with the target name
|
||||
already exists, you will be prompted to delete it. Usually, it is safe to say
|
||||
"y" if you want a fresh bump.
|
||||
Reference in New Issue
Block a user