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

Bazel installer should not overwrite ~/.bazelrc #2958

Closed
philwo opened this issue May 6, 2017 · 5 comments
Closed

Bazel installer should not overwrite ~/.bazelrc #2958

philwo opened this issue May 6, 2017 · 5 comments
Assignees
Labels
P2 We'll consider working on this in future. (Assignee optional)
Milestone

Comments

@philwo
Copy link
Member

philwo commented May 6, 2017

The Bazel installer currently moves ~/.bazelrc to ~/.bazelrc.bak and creates an empty file instead, which is rather annoying. We should change the installer to not touch the file.

@philwo philwo added category: misc > bootstrap / installation P2 We'll consider working on this in future. (Assignee optional) labels May 6, 2017
@philwo philwo added this to the 0.5 milestone May 6, 2017
@philwo philwo self-assigned this May 6, 2017
@ittaiz
Copy link
Member

ittaiz commented May 6, 2017 via email

@philwo
Copy link
Member Author

philwo commented May 6, 2017

@ittaiz I don't think a ~/.bazelrc was ever mandatory, Bazel should work just fine without any configuration files like /etc/bazelrc or ~/.bazelrc. :)

The installer currently always wants to create an empty ~/.bazelrc file. If the user has already created a ~/.bazelrc file (and possibly put some config flags there), it will be moved to ~/.bazelrc.bak, which is annoying, because your next step is probably to just move it back to ~/.bazelrc.

Instead the installer should just not touch the file at all - if it doesn't exist already, don't create one. If one exists, leave it as is.

@softprops
Copy link

softprops commented May 6, 2017 via email

@ittaiz
Copy link
Member

ittaiz commented May 7, 2017 via email

@philwo
Copy link
Member Author

philwo commented May 7, 2017

@ittaiz No problem and sorry for the misunderstanding. With "that mechanism", I just meant "the part of the installer that deals with the ~/.bazelrc", but re-reading my issue description I can see now how that might be confusing. I removed the part of the sentence.

hlopko pushed a commit that referenced this issue May 10, 2017
Closes #2959.
Ping #2692 for cherry-picking into Bazel 0.5.0.

PiperOrigin-RevId: 155357560
hlopko pushed a commit that referenced this issue May 10, 2017
Closes #2959.
Ping #2692 for cherry-picking into Bazel 0.5.0.

PiperOrigin-RevId: 155357560
hlopko pushed a commit that referenced this issue May 10, 2017
Closes #2959.
Ping #2692 for cherry-picking into Bazel 0.5.0.

PiperOrigin-RevId: 155357560
hlopko pushed a commit that referenced this issue May 11, 2017
Closes #2959.
Ping #2692 for cherry-picking into Bazel 0.5.0.

PiperOrigin-RevId: 155357560
hlopko pushed a commit that referenced this issue May 17, 2017
Closes #2959.
Ping #2692 for cherry-picking into Bazel 0.5.0.

PiperOrigin-RevId: 155357560
hlopko pushed a commit that referenced this issue May 17, 2017
Closes #2959.
Ping #2692 for cherry-picking into Bazel 0.5.0.

PiperOrigin-RevId: 155357560
hlopko pushed a commit that referenced this issue May 23, 2017
Closes #2959.
Ping #2692 for cherry-picking into Bazel 0.5.0.

PiperOrigin-RevId: 155357560
bazel-io pushed a commit that referenced this issue May 26, 2017
Baseline: f3ae88e

Cherry picks:
   + c58ba09:
     Release to GCS: put the final release in its own directory
   + 0acead4:
     Update protobuf to latest master at a64497c and apply
     @laszlocsomor's latest changes from
     protocolbuffers/protobuf#2969 on top of it.
   + d0242ce:
     Make symlinks consistent
   + d953ca8:
     Clean VanillaJavaBuilder output directories
   + 755669f:
     Pass all the environment variable to Bazel during bootstrapping
   + 6f04166:
     Do not mark the JDK7 installer -without-jdk-installer
   + 7205611:
     Fix #2958: Installer should not overwrite bazelrc
   + 511c35b:
     Bootstrap: move the fail function to the top
   + 8470be1:
     Clean up javac and Error Prone targets
   + 4a404de:
     Update javac version to 9-dev-r4023-2
   + 36ce4b4:
     Update javac version to 9-dev-r4023-2
   + 38949b8:
     Migrate off versioned javac and Error Prone targets
   + 1a57d29:
     Re-enabling passing -sourcepath via javacopts.
   + eb565f4:
     Make make sure that msys build actually builds msys version
   + 39f328c:
     Fix typo. Also do not override host_cpu for msvc.
   + 6248028:
     Select correct JDK for windows_msys
   + c4f271d:
     Automated g4 rollback of commit
     3e5edaf.
   + 9261809:
     Remove process-tools.cc which I forgot to delete during the last
     rollback.
   + baca6e4:
     Fix #2982: Bazel installer should not check for installed JDK if
     using a bundled JDK.
   + 866ecc8:
     Disable msys path conversion on Windows.
   + cc21998:
     Rollforward #2 of: Basic open-source crosstool to support
     targeting apple platform types.
   + 0f0ccc4:
     Escape % in strings that will appear in Crosstool
   + 3b08f77:
     Adding feature for linking C Run-Time library on Windows

Incompatible changes:

  - Bazel's Linux sandbox no longer mounts an empty tmpfs on /tmp,
    instead the existing /tmp is mounted read-write. If you prefer
    to have a tmpfs on /tmp for sandboxed actions for increased
    hermeticity, please use the flag --sandbox_tmpfs_path=/tmp.
  - Converting artifacts to strings and printing them now return
    "File" instead of "Artifact" to be consistent with the type name.
  - The return type of depset.to_list() is now a list rather than a
    frozen list. (Modifying the list has no effect on the depset.)
  - Bazel now prints logs in single lines to java.log
  - --use_dash, --dash_url and --dash_secret are removed.
  - Remote repositories must define any remote repositories they
    themselves use (e.g., if @x//:foo depends on @y//:bar, @y must be
    defined
    in @x's WORKSPACE file).
  - Remote repositories must define any remote repositories they
    themselves use (e.g., if @x//:foo depends on @y//:bar, @y must be
    defined
    in @x's WORKSPACE file).
  - objc_xcodeproj has been removed, use tulsi.bazel.build instead.

New features:

  - If grte_top is a label, it can now follow non-configurable
    redirects.
  - Optional coverage_files attribute to cc_toolchain
  - "query --output=build" now includes select()s
  - Raw LLVM profiles are now supported.

Important changes:

  - Automatically generate Proguard mapping when resource shrinking
    and Proguard are enabled.
  - New rules in Bazel: proto_library, java_lite_proto_library,
    java_proto_library and cc_proto_library
  - Activate the "dead_strip" feature if objc binary stripping is
    enabled.
  - More stable naming scheme for lambda classes in desugared android
    code
  - Convert --use_action_cache to a regular option
  - Per-architecture dSYM binaries are now propagated by
    apple_binary's AppleDebugOutputsProvider.
  - Avoid factory methods when desugaring stateless lambdas for
    Android
  - desugar calls to Objects.requireNonNull(Object o) with
    o.getClass() for android
  - Add an --copy_bridges_from_classpath argument to android
    desugaring tool
  - Change how desugar finds desugared classes to have it working on
    Windows
  - Evaluation of commands on TargetsBelowDirectory patterns
    (e.g. //foo/...) matching packages that fail to load now report
    more
    detailed error messages in keep_going mode.
  - Allow to have several inputs and outputs
  - Repository context's execute() function can print stdout/stderr
    while running. To enable, pass quiet=False.
  - Bazel can now be built with a bundled version of the OpenJDK.
    This makes it possible to use Bazel on systems without a JDK, or
    where
    the installed JDK is too old.
  - The --jobs flag now defaults to "auto", which causes Bazel to
    use a reasonable degree of parallelism based on the local
    machine's
    capacity.
  - Bazel benchmark (perf.bazel.build) supports Java and Cpp targets.
  - no factory methods generated for lambda expressions on android
  - The Linux sandbox no longer changes the user to 'nobody' by
    default, instead the current user is used as is. The old behavior
    can be
    restored via the --sandbox_fake_username flag.
  - /tmp and /dev/shm are now writable by default inside the
    Linux sandbox.
  - Bazel can now use the process-wrapper + symlink tree based
    sandbox implementation in FreeBSD.
  - turn on --experimental_incremental_dexing_error_on_missed_jars by
    default.
  - All android_binarys are now signed with both Apk Signature V1 and
    V2. See https://source.android.com/security/apksigning/v2.html
    for more details.
  - Windows MSVC wrappers: Not filtering warning messages anymore,
    use --copt=-w and --host_copt=-w to suppress them.
  - A downloader bug was fixed that prevented RFC 7233 Range
    connection resumes from working with certain HTTP servers
  - Introduces experimental android_device rule for configuring and
    launching Android emulators.
  - For boolean flags, setting them to false using --no_<flag_name>
    is deprecated. Use --no<flag_name> without the underscore, or
    --<flag_name>=false instead.
  - Add --experimental_android_compress_java_resources flag to store
    java
    resources as compressed inside the APK.
  - Removed --experimental_use_jack_for_dexing and libname.jack
    output of
    android_library.
  - blaze canonicalize-flags now takes a --show_warnings flag
  - Changing --invocation_policy will no longer force a server
    restart.
  - Bazel now supports Android NDK14.
  - android_binary multidex should now work without additional flags.
  - Use action_config in crosstool for static library archiving,
    remove ar_flag.
  - new option for bazel canonicalize-flags, --canonicalize_policy
  - Use action_config in crosstool for static library archiving,
    remove ar_flag.
  - android_library exports_manifest now defaults to True.
  - Fix select condition intersections.
  - Adds a --override_repository option that takes a repository
    name and path. This forces Bazel to use the directory at that path
    for the repository. Example usage:
    `--override_repository=foo=/home/user/gitroot/foo`.
  - fix idempotency issue with desugaring lambdas in interface
    initializers for android
  - --experimental_android_use_singlejar_for_multidex is now a no-op
    and will eventually be removed.
  - Every local_repository now requires a WORKSPACE file.
  - Remove jack and jill attributes of the android_sdk rule.
  - Add Skylark stubs needed to remove sysroot from CppConfiguration.
  - Desugar try-with-resources so that this language feature is
    available
    to deveces with API level under 19.
  - The flag --worker_max_retries was removed. The
    WorkerSpawnStrategy no longer retries execution of failed Spawns,
    the reason being that this just masks compiler bugs and isn't
    done for any other execution strategy either.
  - Bazel will no longer gracefully restart workers that crashed /
    quit, instead this triggers a build failure.
  - All java resources are now compressed in android_binary APKs by
    default.
  - All java resources are now compressed in android_binary APKs by
    default.
  - android_ndk_repository now creates a cc_library
    (@androidndk//:cpufeatures) for the cpufeatures library that is
    bundled in the Android NDK. See
    https://developer.android.com/ndk/guides/cpu-features.html for
    more details.
  - 'output_groups' and 'instrumented_files' cannot be specified in
    DefaultInfo.
  - You can increase the CPU reservation for tests by adding a
    "cpu:<n>" (e.g. "cpu:4" for four cores) tag to their rule in a
    BUILD file. This can be used if tests would otherwise overwhelm
    your system if there's too much parallelism.
  - Deprecate use_singlejar_for_proguard_libraryjars and force
    behavior to always on.
damienmg pushed a commit that referenced this issue May 26, 2017
Closes #2959.
Ping #2692 for cherry-picking into Bazel 0.5.0.

PiperOrigin-RevId: 155357560
juhalindfors pushed a commit to juhalindfors/bazel-patches that referenced this issue May 27, 2017
Baseline: f3ae88e

Cherry picks:
   + c58ba09:
     Release to GCS: put the final release in its own directory
   + 0acead4:
     Update protobuf to latest master at a64497c and apply
     @laszlocsomor's latest changes from
     protocolbuffers/protobuf#2969 on top of it.
   + d0242ce:
     Make symlinks consistent
   + d953ca8:
     Clean VanillaJavaBuilder output directories
   + 755669f:
     Pass all the environment variable to Bazel during bootstrapping
   + 6f04166:
     Do not mark the JDK7 installer -without-jdk-installer
   + 7205611:
     Fix bazelbuild#2958: Installer should not overwrite bazelrc
   + 511c35b:
     Bootstrap: move the fail function to the top
   + 8470be1:
     Clean up javac and Error Prone targets
   + 4a404de:
     Update javac version to 9-dev-r4023-2
   + 36ce4b4:
     Update javac version to 9-dev-r4023-2
   + 38949b8:
     Migrate off versioned javac and Error Prone targets
   + 1a57d29:
     Re-enabling passing -sourcepath via javacopts.
   + eb565f4:
     Make make sure that msys build actually builds msys version
   + 39f328c:
     Fix typo. Also do not override host_cpu for msvc.
   + 6248028:
     Select correct JDK for windows_msys
   + c4f271d:
     Automated g4 rollback of commit
     3e5edaf.
   + 9261809:
     Remove process-tools.cc which I forgot to delete during the last
     rollback.
   + baca6e4:
     Fix bazelbuild#2982: Bazel installer should not check for installed JDK if
     using a bundled JDK.
   + 866ecc8:
     Disable msys path conversion on Windows.
   + cc21998:
     Rollforward bazelbuild#2 of: Basic open-source crosstool to support
     targeting apple platform types.
   + 0f0ccc4:
     Escape % in strings that will appear in Crosstool
   + 3b08f77:
     Adding feature for linking C Run-Time library on Windows

Incompatible changes:

  - Bazel's Linux sandbox no longer mounts an empty tmpfs on /tmp,
    instead the existing /tmp is mounted read-write. If you prefer
    to have a tmpfs on /tmp for sandboxed actions for increased
    hermeticity, please use the flag --sandbox_tmpfs_path=/tmp.
  - Converting artifacts to strings and printing them now return
    "File" instead of "Artifact" to be consistent with the type name.
  - The return type of depset.to_list() is now a list rather than a
    frozen list. (Modifying the list has no effect on the depset.)
  - Bazel now prints logs in single lines to java.log
  - --use_dash, --dash_url and --dash_secret are removed.
  - Remote repositories must define any remote repositories they
    themselves use (e.g., if @x//:foo depends on @y//:bar, @y must be
    defined
    in @x's WORKSPACE file).
  - Remote repositories must define any remote repositories they
    themselves use (e.g., if @x//:foo depends on @y//:bar, @y must be
    defined
    in @x's WORKSPACE file).
  - objc_xcodeproj has been removed, use tulsi.bazel.build instead.

New features:

  - If grte_top is a label, it can now follow non-configurable
    redirects.
  - Optional coverage_files attribute to cc_toolchain
  - "query --output=build" now includes select()s
  - Raw LLVM profiles are now supported.

Important changes:

  - Automatically generate Proguard mapping when resource shrinking
    and Proguard are enabled.
  - New rules in Bazel: proto_library, java_lite_proto_library,
    java_proto_library and cc_proto_library
  - Activate the "dead_strip" feature if objc binary stripping is
    enabled.
  - More stable naming scheme for lambda classes in desugared android
    code
  - Convert --use_action_cache to a regular option
  - Per-architecture dSYM binaries are now propagated by
    apple_binary's AppleDebugOutputsProvider.
  - Avoid factory methods when desugaring stateless lambdas for
    Android
  - desugar calls to Objects.requireNonNull(Object o) with
    o.getClass() for android
  - Add an --copy_bridges_from_classpath argument to android
    desugaring tool
  - Change how desugar finds desugared classes to have it working on
    Windows
  - Evaluation of commands on TargetsBelowDirectory patterns
    (e.g. //foo/...) matching packages that fail to load now report
    more
    detailed error messages in keep_going mode.
  - Allow to have several inputs and outputs
  - Repository context's execute() function can print stdout/stderr
    while running. To enable, pass quiet=False.
  - Bazel can now be built with a bundled version of the OpenJDK.
    This makes it possible to use Bazel on systems without a JDK, or
    where
    the installed JDK is too old.
  - The --jobs flag now defaults to "auto", which causes Bazel to
    use a reasonable degree of parallelism based on the local
    machine's
    capacity.
  - Bazel benchmark (perf.bazel.build) supports Java and Cpp targets.
  - no factory methods generated for lambda expressions on android
  - The Linux sandbox no longer changes the user to 'nobody' by
    default, instead the current user is used as is. The old behavior
    can be
    restored via the --sandbox_fake_username flag.
  - /tmp and /dev/shm are now writable by default inside the
    Linux sandbox.
  - Bazel can now use the process-wrapper + symlink tree based
    sandbox implementation in FreeBSD.
  - turn on --experimental_incremental_dexing_error_on_missed_jars by
    default.
  - All android_binarys are now signed with both Apk Signature V1 and
    V2. See https://source.android.com/security/apksigning/v2.html
    for more details.
  - Windows MSVC wrappers: Not filtering warning messages anymore,
    use --copt=-w and --host_copt=-w to suppress them.
  - A downloader bug was fixed that prevented RFC 7233 Range
    connection resumes from working with certain HTTP servers
  - Introduces experimental android_device rule for configuring and
    launching Android emulators.
  - For boolean flags, setting them to false using --no_<flag_name>
    is deprecated. Use --no<flag_name> without the underscore, or
    --<flag_name>=false instead.
  - Add --experimental_android_compress_java_resources flag to store
    java
    resources as compressed inside the APK.
  - Removed --experimental_use_jack_for_dexing and libname.jack
    output of
    android_library.
  - blaze canonicalize-flags now takes a --show_warnings flag
  - Changing --invocation_policy will no longer force a server
    restart.
  - Bazel now supports Android NDK14.
  - android_binary multidex should now work without additional flags.
  - Use action_config in crosstool for static library archiving,
    remove ar_flag.
  - new option for bazel canonicalize-flags, --canonicalize_policy
  - Use action_config in crosstool for static library archiving,
    remove ar_flag.
  - android_library exports_manifest now defaults to True.
  - Fix select condition intersections.
  - Adds a --override_repository option that takes a repository
    name and path. This forces Bazel to use the directory at that path
    for the repository. Example usage:
    `--override_repository=foo=/home/user/gitroot/foo`.
  - fix idempotency issue with desugaring lambdas in interface
    initializers for android
  - --experimental_android_use_singlejar_for_multidex is now a no-op
    and will eventually be removed.
  - Every local_repository now requires a WORKSPACE file.
  - Remove jack and jill attributes of the android_sdk rule.
  - Add Skylark stubs needed to remove sysroot from CppConfiguration.
  - Desugar try-with-resources so that this language feature is
    available
    to deveces with API level under 19.
  - The flag --worker_max_retries was removed. The
    WorkerSpawnStrategy no longer retries execution of failed Spawns,
    the reason being that this just masks compiler bugs and isn't
    done for any other execution strategy either.
  - Bazel will no longer gracefully restart workers that crashed /
    quit, instead this triggers a build failure.
  - All java resources are now compressed in android_binary APKs by
    default.
  - All java resources are now compressed in android_binary APKs by
    default.
  - android_ndk_repository now creates a cc_library
    (@androidndk//:cpufeatures) for the cpufeatures library that is
    bundled in the Android NDK. See
    https://developer.android.com/ndk/guides/cpu-features.html for
    more details.
  - 'output_groups' and 'instrumented_files' cannot be specified in
    DefaultInfo.
  - You can increase the CPU reservation for tests by adding a
    "cpu:<n>" (e.g. "cpu:4" for four cores) tag to their rule in a
    BUILD file. This can be used if tests would otherwise overwhelm
    your system if there's too much parallelism.
  - Deprecate use_singlejar_for_proguard_libraryjars and force
    behavior to always on.
hlopko pushed a commit that referenced this issue May 31, 2017
Closes #2959.
Ping #2692 for cherry-picking into Bazel 0.5.0.

PiperOrigin-RevId: 155357560
bazel-io pushed a commit that referenced this issue Jun 6, 2017
Baseline: f3ae88e

Cherry picks:
   + c58ba09:
     Release to GCS: put the final release in its own directory
   + 0acead4:
     Update protobuf to latest master at a64497c and apply
     @laszlocsomor's latest changes from
     protocolbuffers/protobuf#2969 on top of it.
   + d0242ce:
     Make symlinks consistent
   + d953ca8:
     Clean VanillaJavaBuilder output directories
   + 755669f:
     Pass all the environment variable to Bazel during bootstrapping
   + 6f04166:
     Do not mark the JDK7 installer -without-jdk-installer
   + 7205611:
     Fix #2958: Installer should not overwrite bazelrc
   + 511c35b:
     Bootstrap: move the fail function to the top
   + 8470be1:
     Clean up javac and Error Prone targets
   + 4a404de:
     Update javac version to 9-dev-r4023-2
   + 36ce4b4:
     Update javac version to 9-dev-r4023-2
   + 38949b8:
     Migrate off versioned javac and Error Prone targets
   + 1a57d29:
     Re-enabling passing -sourcepath via javacopts.
   + eb565f4:
     Make make sure that msys build actually builds msys version
   + 39f328c:
     Fix typo. Also do not override host_cpu for msvc.
   + 6248028:
     Select correct JDK for windows_msys
   + c4f271d:
     Automated g4 rollback of commit
     3e5edaf.
   + 9261809:
     Remove process-tools.cc which I forgot to delete during the last
     rollback.
   + baca6e4:
     Fix #2982: Bazel installer should not check for installed JDK if
     using a bundled JDK.
   + 866ecc8:
     Disable msys path conversion on Windows.
   + cc21998:
     Rollforward #2 of: Basic open-source crosstool to support
     targeting apple platform types.
   + 0f0ccc4:
     Escape % in strings that will appear in Crosstool
   + 3b08f77:
     Adding feature for linking C Run-Time library on Windows
   + 3566474:
     Do not use sed -E in bootstrap/compile.sh
   + c3cf7d9:
     Reverts non-xcode-available darwin crosstool generation.

Important changes:

  - Fixes regression in 0.5.0 requiring Xcode to build C++ on OSX.
mmorearty pushed a commit to Asana/bazel that referenced this issue Jun 6, 2017
Baseline: f3ae88e

Cherry picks:
   + c58ba09:
     Release to GCS: put the final release in its own directory
   + 0acead4:
     Update protobuf to latest master at a64497c and apply
     @laszlocsomor's latest changes from
     protocolbuffers/protobuf#2969 on top of it.
   + d0242ce:
     Make symlinks consistent
   + d953ca8:
     Clean VanillaJavaBuilder output directories
   + 755669f:
     Pass all the environment variable to Bazel during bootstrapping
   + 6f04166:
     Do not mark the JDK7 installer -without-jdk-installer
   + 7205611:
     Fix bazelbuild#2958: Installer should not overwrite bazelrc
   + 511c35b:
     Bootstrap: move the fail function to the top
   + 8470be1:
     Clean up javac and Error Prone targets
   + 4a404de:
     Update javac version to 9-dev-r4023-2
   + 36ce4b4:
     Update javac version to 9-dev-r4023-2
   + 38949b8:
     Migrate off versioned javac and Error Prone targets
   + 1a57d29:
     Re-enabling passing -sourcepath via javacopts.
   + eb565f4:
     Make make sure that msys build actually builds msys version
   + 39f328c:
     Fix typo. Also do not override host_cpu for msvc.
   + 6248028:
     Select correct JDK for windows_msys
   + c4f271d:
     Automated g4 rollback of commit
     3e5edaf.
   + 9261809:
     Remove process-tools.cc which I forgot to delete during the last
     rollback.
   + baca6e4:
     Fix bazelbuild#2982: Bazel installer should not check for installed JDK if
     using a bundled JDK.
   + 866ecc8:
     Disable msys path conversion on Windows.
   + cc21998:
     Rollforward #2 of: Basic open-source crosstool to support
     targeting apple platform types.
   + 0f0ccc4:
     Escape % in strings that will appear in Crosstool
   + 3b08f77:
     Adding feature for linking C Run-Time library on Windows
   + 3566474:
     Do not use sed -E in bootstrap/compile.sh
   + c3cf7d9:
     Reverts non-xcode-available darwin crosstool generation.

Important changes:

  - Fixes regression in 0.5.0 requiring Xcode to build C++ on OSX.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P2 We'll consider working on this in future. (Assignee optional)
Projects
None yet
Development

No branches or pull requests

3 participants