Scenario: Kevin and Erik or some other fine contributor to the async_await package on GitHub has committed some changes and you want to use those within the main Dart repo.
About you:
- You already have the repo downloaded locally on your machine.
- You are using Git, not svn. You also probably ride a horseless carriage and no longer use leeches and bloodletting to cure your ailments.
Note that you do not need a separate svn checkout. You already have one, you just don't know it.
Given that, here's the process. This likely alsos work for other third party packages that live on GitHub that we want to use in the Dart repo, but I make no promises there:
-
Look up the SHA-1 of the commit you want. It's usually just "latest commit" on the main page for the repo.
-
Go into the directory where the deps live:
# Assuming cwd is the normal "dart" directory in the repo. $ cd ../all.deps -
Open the
DEPSfile, and change the value of"async_await_rev"to the new commit. It looks something like:"async_await_rev" : "@<your commit here>",
-
Save that file. In a separate shell whose cwd is the usual
dartdirectory in the repo, pull in the change by running:$ gclient sync
You may also want to run
gclient runhooksif you're feeling superstitious. Look inthird_party/pkg/async_awaitand verify that the new changes are in there. -
Test it locally. Run pub's shell script from the repo. Run some tests. Reach your happy place.
-
Commit it in svn and upload it. Back in the
all.depsdirectory run:$ gcl change bump_async # Enter a description and save. $ gcl upload bump_async -
Send it out for code review.
gcl uploadwill print a code review URL. Go through your usual review process until you get an LGTM. -
Commit the DEPS patch. Again, from
all.deps/:$ gcl commit bump_async
-
Commit the compiler version bump patch. Now, from the main
dartdirectory, go through the normal code review process to submit your change toCOMPILER_VERSION. -
Make sure the bots are happy. Wait for that sweet sweet green to appear on the waterfall.