)]}'
{
  "commit": "9818a60e687956dca60b0e1884b217ef6a1d1821",
  "tree": "b3116ce95f8ebf19d088f3e2cc761c7f44c02058",
  "parents": [
    "c32d2320d98f5b7633238bfee0c466eab5e703f3"
  ],
  "author": {
    "name": "Ignas Anikevicius",
    "email": "anikevicius@gmail.com",
    "time": "Sat Aug 26 05:34:23 2023 +0900"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Aug 25 20:34:23 2023 +0000"
  },
  "message": "feat(py_console_script_binary)!: entry points with custom dependencies (#1363)\n\nAdd `py_console_script_binary`, a macro/rule that allows better\ncustomization of how\nentry points are generated. Notable features of it are:\n* It allows passing in additional dependencies, which makes it easier\nfor plugin\n    dependencies to be added to tools such as pylint or sphinx.\n* The underlying `py_binary` rule can be passed in, allowing custom\nrules,\nsuch as the version-aware rules, to be used for the resulting binary.\n* Entry point generation is based upon a wheel\u0027s `entry_points.txt`\nfile. This helps\navoid loading external repositories unless they\u0027re actually used, allows\nentry\npoints to have better version-aware support, and allows bzlmod to\nprovide a\n    supportable mechanism for entry points.\n\nBecause the expected common use case is an entry point for our pip\ngenerated repos,\nthere is special logic to make that easy and concisely do. Usage of\n`py_console_script_binary` is not tied to our pip code generation,\nthough, and users can\nmanually specify dependencies if they need to.\n\nBREAKING CHANGE: This is a breaking change, but only for bzlmod users.\nNote that\nbzlmod support is still beta. Bzlmod users will need to replace using\n`entry_point`\nfrom `requirements.bzl` with loading `py_console_script_binary` and\ndefining the\nentry point locally:\n\n```\nload(\"@rules_python//python/entry_points:py_console_script_binary.bzl, \"py_console_script_binary\")\n\npy_console_script_binary(name\u003d\"foo\", pkg\u003d\"@mypip//pylint\")\n```\n\nFor workspace users, this new macro is available to be used, but the old\ncode is still\npresent.\n\nFixes #1362\nFixes #543\nFixes #979\nFixes #1262\nCloses #980\nCloses #1294\nCloses #1055\n\n---------\n\nCo-authored-by: Richard Levasseur \u003crichardlev@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3a5497a071fefe724183350941c655ea74d64e03",
      "old_mode": 33188,
      "old_path": ".bazelrc",
      "new_id": "39b28d12e6315f9f996e4ac6a21eff5d0b341aed",
      "new_mode": 33188,
      "new_path": ".bazelrc"
    },
    {
      "type": "modify",
      "old_id": "bc868127072c78f3e5cb9a313455700353029c96",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "9e7b6853f5f72d73d540266852ae7716c2b37362",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "1fb4f81484525a846717d67591337d0a3f801f39",
      "old_mode": 33188,
      "old_path": "docs/BUILD.bazel",
      "new_id": "3a222ab8d2cca4a6ae0aa8028d4a7a7a5761eb33",
      "new_mode": 33188,
      "new_path": "docs/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3d7b5e5bbdbb5edaee9fc40c6834d27dff90b763",
      "new_mode": 33188,
      "new_path": "docs/py_console_script_binary.md"
    },
    {
      "type": "modify",
      "old_id": "be9466d883c8707acded222b847eea86f9c53ed4",
      "old_mode": 33188,
      "old_path": "examples/bzlmod/MODULE.bazel",
      "new_id": "0d1c7a736be71ed1ba137b5ccb6708286d0d55d4",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/MODULE.bazel"
    },
    {
      "type": "delete",
      "old_id": "f68552c3ef30953d8d9e464bbb374cc8acda6360",
      "old_mode": 33188,
      "old_path": "examples/bzlmod/entry_point/BUILD.bazel",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a0939cb65beef5df37e2953ce3e4dcfac994dc81",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/entry_points/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5a65e9e1a346d74d6ad99bf51e8b28c93af698af",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/entry_points/tests/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bb3dbab66082445d4a666ec38b08512b8c6e6973",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/entry_points/tests/file_with_pylint_errors.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f6743ce9b5b8a83e0dbee30d6e8b7b4f53cfc299",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/entry_points/tests/pylint_deps_test.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c2532938d808bf0139b2660ddaff570da6d58cca",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/entry_points/tests/pylint_test.py"
    },
    {
      "type": "rename",
      "old_id": "5a3745834878998f1806e09beb3a53f326892fbc",
      "old_mode": 33188,
      "old_path": "examples/bzlmod/entry_point/test_entry_point.py",
      "new_id": "0a0235793b8ab97d6278a5aa4e80f02f84fa99e4",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/entry_points/tests/yamllint_test.py",
      "score": 64
    },
    {
      "type": "modify",
      "old_id": "47cdcf1ea887da3bfbb0bc9322a123c3f137913f",
      "old_mode": 33188,
      "old_path": "examples/bzlmod/requirements.in",
      "new_id": "702e15103de0bd6e0b82c5ecf81a4d4d0b9335d2",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/requirements.in"
    },
    {
      "type": "modify",
      "old_id": "e3a185ac88cba7902b368943492815ef01e3dcbe",
      "old_mode": 33188,
      "old_path": "examples/bzlmod/requirements_lock_3_10.txt",
      "new_id": "7f9bd3ac4a6ac8b049d9197f058115f6c76a6b4d",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/requirements_lock_3_10.txt"
    },
    {
      "type": "modify",
      "old_id": "ba1d4d714826a9cc1ab0a3ba7caf4272a59178e1",
      "old_mode": 33188,
      "old_path": "examples/bzlmod/requirements_lock_3_9.txt",
      "new_id": "79c18127ec6ffbfd7a02d7c5d4d903b083506c71",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/requirements_lock_3_9.txt"
    },
    {
      "type": "modify",
      "old_id": "9a28ae868794f51502bd2b798da33481b0ac62e1",
      "old_mode": 33188,
      "old_path": "examples/bzlmod/requirements_windows_3_10.txt",
      "new_id": "a8f05add6b3f6a26df94f926a1131b14ef4689c6",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/requirements_windows_3_10.txt"
    },
    {
      "type": "modify",
      "old_id": "08f0979d52fedf5fa8ef74d9a9517046d91bcdf9",
      "old_mode": 33188,
      "old_path": "examples/bzlmod/requirements_windows_3_9.txt",
      "new_id": "790e3d5d11146a917d0d51117e615d87930621f3",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/requirements_windows_3_9.txt"
    },
    {
      "type": "modify",
      "old_id": "56630e513d3ce76196abf45791a3cba234d2052f",
      "old_mode": 33188,
      "old_path": "examples/pip_parse_vendored/BUILD.bazel",
      "new_id": "b87b2aa812e66078aa109de50b7f9722bcc83871",
      "new_mode": 33188,
      "new_path": "examples/pip_parse_vendored/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "c5f25803c78cae974114e8df177b82804b31b5b7",
      "old_mode": 33188,
      "old_path": "python/BUILD.bazel",
      "new_id": "aa8c8bf3e4fa70ea3a89b0f9f2968845ad24b6be",
      "new_mode": 33188,
      "new_path": "python/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "20e03dc21ddd00261bb72df0ec8888abe96b3d1f",
      "old_mode": 33188,
      "old_path": "python/config_settings/transition.bzl",
      "new_id": "f9f19f2940c53f17d3a94a98ce10a84b9b52e15f",
      "new_mode": 33188,
      "new_path": "python/config_settings/transition.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "981a1ccf695f97711fb2088d27b8e94f6fc7206b",
      "new_mode": 33188,
      "new_path": "python/entry_points/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "60e74f579d123717d79605e2ba32ac16fe75d4a9",
      "new_mode": 33188,
      "new_path": "python/entry_points/py_console_script_binary.bzl"
    },
    {
      "type": "modify",
      "old_id": "4a3d512ae770ad1bab0aa9a7f9fd2e2032e5aa54",
      "old_mode": 33188,
      "old_path": "python/pip_install/pip_hub_repository_requirements_bzlmod.bzl.tmpl",
      "new_id": "53d4ee99c44ceef2c68415370fb7983d359b3b44",
      "new_mode": 33188,
      "new_path": "python/pip_install/pip_hub_repository_requirements_bzlmod.bzl.tmpl"
    },
    {
      "type": "modify",
      "old_id": "2df60b0b526ce6ddac66544e8698f55cff4a3d22",
      "old_mode": 33188,
      "old_path": "python/pip_install/pip_repository_requirements_bzlmod.bzl.tmpl",
      "new_id": "00580f5593ce74e6e03e23070e52aed5d3c62933",
      "new_mode": 33188,
      "new_path": "python/pip_install/pip_repository_requirements_bzlmod.bzl.tmpl"
    },
    {
      "type": "modify",
      "old_id": "29b5a6c885c12f824590b78d20dddc447848cf56",
      "old_mode": 33188,
      "old_path": "python/private/BUILD.bazel",
      "new_id": "48c3f8c73b6a4aa09c4775c2d66c9e62ec2a37bf",
      "new_mode": 33188,
      "new_path": "python/private/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bd992a8f757665805c105355e90f4c0d94d608c8",
      "new_mode": 33188,
      "new_path": "python/private/py_console_script_binary.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7dd4dd2dad866aacea5473b62c8a666c03b2f87e",
      "new_mode": 33188,
      "new_path": "python/private/py_console_script_gen.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "30e93c2e5b6d618b5e6dde2363d70a588a9de2a9",
      "new_mode": 33188,
      "new_path": "python/private/py_console_script_gen.py"
    },
    {
      "type": "modify",
      "old_id": "b2919c10410d787ae87003ac9739e10ef7a836c4",
      "old_mode": 33188,
      "old_path": "python/private/toolchains_repo.bzl",
      "new_id": "20dc9763e043ceeb6dae77404263d5deaaf1fde7",
      "new_mode": 33188,
      "new_path": "python/private/toolchains_repo.bzl"
    },
    {
      "type": "modify",
      "old_id": "2dd22821460a412e1bcde6a0477a461c72f439f0",
      "old_mode": 33188,
      "old_path": "tests/BUILD.bazel",
      "new_id": "70dfa48857c9ccea6b4f8cc75c9b3b4a4213daba",
      "new_mode": 33188,
      "new_path": "tests/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7a22d3c92b573187388f182c53b43d0f63b12037",
      "new_mode": 33188,
      "new_path": "tests/entry_points/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "80b5f20bde2a9a1c274946efd1057e42c6055db6",
      "new_mode": 33188,
      "new_path": "tests/entry_points/py_console_script_gen_test.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4764a3ff2e67a9f50a40a8b2a6495de5fb795e78",
      "new_mode": 33188,
      "new_path": "tests/entry_points/simple_macro.bzl"
    }
  ]
}
