From d2cf1cc2bcd1e879743faf5216c4887b994705af Mon Sep 17 00:00:00 2001 From: Thomas Van Lenten Date: Mon, 22 Jul 2019 13:25:00 -0400 Subject: [PATCH 1/2] `print`->`fail` and suppress the warning in another case. (#177) --- lib.bzl | 35 +++-------------------------------- lib/unittest.bzl | 2 ++ lib/versions.bzl | 3 +-- skylark_library.bzl | 15 +++------------ 4 files changed, 9 insertions(+), 46 deletions(-) diff --git a/lib.bzl b/lib.bzl index 9cffa0e..268cd6b 100644 --- a/lib.bzl +++ b/lib.bzl @@ -14,36 +14,7 @@ """Index from which multiple modules can be loaded.""" -load("//lib:collections.bzl", _collections = "collections") -load("//lib:dicts.bzl", _dicts = "dicts") -load("//lib:new_sets.bzl", _new_sets = "sets") -load("//lib:partial.bzl", _partial = "partial") -load("//lib:paths.bzl", _paths = "paths") -load("//lib:selects.bzl", _selects = "selects") -load("//lib:sets.bzl", _sets = "sets") -load("//lib:shell.bzl", _shell = "shell") -load("//lib:structs.bzl", _structs = "structs") -load("//lib:types.bzl", _types = "types") -load("//lib:unittest.bzl", _asserts = "asserts", _unittest = "unittest") -load("//lib:versions.bzl", _versions = "versions") - -print( - "WARNING: lib.bzl is deprecated and will go away in the future, please" + - " directly load the bzl file(s) of the module(s) needed as it is more" + - " efficient.", +fail( + "lib.bzl has been removed, please directly load the bzl file(s) of the" + + " module(s) needed as it is more efficient.", ) - -collections = _collections -dicts = _dicts -new_sets = _new_sets -partial = _partial -paths = _paths -selects = _selects -sets = _sets -shell = _shell -structs = _structs -types = _types -versions = _versions - -asserts = _asserts -unittest = _unittest diff --git a/lib/unittest.bzl b/lib/unittest.bzl index 85f12e3..d88a9ee 100644 --- a/lib/unittest.bzl +++ b/lib/unittest.bzl @@ -335,6 +335,8 @@ def _fail(env, msg): msg: The message to log describing the failure. """ full_msg = "In test %s: %s" % (env.ctx.attr._impl_name, msg) + # There isn't a better way to output the message in Starlark, so use print. + # buildifier: disable=print print(full_msg) env.failures.append(full_msg) diff --git a/lib/versions.bzl b/lib/versions.bzl index f5a3066..0209a6f 100644 --- a/lib/versions.bzl +++ b/lib/versions.bzl @@ -93,8 +93,7 @@ def _check_bazel_version(minimum_bazel_version, maximum_bazel_version = None, ba minimum_bazel_version, )) elif not native.bazel_version: - print("Current Bazel is not a release version; cannot check for compatibility. " + - "Make sure that you are running at least Bazel {}.".format(minimum_bazel_version)) + # Using a non-release version, assume it is good. return else: bazel_version = native.bazel_version diff --git a/skylark_library.bzl b/skylark_library.bzl index 74025df..40e8bba 100644 --- a/skylark_library.bzl +++ b/skylark_library.bzl @@ -14,19 +14,10 @@ """Skylib module containing a library rule for aggregating rules files. -Deprecated: +Removed: Use bzl_library in bzl_library.bzl instead. """ -load("//:bzl_library.bzl", "StarlarkLibraryInfo", "bzl_library") - -print( - "WARNING: skylark_library.bzl is deprecated and will go away in the future, please" + - " use bzl_library.bzl instead.", +fail( + "skylark_library.bzl has been removed, please use bzl_library.bzl instead.", ) - -# These are temporary forwarding macros to facilitate migration to -# the new names for these objects. -SkylarkLibraryInfo = StarlarkLibraryInfo - -skylark_library = bzl_library From f130d7c388e6beeb77309ba4e421c8f783b91739 Mon Sep 17 00:00:00 2001 From: Florian Weikert Date: Tue, 13 Aug 2019 21:28:45 +0200 Subject: [PATCH 2/2] Comply with the standards of the Bazel federation (#182) * Comply with the standards of the Bazel federation This commit allows bazel_skylib to be a member of the Bazel federation, since it adds the required bzl files related to setup and dependencies. Moreover, it also changes the WORKSPACE to fetch all dependencies through the federation. * Add copyright and docstring to bzl files --- WORKSPACE | 30 +++++++++++++++++++----------- internal_deps.bzl | 21 +++++++++++++++++++++ internal_setup.bzl | 18 ++++++++++++++++++ 3 files changed, 58 insertions(+), 11 deletions(-) create mode 100644 internal_deps.bzl create mode 100644 internal_setup.bzl diff --git a/WORKSPACE b/WORKSPACE index 89c82a8..16344d4 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -1,22 +1,30 @@ workspace(name = "bazel_skylib") -load(":workspace.bzl", "bazel_skylib_workspace") +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +http_archive( + name = "bazel_federation", + url = "https://github.com/bazelbuild/bazel-federation/archive/130c84ec6d60f31b711400e8445a8d0d4a2b5de8.zip", + sha256 = "9d4fdf7cc533af0b50f7dd8e58bea85df3b4454b7ae00056d7090eb98e3515cc", + strip_prefix = "bazel-federation-130c84ec6d60f31b711400e8445a8d0d4a2b5de8", + type = "zip", +) -bazel_skylib_workspace() +load("@bazel_federation//:repositories.bzl", "bazel_skylib_deps") + +bazel_skylib_deps() + +load("@bazel_federation//setup:bazel_skylib.bzl", "bazel_skylib_setup") + +bazel_skylib_setup() # Below this line is for documentation generation only, # and should thus not be included by dependencies on # bazel-skylib. -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("//:internal_deps.bzl", "bazel_skylib_internal_deps") -http_archive( - name = "io_bazel_skydoc", - url = "https://github.com/bazelbuild/skydoc/archive/0.3.0.tar.gz", - sha256 = "c2d66a0cc7e25d857e480409a8004fdf09072a1bd564d6824441ab2f96448eea", - strip_prefix = "skydoc-0.3.0", -) +bazel_skylib_internal_deps() -load("@io_bazel_skydoc//skylark:skylark.bzl", "skydoc_repositories") +load("//:internal_setup.bzl", "bazel_skylib_internal_setup") -skydoc_repositories() +bazel_skylib_internal_setup() diff --git a/internal_deps.bzl b/internal_deps.bzl new file mode 100644 index 0000000..5db0890 --- /dev/null +++ b/internal_deps.bzl @@ -0,0 +1,21 @@ +# Copyright 2019 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Dependencies that are needed for running skylib tests.""" + +load("@bazel_federation//:repositories.bzl", "bazel", "bazel_stardoc") + +def bazel_skylib_internal_deps(): + bazel() + bazel_stardoc() diff --git a/internal_setup.bzl b/internal_setup.bzl new file mode 100644 index 0000000..f79edd8 --- /dev/null +++ b/internal_setup.bzl @@ -0,0 +1,18 @@ +# Copyright 2019 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Setup function that must be invoked before running skylib tests.""" + +def bazel_skylib_internal_setup(): + pass # placeholder function for the federation