-
Notifications
You must be signed in to change notification settings - Fork 551
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
feat(gazelle): Add directives for label format & normalisation #1976
Conversation
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
gazelle/python/testdata/directive_python_label_convention/test1_unset/gazelle_python.yaml
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, only the snake_case
to be modified to be more like pep503 left.
gazelle/pythonconfig/pythonconfig.go
Outdated
normConventionalDistributionName = strings.ToLower(conventionalDistributionName) | ||
normConventionalDistributionName = strings.ReplaceAll(normConventionalDistributionName, "-", "_") | ||
normConventionalDistributionName = strings.ReplaceAll(normConventionalDistributionName, ".", "_") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we also need to replace any occurrences of __
to _
. This is done in our starlark code, so it is essentially the same as pep503
but with _
, so doing the same regex as below would be ideal.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This piece was moved exactly from SanitizeDistribution
to make sure nothing breaks existing behaviour. Could you please point to the Starlark code you had in mind?
I found this, and what my internal 🧠 interpreter tells me it escapes char by char, so distribution----with--dashes
becomes distribution____with__dashes
, not distribution_with_dashes
(which Gazelle will expect if I updated this convention to replace "[-_.]+"
with _
similarly to what pep503
does).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The rules_python//python/private:normalize_name.bzl is the code that I had in mind.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you. I updated the code and actually found extra corner case where normalize_name.bz
behaves differently than SnakeCaseLabelNormalizationType
and the old code: prefix/trailing dashes. This has been fixed, the mapping updated, more tests based on normalize_name.bzl
in/outs added.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [rules_python](https://togithub.com/bazelbuild/rules_python) | http_archive | minor | `0.33.2` -> `0.34.0` | --- ### Release Notes <details> <summary>bazelbuild/rules_python (rules_python)</summary> ### [`v0.34.0`](https://togithub.com/bazelbuild/rules_python/releases/tag/0.34.0) [Compare Source](https://togithub.com/bazelbuild/rules_python/compare/0.33.2...0.34.0) #### Using Bzlmod with Bazel 6 **NOTE: bzlmod support is still beta. APIs subject to change.** Add to your `MODULE.bazel` file: ```starlark bazel_dep(name = "rules_python", version = "0.34.0") pip = use_extension("@​rules_python//python/extensions:pip.bzl", "pip") pip.parse( hub_name = "pip", python_version = "3.11", requirements_lock = "//:requirements_lock.txt", ) use_repo(pip, "pip") ``` #### Using WORKSPACE Paste this snippet into your `WORKSPACE` file: ```starlark load("@​bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "rules_python", sha256 = "778aaeab3e6cfd56d681c89f5c10d7ad6bf8d2f1a72de9de55b23081b2d31618", strip_prefix = "rules_python-0.34.0", url = "https://github.com/bazelbuild/rules_python/releases/download/0.34.0/rules_python-0.34.0.tar.gz", ) load("@​rules_python//python:repositories.bzl", "py_repositories") py_repositories() ``` ##### Gazelle plugin Paste this snippet into your `WORKSPACE` file: ```starlark load("@​bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "rules_python_gazelle_plugin", sha256 = "778aaeab3e6cfd56d681c89f5c10d7ad6bf8d2f1a72de9de55b23081b2d31618", strip_prefix = "rules_python-0.34.0/gazelle", url = "https://github.com/bazelbuild/rules_python/releases/download/0.34.0/rules_python-0.34.0.tar.gz", ) ### To compile the rules_python gazelle extension from source, ### we must fetch some third-party go dependencies that it uses. load("@​rules_python_gazelle_plugin//:deps.bzl", _py_gazelle_deps = "gazelle_deps") _py_gazelle_deps() ``` #### What's Changed - fix: Remove transitive legacy struct provider usage by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_python/pull/1957](https://togithub.com/bazelbuild/rules_python/pull/1957) - docs: fix doc for how to use new bootstrap impl by [@​rickeylev](https://togithub.com/rickeylev) in [https://github.com/bazelbuild/rules_python/pull/1959](https://togithub.com/bazelbuild/rules_python/pull/1959) - chore: various cleanups to make google imports/patching easier by [@​rickeylev](https://togithub.com/rickeylev) in [https://github.com/bazelbuild/rules_python/pull/1958](https://togithub.com/bazelbuild/rules_python/pull/1958) - build(deps): bump idna from 3.4 to 3.7 in /tools/publish by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/bazelbuild/rules_python/pull/1849](https://togithub.com/bazelbuild/rules_python/pull/1849) - build(deps): bump cryptography from 41.0.6 to 42.0.4 in /tools/publish by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/bazelbuild/rules_python/pull/1772](https://togithub.com/bazelbuild/rules_python/pull/1772) - ci: add a custom dependabot file by [@​aignas](https://togithub.com/aignas) in [https://github.com/bazelbuild/rules_python/pull/1960](https://togithub.com/bazelbuild/rules_python/pull/1960) - build(deps): bump pygments from 2.17.2 to 2.18.0 in /docs/sphinx by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/bazelbuild/rules_python/pull/1966](https://togithub.com/bazelbuild/rules_python/pull/1966) - build(deps): bump actions/checkout from 2 to 4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/bazelbuild/rules_python/pull/1961](https://togithub.com/bazelbuild/rules_python/pull/1961) - build(deps): bump actions/stale from 3 to 9 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/bazelbuild/rules_python/pull/1962](https://togithub.com/bazelbuild/rules_python/pull/1962) - build(deps): bump markupsafe from 2.1.3 to 2.1.5 in /docs/sphinx by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/bazelbuild/rules_python/pull/1964](https://togithub.com/bazelbuild/rules_python/pull/1964) - build(deps): bump softprops/action-gh-release from 1 to 2 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/bazelbuild/rules_python/pull/1963](https://togithub.com/bazelbuild/rules_python/pull/1963) - build(deps): bump typing-extensions from 4.9.0 to 4.12.2 in /docs/sphinx by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/bazelbuild/rules_python/pull/1965](https://togithub.com/bazelbuild/rules_python/pull/1965) - fix(bzlmod): use same target in requirement('foo') and all_requirements by [@​jvolkman](https://togithub.com/jvolkman) in [https://github.com/bazelbuild/rules_python/pull/1973](https://togithub.com/bazelbuild/rules_python/pull/1973) - refactor(bzlmod): generate fewer targets for pip_config_settings by [@​aignas](https://togithub.com/aignas) in [https://github.com/bazelbuild/rules_python/pull/1974](https://togithub.com/bazelbuild/rules_python/pull/1974) - chore: access ctx.version_file to inform Bazel stamping info is needed by [@​rickeylev](https://togithub.com/rickeylev) in [https://github.com/bazelbuild/rules_python/pull/1952](https://togithub.com/bazelbuild/rules_python/pull/1952) - build(deps): bump urllib3 from 1.26.18 to 1.26.19 in /tools/publish by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/bazelbuild/rules_python/pull/1981](https://togithub.com/bazelbuild/rules_python/pull/1981) - build(deps): bump babel from 2.13.1 to 2.15.0 in /docs/sphinx by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/bazelbuild/rules_python/pull/1983](https://togithub.com/bazelbuild/rules_python/pull/1983) - docs: Fix a few typos in docs and function names by [@​rickeylev](https://togithub.com/rickeylev) in [https://github.com/bazelbuild/rules_python/pull/1978](https://togithub.com/bazelbuild/rules_python/pull/1978) - fix: enable auto exec groups using attribute by [@​rickeylev](https://togithub.com/rickeylev) in [https://github.com/bazelbuild/rules_python/pull/1986](https://togithub.com/bazelbuild/rules_python/pull/1986) - docs: Remove proposals by [@​groodt](https://togithub.com/groodt) in [https://github.com/bazelbuild/rules_python/pull/1990](https://togithub.com/bazelbuild/rules_python/pull/1990) - chore: use `**` globs instead of explcit BUILD.bazel reference in distribution filegroups by [@​rickeylev](https://togithub.com/rickeylev) in [https://github.com/bazelbuild/rules_python/pull/1991](https://togithub.com/bazelbuild/rules_python/pull/1991) - refactor(internal): allow setting linking mode for internal cc_details APIs by [@​rickeylev](https://togithub.com/rickeylev) in [https://github.com/bazelbuild/rules_python/pull/1982](https://togithub.com/bazelbuild/rules_python/pull/1982) - fix(toolchain): disable exec toolchain by default by [@​aignas](https://togithub.com/aignas) in [https://github.com/bazelbuild/rules_python/pull/1968](https://togithub.com/bazelbuild/rules_python/pull/1968) - fix: Resolve the test manifest with the runfiles lib. by [@​lberki](https://togithub.com/lberki) in [https://github.com/bazelbuild/rules_python/pull/1993](https://togithub.com/bazelbuild/rules_python/pull/1993) - fix: allow creating PyRuntimeInfo without specifying interpreter_version_info by [@​rickeylev](https://togithub.com/rickeylev) in [https://github.com/bazelbuild/rules_python/pull/1992](https://togithub.com/bazelbuild/rules_python/pull/1992) - doc: Changelog updates for 0.33.2 by [@​aignas](https://togithub.com/aignas) in [https://github.com/bazelbuild/rules_python/pull/1995](https://togithub.com/bazelbuild/rules_python/pull/1995) - refactor!: Remove entrypoint by [@​groodt](https://togithub.com/groodt) in [https://github.com/bazelbuild/rules_python/pull/1987](https://togithub.com/bazelbuild/rules_python/pull/1987) - refactor: lookup exec interpreter using toolchain resolution by [@​rickeylev](https://togithub.com/rickeylev) in [https://github.com/bazelbuild/rules_python/pull/1997](https://togithub.com/bazelbuild/rules_python/pull/1997) - fix: Add `configure=True` for internal_config_repo by [@​meteorcloudy](https://togithub.com/meteorcloudy) in [https://github.com/bazelbuild/rules_python/pull/1998](https://togithub.com/bazelbuild/rules_python/pull/1998) - chore: remove dead code from whl_target_platforms by [@​aignas](https://togithub.com/aignas) in [https://github.com/bazelbuild/rules_python/pull/2001](https://togithub.com/bazelbuild/rules_python/pull/2001) - fix(bzlmod): pass only non-default values to whl_library by [@​aignas](https://togithub.com/aignas) in [https://github.com/bazelbuild/rules_python/pull/2002](https://togithub.com/bazelbuild/rules_python/pull/2002) - refactor: move PyPI related extension and repository_rule setup to its own dir by [@​aignas](https://togithub.com/aignas) in [https://github.com/bazelbuild/rules_python/pull/2003](https://togithub.com/bazelbuild/rules_python/pull/2003) - docs: Removes dead link after docs were migrated to sphinx by [@​groodt](https://togithub.com/groodt) in [https://github.com/bazelbuild/rules_python/pull/2005](https://togithub.com/bazelbuild/rules_python/pull/2005) - refactor: Remove unused template substitution by [@​groodt](https://togithub.com/groodt) in [https://github.com/bazelbuild/rules_python/pull/2004](https://togithub.com/bazelbuild/rules_python/pull/2004) - refactor: move the remaining PyPI related functions to private/pypi by [@​aignas](https://togithub.com/aignas) in [https://github.com/bazelbuild/rules_python/pull/2006](https://togithub.com/bazelbuild/rules_python/pull/2006) - chore: adjust CODEOWNERS by [@​aignas](https://togithub.com/aignas) in [https://github.com/bazelbuild/rules_python/pull/2008](https://togithub.com/bazelbuild/rules_python/pull/2008) - fix: make first default output the executable again by [@​rickeylev](https://togithub.com/rickeylev) in [https://github.com/bazelbuild/rules_python/pull/2010](https://togithub.com/bazelbuild/rules_python/pull/2010) - refactor: call a function to define internal pypi flags instead of listcomp by [@​rickeylev](https://togithub.com/rickeylev) in [https://github.com/bazelbuild/rules_python/pull/2011](https://togithub.com/bazelbuild/rules_python/pull/2011) - chore: bump sphinxdocs deps by [@​aignas](https://togithub.com/aignas) in [https://github.com/bazelbuild/rules_python/pull/2013](https://togithub.com/bazelbuild/rules_python/pull/2013) - fix(whl_library): correctly handle arch-specific deps in wheels by [@​aignas](https://togithub.com/aignas) in [https://github.com/bazelbuild/rules_python/pull/2007](https://togithub.com/bazelbuild/rules_python/pull/2007) - fix(multiplatform): Add i386 Linux support by [@​nicbadiu](https://togithub.com/nicbadiu) in [https://github.com/bazelbuild/rules_python/pull/1999](https://togithub.com/bazelbuild/rules_python/pull/1999) - fix: Fix broken logger statement in parse_requirements.bzl by [@​mark-thm](https://togithub.com/mark-thm) in [https://github.com/bazelbuild/rules_python/pull/2017](https://togithub.com/bazelbuild/rules_python/pull/2017) - feat: add runtime_env toolchain suite to replace "autodetecting" toolchain by [@​rickeylev](https://togithub.com/rickeylev) in [https://github.com/bazelbuild/rules_python/pull/2018](https://togithub.com/bazelbuild/rules_python/pull/2018) - fix(bzlmod): only expose common packages via the requirements constants by [@​aignas](https://togithub.com/aignas) in [https://github.com/bazelbuild/rules_python/pull/1955](https://togithub.com/bazelbuild/rules_python/pull/1955) - feat(gazelle): Add directives for label format & normalisation by [@​wingsofovnia](https://togithub.com/wingsofovnia) in [https://github.com/bazelbuild/rules_python/pull/1976](https://togithub.com/bazelbuild/rules_python/pull/1976) - chore: Remove unused renovate.json by [@​groodt](https://togithub.com/groodt) in [https://github.com/bazelbuild/rules_python/pull/2021](https://togithub.com/bazelbuild/rules_python/pull/2021) - (chore): Remove the extra indirection and `bzlmod` folder by [@​groodt](https://togithub.com/groodt) in [https://github.com/bazelbuild/rules_python/pull/2022](https://togithub.com/bazelbuild/rules_python/pull/2022) #### New Contributors - [@​lberki](https://togithub.com/lberki) made their first contribution in [https://github.com/bazelbuild/rules_python/pull/1993](https://togithub.com/bazelbuild/rules_python/pull/1993) - [@​nicbadiu](https://togithub.com/nicbadiu) made their first contribution in [https://github.com/bazelbuild/rules_python/pull/1999](https://togithub.com/bazelbuild/rules_python/pull/1999) - [@​mark-thm](https://togithub.com/mark-thm) made their first contribution in [https://github.com/bazelbuild/rules_python/pull/2017](https://togithub.com/bazelbuild/rules_python/pull/2017) - [@​wingsofovnia](https://togithub.com/wingsofovnia) made their first contribution in [https://github.com/bazelbuild/rules_python/pull/1976](https://togithub.com/bazelbuild/rules_python/pull/1976) **Full Changelog**: bazelbuild/rules_python@0.33.1...0.34.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/bazel-contrib/rules_bazel_integration_test). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjEuOSIsInVwZGF0ZWRJblZlciI6IjM3LjQyMS45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Adds new directives to alter default Gazelle label format to third-party dependencies useful for re-using Gazelle plugin with other rules, including
rules_pycross
.Fixes #1939