Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.26 - May 2019 #7499

Closed
laurentlb opened this issue Feb 21, 2019 · 130 comments
Closed

Release 0.26 - May 2019 #7499

laurentlb opened this issue Feb 21, 2019 · 130 comments
Assignees
Labels

Comments

@laurentlb
Copy link
Contributor

Target RC date: May 2nd

@dslomov
Copy link
Contributor

dslomov commented Apr 30, 2019

We would like to make sure that at least experimenal implementation of #8201 is in this release.

@aehlig
Copy link
Contributor

aehlig commented Apr 30, 2019

We would like to make sure that at least experimenal implementation of #8201 is in this release.

When do you expect this implementation to be committed to the bazel code base?

@brandjon
Copy link
Member

I'd like to flip --incompatible_use_python_toolchains in this release, but I ended up being blocked on #5104, which would mean that flipping this flag will break users of --build_python_zip who are not currently overriding the default Python runtime. Not sure how I'll resolve this yet, will update here...

@sergiocampama
Copy link
Contributor

sergiocampama commented May 1, 2019

I'd like to flip --incompatible_disable_objc_provider_resources, and I'm trying to submit this change before the May 2nd deadline, would it be fine to cherrypick if I don't make it by the 2nd?

EDIT: This has been submitted on May 1st.

@brandjon
Copy link
Member

brandjon commented May 1, 2019

Submitted the flag flip for Python toolchains, so if the baseline is cut after today then I'm good.

@dslomov
Copy link
Contributor

dslomov commented May 2, 2019

We would like to make sure that at least experimenal implementation of #8201 is in this release.

When do you expect this implementation to be committed to the bazel code base?

In the coming days.

@aehlig
Copy link
Contributor

aehlig commented May 2, 2019

Current state of our downstream projects.

  • The last fully green nightly is from Apr 17, 2019
  • The nightly from May 1st is pretty good, with only "BUILD file generator" failing, "rules_gwt" broken, and "TensorFlow" failing to clone.

laszlocsomor referenced this issue May 2, 2019
This flips --incompatible_use_python_toolchains, which deprecates --python_top (and for the most part, --python_path). See [#7899](#7899) for more on the change and migration procedure.

RELNOTES[INC]: Python rules now determine the Python runtime using toolchains rather than `--python_top` and `--python_path`, which are deprecated. See [#7899](#7899) for information on declaring Python toolchains and migrating your code. As a side-benefit, this addresses #4815 (incorrect interpreter version used) on non-Windows platforms. You can temporarily opt out of this change with `--incompatible_use_python_toolchains=false`.

Fixes #7899, fixes #7375, significant progress on #4815.

PiperOrigin-RevId: 246219480
@brandjon
Copy link
Member

brandjon commented May 2, 2019

Apparently my flag flip broken a mac test in postsubmit. Working on a simple forward fix to disable the flip for that test now...

@aehlig
Copy link
Contributor

aehlig commented May 2, 2019

Apparently my flag flip broken a mac test in postsubmit. Working on a simple forward fix to disable the flip for that test now...

Looking at today's nightly, a lot of breakage seems python related. So, rolling back seems more appropriate, unless you verify that your forward fix fixes the python-related downstream breakages as well. With that large number of downstream breakages, we're stuck with the nightly from May 1st (i.e., commit baefeab) anyway.

@brandjon
Copy link
Member

brandjon commented May 2, 2019

Sadly yes. I'll roll back my flag flip and work on downstream fixes.

@brandjon
Copy link
Member

brandjon commented May 2, 2019

Rolled back by 4837e11, so you can cherrypick that or cut the baseline after.

@aehlig
Copy link
Contributor

aehlig commented May 3, 2019

The current nightly has all the breakages of the one from May 1st and, on top of that, the ones tracked by #8227. So the the canonical base line would be baefeab which we should take according to our policy. However, I was ordered to delay the release to wait for #8201.

@dslomov
Copy link
Contributor

dslomov commented May 3, 2019

For context #8201 is critical for the angular/angular#19058 - Angular team is blocked on this for enabling bazel in their 8.0 release (which is alerady in RC and is going GA late May/early June). I understand that this is somewhat frustrating, but @irengrig and other folks on the team are hard at work getting the last bits in.

@irengrig
Copy link
Contributor

irengrig commented May 3, 2019

#8201 is submitted!!! :)

@aehlig
Copy link
Contributor

aehlig commented May 3, 2019

To fix the non-determinism uncovered (but not caused) by 29f1932, will target as baseline commit https://bazel-review.googlesource.com/c/bazel/+/98615, once in.

@aehlig
Copy link
Contributor

aehlig commented May 6, 2019

The latest nightly seems alright, at least not worse than the one of May 1st. "BUILD file generator" failing, "rules_gwt" failing to build, and "Tensorflow" failing to clone; the latter is a known issue.

So, let's take daa8ae5 as a baseline, and cherry-pick https://bazel-review.googlesource.com/c/bazel/+/98615 once in. Depending on whether there will be a patch release for 0.25.0 (#7498), we might need additional cherry-picks.

@aehlig
Copy link
Contributor

aehlig commented May 6, 2019

Creating RC1 failed.

ERROR: /workdir/scripts/packages/debian/BUILD:69:1: in _pkg_deb rule //scripts/packages/debian:bazel-debian:
Traceback (most recent call last):
        File "/workdir/scripts/packages/debian/BUILD", line 69
                _pkg_deb(name = 'bazel-debian')
        File "/workdir/tools/build_defs/pkg/pkg.bzl", line 128, in _pkg_deb_impl
                ctx.outputs.deb.path
object of type 'NoneType' has no field 'path'
ERROR: Analysis of target '//scripts/packages/debian:bazel-debian.deb' failed; build aborted: Analysis of target '//scripts/packages/debian:bazel-debian' failed; build aborted

Investigating.

@aehlig
Copy link
Contributor

aehlig commented May 6, 2019

This is caused by commit bbe47a1. I verified that reverting it makes the build of //scripts/packages/debian:bazel-debian.deb succeed. Will try to create a roll back.

@aehlig
Copy link
Contributor

aehlig commented May 6, 2019

Rollback submitted as c2001a4

Between the previous baseline and this commit, there is another rollback which we should include anyway, as releases should include all rollbacks of commits in their baseline, and a commit adding a single test case, which shouldn't do much harm. So I'll bump the baseline to c2001a4 for my attempt to create RC2.

@aehlig
Copy link
Contributor

aehlig commented May 6, 2019

RC2 is available at https://releases.bazel.build/0.26.0/rc2/index.html

The release announcement is off though; I'll have to investigate where our release script took the wrong baseline for generating the release notes. Nevertheless, please test the release candidate.

@aehlig
Copy link
Contributor

aehlig commented May 6, 2019

Will try to create RC3 with same baseline and cherry-picking e67c961 as this is the fix for a non-determinism problem we observed while searching for a good baseline.

@aehlig
Copy link
Contributor

aehlig commented May 6, 2019

RC3 is available at https://releases.bazel.build/0.26.0/rc3/index.html

The release notes are still off. It is really bazeline c2001a4 with cherry-pick e67c961.

@aehlig
Copy link
Contributor

aehlig commented May 6, 2019

@aehlig
Copy link
Contributor

aehlig commented May 6, 2019

The downstream runs for RC3 look reasonable. Please test RC3 and report regressions before May 14.

@aehlig
Copy link
Contributor

aehlig commented May 28, 2019

And we have the first regression: #8475. Fix is being implemented.

So we will have a patch release, once this is fixed.

@aehlig aehlig reopened this May 28, 2019
@irengrig
Copy link
Contributor

The fix for #8475 is submitted.

@steeve
Copy link
Contributor

steeve commented May 31, 2019

Submitting #8522 for cherry-pick, which fixes #8520.
This fixes rules_go on iOS and Android.

@katre
Copy link
Member

katre commented May 31, 2019

c3d2aa7 is submitted and fixes #8520.

@aehlig
Copy link
Contributor

aehlig commented Jun 3, 2019

Creating rc1 for the patch release 0.26.1.

scripts/release/release.sh create 0.26.1 cb82ed84d44db0169a8fbf15f9cee434b77002bb d1c0d205945f5a765efb0a48593b1cd82699ce32 c3d2aa74ccd23dfb8a8173c2b3e2955f0c5892cb

It is available at https://releases.bazel.build/0.26.1/rc1/index.html
(Please don't get confused by the list of cherry-picks mentioned there; our release script got them wrong again; we only have the two cherry-picks mentioned here.)

@aehlig
Copy link
Contributor

aehlig commented Jun 3, 2019

The downstream projects look good (the "Bazel Integration testing" failure is due to changed RBE configurations).

So please test 0.26.1rc1. I plan to release it on Wednesday, June 5, 2019, in the morning, Munich time.

@jin
Copy link
Member

jin commented Jun 3, 2019

Please cherrypick b0403a7 for bazelbuild/intellij#845. Fixes Bazel with IntelliJ when building annotation processor targets.

@aehlig
Copy link
Contributor

aehlig commented Jun 4, 2019

Please cherrypick b0403a7 for bazelbuild/intellij#845. Fixes Bazel with IntelliJ when building annotation processor targets.

Is this really a regression, i.e., something not working on 0.26.0 that was working on 0.25.3? Also note that cherry-picks are supposed to be small, well-understood changes where we can be reasonably sure that they do not break anything else; a bump of an opaque archive usually does not qualify as such.

@philwo
Copy link
Member

philwo commented Jun 4, 2019

@aehlig Absolutely a regression, I can’t even build Bazel itself anymore with IntelliJ inside a Google and thought I’m doing something wrong... I'm getting the Genclass error that’s mentioned in the linked commit. This always worked before 0.26.0.

@aehlig
Copy link
Contributor

aehlig commented Jun 4, 2019

This is the diffstat(1) between the contents of the old and the bumped linux archive.

 BUILD                                                                           |   31 
 README.md                                                                       |    6 
 java_tools/JacocoCoverage_jarjar_deploy.jar                                     |binary
 java_tools/JavaBuilder_deploy.jar                                               |binary
 java_tools/VanillaJavaBuilder_deploy.jar                                        |binary
 java_tools/ijar/ijar                                                            |binary
 java_tools/ijar/zipper                                                          |binary
 java_tools/src/main/cpp/util/errors_windows.cc                                  |    5 
 java_tools/src/main/cpp/util/file_windows.cc                                    |    7 
 java_tools/src/main/cpp/util/path_platform.h                                    |    3 
 java_tools/src/main/cpp/util/path_windows.cc                                    |  154 --
 java_tools/src/main/cpp/util/profiler_windows.cc                                |    4 
 java_tools/src/main/cpp/util/strings.cc                                         |    7 
 java_tools/src/main/native/windows/file.cc                                      |  120 +-
 java_tools/src/main/native/windows/file.h                                       |   51 
 java_tools/src/main/native/windows/util.cc                                      |   25 
 java_tools/src/main/native/windows/util.h                                       |    6 
 java_tools/src/tools/singlejar/diag.h                                           |    6 
 java_tools/third_party/java/jacoco/LICENSE                                      |  544 ++--------
 java_tools/third_party/java/jacoco/jacocoagent-0.8.3.jar                        |binary
 java_tools/third_party/java/jacoco/jacocoagent.jar                              |binary
 java_tools/third_party/java/jacoco/org.jacoco.agent-0.7.5.201505241946-src.jar  |binary
 java_tools/third_party/java/jacoco/org.jacoco.agent-0.7.5.201505241946.jar      |binary
 java_tools/third_party/java/jacoco/org.jacoco.agent-0.8.3-sources.jar           |binary
 java_tools/third_party/java/jacoco/org.jacoco.agent-0.8.3.jar                   |binary
 java_tools/third_party/java/jacoco/org.jacoco.core-0.7.5.201505241946-src.jar   |binary
 java_tools/third_party/java/jacoco/org.jacoco.core-0.7.5.201505241946.jar       |binary
 java_tools/third_party/java/jacoco/org.jacoco.core-0.8.3-sources.jar            |binary
 java_tools/third_party/java/jacoco/org.jacoco.core-0.8.3.jar                    |binary
 java_tools/third_party/java/jacoco/org.jacoco.report-0.7.5.201505241946-src.jar |binary
 java_tools/third_party/java/jacoco/org.jacoco.report-0.7.5.201505241946.jar     |binary
 java_tools/third_party/java/jacoco/org.jacoco.report-0.8.3-sources.jar          |binary
 java_tools/third_party/java/jacoco/org.jacoco.report-0.8.3.jar                  |binary
 33 files changed, 406 insertions(+), 563 deletions(-)

This is more than a small, well-understood, change. Isn't there a way to just fix the regression without changing two binaries, 16 java archives, and the license?

@aehlig
Copy link
Contributor

aehlig commented Jun 4, 2019

@aehlig Absolutely a regression, I can’t even build Bazel itself anymore with IntelliJ [...]

So how was that regression introduced into the code base. I doubt it was introduced by a downgrade of the java tools...

@philwo
Copy link
Member

philwo commented Jun 4, 2019

I don’t know, I’m just a user in this case who can no longer work until this is fixed.

@aehlig
Copy link
Contributor

aehlig commented Jun 4, 2019

I don’t know, I’m just a user in this case who can no longer work until this is fixed.

OK, then we'll bisect to find the offending commit and try to cherry-pick a revert of it (the revert needn't go on master, it can stay on a side branch); but such a big library change to fix forward is too large for a patch release, in my opinion.

@iirina
Copy link
Contributor

iirina commented Jun 4, 2019

While b0403a7 fixes bazelbuild/intellij#845, I'm not sure that was the culprit. The typo fixed by the new java_tools release was there from the first java_tools version, so downgrading the java_tools version will not work. @aehlig's proposal seems the right way forward.

@philwo
Copy link
Member

philwo commented Jun 4, 2019

I'm bisecting this now.

@philwo
Copy link
Member

philwo commented Jun 4, 2019

This commit is the culprit: 8887169

Verified by checking out 0.26.0 and doing a git revert. I can then no longer repro the issue.

@aehlig
Copy link
Contributor

aehlig commented Jun 4, 2019

This commit is the culprit: 8887169

Verified by checking out 0.26.0 and doing a git revert. I can then no longer repro the issue.

Thanks for the bisect. Now we're in trouble here, as the culprit is also a bump of an embedded library. Will have to have a look at both changes to make a call, what is less likely to break things. Any technical information about those two library changes would be greatly appreciated.

@aehlig
Copy link
Contributor

aehlig commented Jun 4, 2019

Now we're in trouble here, as the culprit is also a bump of an embedded library.

Fortunately, the changes in the libraries hidden in the culript commit are comparatively small; 192 lines of BUILD file (and a README file). So, let's try cherry-picking the revert of the culprit.

@aehlig
Copy link
Contributor

aehlig commented Jun 4, 2019

@iirina created a patch-release for the java tools with only the minimal changes needed to fix bazelbuild/intellij#845. Thank you! So we can get away with cherry-pick a much smaller change, 55e4205.

@aehlig
Copy link
Contributor

aehlig commented Jun 4, 2019

scripts/release/release.sh create --force_rc=3 0.26.1 cb82ed84d44db0169a8fbf15f9cee434b77002bb d1c0d205945f5a765efb0a48593b1cd82699ce32 c3d2aa74ccd23dfb8a8173c2b3e2955f0c5892cb 55e42052a22a60b68d88a89932b2a068311b1a95
scripts/release/release.sh push

(There will be no rc2, as I forgot to fetch the branches on first attempt and thus decided it's safer to drop the rc number.)

@aehlig
Copy link
Contributor

aehlig commented Jun 4, 2019

#8556 tracks our efforts of avoiding such regressions in the future.

@aehlig
Copy link
Contributor

aehlig commented Jun 4, 2019

0.26.1rc3 is available at https://releases.bazel.build/0.26.1/rc3/index.html

@aehlig
Copy link
Contributor

aehlig commented Jun 4, 2019

The downstream projects still look good, again with "Bazel Integration Testing" broken due to changed RBE configurations.

Please test carefully. I plan to release 0.26.1 on Thursday, Jun 6, 2019, early afternoon Munich time.

@aehlig
Copy link
Contributor

aehlig commented Jun 6, 2019

Promoting 0.26.1rc3 to release...

@aehlig
Copy link
Contributor

aehlig commented Jun 6, 2019

0.26.1 is available at https://releases.bazel.build/0.26.1/release/index.html

@aehlig aehlig closed this as completed Jun 6, 2019
@aehlig aehlig unpinned this issue Jun 6, 2019
joeleba pushed a commit to joeleba/continuous-integration that referenced this issue Jun 17, 2019
It accidentally used ubuntu1804, which means we built a version no longer compatible with Ubuntu 14.04: bazelbuild/bazel#7499 (comment)

Note that Bazel 0.26 will be the last version built on Ubuntu 14.04, though, as was previously announced here: https://groups.google.com/forum/#!searchin/bazel-discuss/ubuntu$2014.04%7Csort:date/bazel-discuss/dPomOEOPseA/Jp849gJvBwAJ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests