bazel-contrib / SIG-rules-authors

Governance and admin for the rules authors Special Interest Group
https://bazel-contrib.github.io/SIG-rules-authors/
Apache License 2.0
28 stars 12 forks source link

Host bazel-lib #99

Open alexeagle opened 1 month ago

alexeagle commented 1 month ago

This issue follows the process at https://bazel-contrib.github.io/SIG-rules-authors/hosting-policy.html#adding-a-repo

As a consequence of https://github.com/orgs/bazelbuild/discussions/3, Aspect would like to donate https://github.com/aspect-build/bazel-lib to the Linux Foundation under the bazel-contrib GH org.

  1. Apache-2.0 license
  2. Wide applicability: has 38 dependents on registry.bazel.build
  3. Clear POC: @kormide and @fmeum with devrel help from @alexeagle
  4. Production quality: is a 2.0 release, has several years of stability. Good documentation and testing.
  5. Reply to issues/PRs in 2-3weeks: yes we will make this our goal
  6. More than one person in CODEOWNERS
  7. Follows semver carefully (as a low-level library it's consequential)
  8. Tests with Bazel 6, 7, and rolling, will continue to support LTS
  9. Published to https://registry.bazel.build/modules/aspect_bazel_lib

As part of the donation, we expect to move the repository to bazel-contrib/bazel-lib. This means that github-generated archives will remain stable, even as they redirect to existing releases. (The archive is sensitive to the repo name but not the org).

We also expect to rename the module from aspect_bazel_lib to bazel_lib to make it vendor-neutral. This poses a larger migration challenge. Users can be instructed how to use_repo, but we'll need to ensure that transitive deps work correctly. We also need to deal with toolchain_type symbols which are referenced by label.

Two changes may be considered by the maintainers following the move:

  1. The aspect_bazel_lib module currently depends on bazel_skylib, as it was intended to augment the "Bazel standard library" rather than supplant it. Now that skylib is effectively "read-only" to the community, it may be desirable to port the remaining APIs from bazel_skylib so that it becomes a full replacement, and drop any dependency on bazel_skylib.
  2. bazel-lib could also gain a "compatibility layer" such that users can keep load() statements which refer to @bazel_skylib but redirect the repository/module to bazel-lib, e.g with repo_name or --override_repository.
Wyverald commented 1 month ago

I wonder if contrib_bazel_lib would be a better name for the module, similar to contrib_rules_jvm.

cgrindel commented 3 weeks ago

This was approved at the Bazel Rules Author SIG meeting on 2024-08-20.