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 1.0 - September 2019 #8573

Closed
dslomov opened this issue Jun 6, 2019 · 47 comments
Closed

Release 1.0 - September 2019 #8573

dslomov opened this issue Jun 6, 2019 · 47 comments
Assignees
Labels

Comments

@dslomov
Copy link
Contributor

dslomov commented Jun 6, 2019

Target RC date - September 3rd, 2019.
See the blog post for some details

@dslomov dslomov added the release label Jun 6, 2019
@kkiningh
Copy link

kkiningh commented Jun 6, 2019

There's quite a few issues with the 1.0 tag left, including some that seem fairly significant. Which ones does the Bazel team still expect to address before the release?

@dslomov dslomov pinned this issue Jun 7, 2019
@dslomov dslomov unpinned this issue Jun 7, 2019
@dslomov
Copy link
Contributor Author

dslomov commented Jun 7, 2019

There's quite a few issues with the 1.0 tag left, including some that seem fairly significant. Which ones does the Bazel team still expect to address before the release?

We will do a review of those. If you think a specific issue is particularly important to address for 1.0, please comment on it.

@katre
Copy link
Member

katre commented Aug 2, 2019

Note that aaff22c and 7ed66f7 are rollbacks of commits that are present in 0.29.0. They should be rolled forward again before 1.0 is cut, but we need to make sure of that when choosing the baseline.

(They were rolled back due to an internal issue that does not affect Bazel. See http://b/138789815 for the internal discussion.)

@cgruber
Copy link
Contributor

cgruber commented Aug 3, 2019

In particular, both early phases of the rules_kotlin and rules_android roadmaps seem not to have any indications of their progress, and I have had several assurances that their "mid-2019" goals would roll out as a part of the Bazel 1.0 process. Can someone please confirm this, or otherwise inform folks who are waiting on those?

@dslomov
Copy link
Contributor Author

dslomov commented Sep 2, 2019

Current list of blockers is https://github.com/bazelbuild/bazel/labels/bazel%201.0

@dslomov
Copy link
Contributor Author

dslomov commented Sep 5, 2019

97a8264 is a 1.0 baseline I am going to try. Failing downstream projects:

@dslomov
Copy link
Contributor Author

dslomov commented Sep 5, 2019

Stuck on bazelbuild/continuous-integration#810, will retry the build once that goes in.

@dslomov
Copy link
Contributor Author

dslomov commented Sep 6, 2019

Cherry-picking a0e3bb2 - fix for #9327

@dslomov
Copy link
Contributor Author

dslomov commented Sep 6, 2019

 ./scripts/release/release.sh create --force_rc=2 1.0.0 97a8264 a0e3bb2 

@katre
Copy link
Member

katre commented Sep 6, 2019

I also cherrypicked 5c02b92 into 0.29.1, is that in 1.0.0?

@dslomov
Copy link
Contributor Author

dslomov commented Sep 6, 2019

I also cherrypicked 5c02b92 into 0.29.1, is that in 1.0.0?

I believe so.

@davido
Copy link
Contributor

davido commented Sep 9, 2019

It seems, that 1.0.0rc2 broke Gerrit (stable-2.14 release):

  ERROR: /home/jenkins/workspace/Gerrit-verifier-bazel/gerrit/gerrit-extension-api/BUILD:63:1: in java_doc rule //gerrit-extension-api:extension-api-javadoc: 
Traceback (most recent call last):
	File "/home/jenkins/workspace/Gerrit-verifier-bazel/gerrit/gerrit-extension-api/BUILD", line 63
		java_doc(name = 'extension-api-javadoc')
	File "/home/jenkins/workspace/Gerrit-verifier-bazel/gerrit/tools/bzl/javadoc.bzl", line 20, in _impl
		depset(transitive = [j.java.transitive_...])
	File "/home/jenkins/workspace/Gerrit-verifier-bazel/gerrit/tools/bzl/javadoc.bzl", line 20, in depset
		j.java.transitive_deps
object of type 'JavaSkylarkApiProvider' has no field 'transitive_deps'

It seems to be related to: [1]. This is the place in the code: [2]. This is the complete CI log: [3].

All is fine on 0.29.0 release.

[1] #7598
[2] https://github.com/GerritCodeReview/gerrit/blob/stable-2.14/tools/bzl/javadoc.bzl#L20-L21
[3] https://gerrit-ci.gerritforge.com/job/Gerrit-verifier-bazel/71542/consoleText

@dslomov
Copy link
Contributor Author

dslomov commented Sep 10, 2019

It seems, that 1.0.0rc2 broke Gerrit (stable-2.14 release):

  ERROR: /home/jenkins/workspace/Gerrit-verifier-bazel/gerrit/gerrit-extension-api/BUILD:63:1: in java_doc rule //gerrit-extension-api:extension-api-javadoc: 
Traceback (most recent call last):
	File "/home/jenkins/workspace/Gerrit-verifier-bazel/gerrit/gerrit-extension-api/BUILD", line 63
		java_doc(name = 'extension-api-javadoc')
	File "/home/jenkins/workspace/Gerrit-verifier-bazel/gerrit/tools/bzl/javadoc.bzl", line 20, in _impl
		depset(transitive = [j.java.transitive_...])
	File "/home/jenkins/workspace/Gerrit-verifier-bazel/gerrit/tools/bzl/javadoc.bzl", line 20, in depset
		j.java.transitive_deps
object of type 'JavaSkylarkApiProvider' has no field 'transitive_deps'

It seems to be related to: [1]. This is the place in the code: [2]. This is the complete CI log: [3].

All is fine on 0.29.0 release.

[1] #7598
[2] https://github.com/GerritCodeReview/gerrit/blob/stable-2.14/tools/bzl/javadoc.bzl#L20-L21
[3] https://gerrit-ci.gerritforge.com/job/Gerrit-verifier-bazel/71542/consoleText

Well, yes #7598 is a breaking change in 1.0 (marked as such). Use j[JavaInfo].transitive_deps instead (per backwards compatibility policy and Updating Bazel guidance.

@davido
Copy link
Contributor

davido commented Sep 12, 2019

I would like to bring to your attention the fact, that 1.0.0rc2 broke IntelliJ plugin. I just wrote this issue.

@kastiglione
Copy link
Contributor

Hi, can this commit be picked into 1.0: #9371?

On macOS, it affects hermeticity and caching.

@jin
Copy link
Member

jin commented Sep 13, 2019

@davido Looks like the fix is in (bazelbuild/intellij@5f03bde), and the plugin version with that fix is expected to be released early next week.

@dslomov
Copy link
Contributor Author

dslomov commented Sep 16, 2019

Will cherrypick ada2c55

@dslomov
Copy link
Contributor Author

dslomov commented Sep 16, 2019

rc3:

./scripts/release/release.sh create --force_rc=3 1.0.0 97a8264 a0e3bb2 ada2c55

@DavidGoldman
Copy link
Contributor

We'll also want to cherry pick #9403 as it helps improving cache hit rates across multiple macOS versions

@dslomov
Copy link
Contributor Author

dslomov commented Sep 19, 2019

Could you explain in more detail which problem #9403 fixes and why it warrants cherry-picking as opposed to waiting for the next release? Is it a serious regression?

@DavidGoldman
Copy link
Contributor

Could you explain in more detail which problem #9403 fixes and why it warrants cherry-picking as opposed to waiting for the next release? Is it a serious regression?

It's not a serious regression but a nice to have given that the issue is caused by having developers on different macOS versions and a new version of macOS will drop next month.

@dslomov
Copy link
Contributor Author

dslomov commented Sep 19, 2019

Could you explain in more detail which problem #9403 fixes and why it warrants cherry-picking as opposed to waiting for the next release? Is it a serious regression?

It's not a serious regression but a nice to have given that the issue is caused by having developers on different macOS versions and a new version of macOS will drop next month.

I say we get in 1.1 then.

@kastiglione
Copy link
Contributor

kastiglione commented Sep 19, 2019

It means developers on 10.14 and 10.15 will share very little cache. Anything that has wrapped_clang (for example) as an input, will not share cache with the exact same build built for 10.14 vs 10.15, even if Xcode and all other dependencies are identical.

@davido
Copy link
Contributor

davido commented Sep 25, 2019

I've tested all major use cases with building and testing of Gerrit project with the latest rc3, and it works as expected. I can build and test Gerrit on JDK 8/11 with embedded_jdk11, and on JDK 13 with toolchain_vanilla and that is great!

I've only detected two minor issues. One regression hard coded vanilla_toolchain to produce byte code major version 52 (Java 8) and one bug that wasn't discovered until now, where current_host_java_runtime is not provided in runfiles directory.

There are pending PRs for review for both problems: 1, 2, and we applied workarounds in Gerrit already: a, b.

It would be great, if those fixes could make it in 1.0 release, but they can also be fixed in 1.1 (or later).

@wesleyw72
Copy link

#9439

@dslomov
Copy link
Contributor Author

dslomov commented Sep 27, 2019

#9415 is a release blocker, will cherry-pic a fix.
Still waiting for decision on #9270.

@dslomov
Copy link
Contributor Author

dslomov commented Sep 30, 2019

rc4:

 ./scripts/release/release.sh create --force_rc=4 1.0.0 97a8264 a0e3bb2 ada2c55 847df72

@dslomov
Copy link
Contributor Author

dslomov commented Oct 1, 2019

@dslomov
Copy link
Contributor Author

dslomov commented Oct 1, 2019

The run is green!

@iirina
Copy link
Contributor

iirina commented Oct 2, 2019

@dslomov Please cherry pick 5cfa030 which fixes the performance regression described in #9270.

@dslomov
Copy link
Contributor Author

dslomov commented Oct 2, 2019

rc5: ./scripts/release/release.sh create --force_rc=5 1.0.0 97a8264 a0e3bb2 ada2c55 847df72 5cfa030

@dslomov
Copy link
Contributor Author

dslomov commented Oct 2, 2019

@davido
Copy link
Contributor

davido commented Oct 3, 2019

It tuns out, that this build spam issue that was reported multiple times already: [1], [2] is actually a regression from remote JDK upgrade to JDK 11 in this commit. See also my detailed analysis of the problem.

After trying to drop Java language level 7 compatibility in Bazel: [3] and Protobuf: [4] projects that was rejected upstream I figured that we can avoid passing mutually exclusive options to Java compiler in non-invasive way, by extending existing ReleaseOptionNormalizer in JavacOptions, in: [5].

Can we consider to apply the fix in java_tools, build new java_tools version 5.2 and cherry-pick it here?

Or, alternatively, could we do official release of java_tools with: [5] merged, but without upgrading Bazel, so that Gerrit project could switch to consuming new java_tools version and that would fix the console spamming issue for Gerrit project.

[1] #8772
[2] https://bugs.chromium.org/p/gerrit/issues/detail?id=11102
[3] #9450
[4] protocolbuffers/protobuf#6711
[5] #9494

@dslomov
Copy link
Contributor Author

dslomov commented Oct 7, 2019

Or, alternatively, could we do official release of java_tools with: [5] merged, but without upgrading Bazel, so that Gerrit project could switch to consuming new java_tools version and that would fix the console spamming issue for Gerrit project.

I like this option. @iirina wdyt?

[1] #8772
[2] https://bugs.chromium.org/p/gerrit/issues/detail?id=11102
[3] #9450
[4] protocolbuffers/protobuf#6711
[5] #9494

@iirina
Copy link
Contributor

iirina commented Oct 8, 2019

I agree, I don't think we should block the release. Submitting [5] and releasing java_tools sounds reasonable to me. You can follow the java_tools release at bazelbuild/java_tools#17

@dslomov
Copy link
Contributor Author

dslomov commented Oct 10, 2019

Will release rc5 today.

@gertvdijk
Copy link
Contributor

gertvdijk commented Oct 10, 2019

Will release rc5 today.

Uhm, I noticed 1.0.0 was just released? https://github.com/bazelbuild/bazel/releases/tag/1.0.0

edit: oh, "1.0.0rc5 as 1.0.0" I guess 😄 🎉

@dslomov
Copy link
Contributor Author

dslomov commented Oct 10, 2019

Published 1.0.0rc5 as 1.0.0.

Pinging package maintainers: @vbatts @petemounce @excitoon

@zegl
Copy link
Contributor

zegl commented Oct 10, 2019

Congratulations on the 1.0 release, this is a huge milestone for the entire community! 🥇

@vbatts
Copy link

vbatts commented Oct 10, 2019 via email

@vbatts
Copy link

vbatts commented Oct 10, 2019

until then, builds kicked off for centos, rhel, and fedora https://copr.fedorainfracloud.org/coprs/build/1052142

@keith
Copy link
Member

keith commented Oct 10, 2019

If there is going to be a patch release I believe #9376 should be cherry picked which fixes this remote cache regression from 0.29.0 #9362

@dslomov dslomov closed this as completed Oct 11, 2019
@petemounce
Copy link
Contributor

Published to chocolatey, apologies for delay.

@jmillikin-stripe
Copy link
Contributor

#9998 is an unexpected regression from v0.29, given that str.replace() is documented as taking a keyword parameter for maxsplit and major projects such as Kubernetes depend on the documented behavior.

@meisterT meisterT unpinned this issue Nov 6, 2019
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