This makes now the same simplification as the chromium
release scripts do. For creating branch B from a gnumbd'ed
(aka real) commit X do:
1. Branch Y off the real X
2. Set refs/pending/heads/B to Y
3. Set refs/pending-tags/B to X
4. Set refs/heads/B to X
The old algorithm tried to branch off the pending
correspondent of X. That commit was determined by comparing
tree objects of the real X and commits on pending.
Unfortunately, multiple commits on one branch can refer to
the same tree object, e.g., for commits P, Q, R with R being
the revert of Q, P and R refer to the same tree object.
TBR=tandrii@chromium.org
NOTRY=true
TEST=./script_test.py
TEST=tools/release/create_release.py -a me -r you --dry-run
Review URL: https://codereview.chromium.org/979243004
Cr-Commit-Position: refs/heads/master@{#27042}
Using a git range check for checking progress is wrong when
the last rolled revision and the revision candidate are on
different branches. The range A..B will always show the
commits from the merge-base of A and B until B.
Better compare the tags of the last rolled revision and the
candidate. The candidate's version must be strictly greater
than what's in chromium.
TBR=tandrii@chromium.org
NOTRY=true
TEST=./script_test.py
Review URL: https://codereview.chromium.org/979133002
Cr-Commit-Position: refs/heads/master@{#27021}
Before this change, out of two versions 4.2.13.1 and
4.2.14, the latter would have been considered the newest.
Now, the timestamp of the commit determines the age, which
allows to roll a patched version first. The auto-roller
will only roll forward (i.e. there needs to be a commit
range between the last roll and the new candidate).
Additionally, this CL does some cleanups:
- Use the sheriff detection mechanism in the auto-roller.
- Require the roll revision parameter in the chromium_roll
script to avoid redundancy. The auto_roll script determines
that revision automatically.
- Simplify the revision summary in the commit message. The
summary will now show last_roll..new_roll, which e.g.
includes the version change CL. It'll now show useful
information for cherry-picks, which it didn't before.
- Remove unused clusterfuzz check. That check is part of the
release process script.
TBR=tandrii@chromium.org
NOTRY=true
TEST=./script_test.py
TEST=./tools/release/chromium_roll.py --dry-run --sheriff -c ~/tmp/chromium/src --last-roll 55b9049ea3978a589d8db2aa191d21222eef737f fc263505535a175c8efa18f4c787bd92a1d1ab3d --use-commit-queue -r me -a you
Review URL: https://codereview.chromium.org/977903002
Cr-Commit-Position: refs/heads/master@{#27009}
The auto-push script is only used in an automated fashion
on bots. It doesn't need to check for a clean git
environment as it has a special workdir checkout.
If the release creation fails for whatever reason (e.g.
a master restart happens in the middle), the workdir
checkout might be left dirty. Any new attempt of the auto
pusher then bails out.
After this change it will call the create_release script
in any case which tidies up the workspace on startup.
TBR=tandrii@chromium.org
NOTRY=true
TEST=./script_test.py
Review URL: https://codereview.chromium.org/960773007
Cr-Commit-Position: refs/heads/master@{#26928}
Side note: tools/v8-info.sh seems to have been broken ever
since the move to git. At least it's not more broken now.
BUG=v8:3075
LOG=y
TEST=./script_test.py
Review URL: https://codereview.chromium.org/959713003
Cr-Commit-Position: refs/heads/master@{#26873}
Add a link with instructions about how to assign v8
issues to the chromium roll commit message.
Remove googler mapping feature as it doesn't apply anymore
to any generalist sheriff.
NOTRY=true
Review URL: https://codereview.chromium.org/938023002
Cr-Commit-Position: refs/heads/master@{#26761}
Use git hashes as keys when referring to releases, not
pure commit position numbers as those are not unique.
Better bailout to only check for recent releases.
Add new branching method with a roll branch in heads to
the v8rel test case.
Fix the way v8 is referred to in DEPS files in the test
cases. The test still had svn-number style.
BUG=chromium:451975
TBR=tandrii@chromium.org
NOTRY=true
LOG=n
TEST=./script_test.py
Review URL: https://codereview.chromium.org/928243002
Cr-Commit-Position: refs/heads/master@{#26669}
This is needed as normal chromium checkouts don't fetch
branch-heads.
These branches will also be replicated by GitHub and are
fetched when cloning from the repository.
The expected object size will be the same or smaller than
before as we currently push the same information onto the
candidates branch (which already is in refs/heads). The only
difference is the increasing number of refs in refs/heads.
BUG=chromium:451975
TBR=tandrii@chromium.org
NOTRY=true
LOG=n
TEST=./script_test.py
TEST=tools/release/create_release.py -r machenbach@chromium.org -a machenbach@chromium.org --dry-run
Review URL: https://codereview.chromium.org/914973002
Cr-Commit-Position: refs/heads/master@{#26629}
Also create new v8 versions based on the roll ref, which
has some more verification steps than the candidate ref.
Improve bailout regarding existing versions. Only create a
new version if the revisions is in the future.
BUG=chromium:451975
TBR=tandrii@chromium.org
NOTRY=true
LOG=n
Review URL: https://codereview.chromium.org/878913002
Cr-Commit-Position: refs/heads/master@{#26303}
Moved and renamed the scripts to fit with git.
These changes require documentation updates, updates of
the release spreadsheet and the buildbot side.
BUG=chromium:451975
TBR=tandrii@chromium.org
NOTRY=true
LOG=n
Review URL: https://codereview.chromium.org/868473004
Cr-Commit-Position: refs/heads/master@{#26271}