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:
Jake Macdonald
2026-05-04 13:48:53 -07:00
committed by dart-scoped@luci-project-accounts.iam.gserviceaccount.com
parent 3e0828907c
commit 784b47c3ba
2 changed files with 70 additions and 0 deletions
+2
View File
@@ -0,0 +1,2 @@
# Allow all committers to review documentation CLs.
file:/tools/OWNERS_ENG
+68
View File
@@ -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.