diff options
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r-- | CHANGELOG.md | 336 |
1 files changed, 0 insertions, 336 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index af61b44..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,336 +0,0 @@ -# rules_python Changelog - -This is a human-friendly changelog in a keepachangelog.com style format. -Because this changelog is for end-user consumption of meaningful changes,only -a summary of a release's changes is described. This means every commit is not -necessarily mentioned, and internal refactors or code cleanups are omitted -unless they're particularly notable. - -A brief description of the categories of changes: - -* `Changed`: Some behavior changed. If the change is expected to break a - public API or supported behavior, it will be marked as **BREAKING**. Note that - beta APIs will not have breaking API changes called out. -* `Fixed`: A bug, or otherwise incorrect behavior, was fixed. -* `Added`: A new feature, API, or behavior was added in a backwards compatible - manner. -* Particular sub-systems are identified using parentheses, e.g. `(bzlmod)` or - `(docs)`. - -## Unreleased - -[0.XX.0]: https://github.com/bazelbuild/rules_python/releases/tag/0.XX.0 - -### Changed - -### Fixed - -### Added - -## [0.28.0] - 2024-01-07 - -[0.28.0]: https://github.com/bazelbuild/rules_python/releases/tag/0.28.0 - -### Changed - -* **BREAKING** (pip_install) the deprecated `pip_install` macro and related - items have been removed. - -* **BREAKING** Support for Bazel 5 has been officially dropped. This release - was only partially tested with Bazel 5 and may or may not work with Bazel 5. - Subequent versions will no longer be tested under Bazel 5. - -* (runfiles) `rules_python.python.runfiles` now directly implements type hints - and drops support for python2 as a result. - -* (toolchains) `py_runtime`, `py_runtime_pair`, and `PyRuntimeInfo` now use the - rules_python Starlark implementation, not the one built into Bazel. NOTE: This - only applies to Bazel 6+; Bazel 5 still uses the builtin implementation. - -* (pip_parse) The parameter `experimental_requirement_cycles` may be provided a - map of names to lists of requirements which form a dependency - cycle. `pip_parse` will break the cycle for you transparently. This behavior - is also available under bzlmod as - `pip.parse(experimental_requirement_cycles={})`. - -* (toolchains) `py_runtime` can now take an executable target. Note: runfiles - from the target are not supported yet. - ([#1612](https://github.com/bazelbuild/rules_python/issues/1612)) - -### Fixed - -* (gazelle) The gazelle plugin helper was not working with Python toolchains 3.11 - and above due to a bug in the helper components not being on PYTHONPATH. - -* (pip_parse) The repositories created by `whl_library` can now parse the `whl` - METADATA and generate dependency closures irrespective of the host platform - the generation is executed on. This can be turned on by supplying - `experimental_target_platforms = ["all"]` to the `pip_parse` or the `bzlmod` - equivalent. This may help in cases where fetching wheels for a different - platform using `download_only = True` feature. -* (bzlmod pip.parse) The `pip.parse(python_interpreter)` arg now works for - specifying a local system interpreter. -* (bzlmod pip.parse) Requirements files with duplicate entries for the same - package (e.g. one for the package, one for an extra) now work. -* (bzlmod python.toolchain) Submodules can now (re)register the Python version - that rules_python has set as the default. - ([#1638](https://github.com/bazelbuild/rules_python/issues/1638)) -* (whl_library) Actually use the provided patches to patch the whl_library. - On Windows the patching may result in files with CRLF line endings, as a result - the RECORD file consistency requirement is lifted and now a warning is emitted - instead with a location to the patch that could be used to silence the warning. - Copy the patch to your workspace and add it to the list if patches for the wheel - file if you decide to do so. -* (coverage): coverage reports are now created when the version-aware - rules are used. - ([#1600](https://github.com/bazelbuild/rules_python/issues/1600)) -* (toolchains) Workspace builds register the py cc toolchain (bzlmod already - was). This makes e.g. `//python/cc:current_py_cc_headers` Just Work. - ([#1669](https://github.com/bazelbuild/rules_python/issues/1669)) - -### Added - -* (docs) bzlmod extensions are now documented on rules-python.readthedocs.io -* (docs) Support and backwards compatibility policies have been documented. - See https://rules-python.readthedocs.io/en/latest/support.html -* (gazelle) `file` generation mode can now also add `__init__.py` to the srcs - attribute for every target in the package. This is enabled through a separate - directive `python_generation_mode_per_file_include_init`. - - -## [0.27.0] - 2023-11-16 - -[0.27.0]: https://github.com/bazelbuild/rules_python/releases/tag/0.27.0 - -### Changed - -* Make `//python/pip_install:pip_repository_bzl` `bzl_library` target internal - as all of the publicly available symbols (etc. `package_annotation`) are - re-exported via `//python:pip_bzl` `bzl_library`. - -* (gazelle) Gazelle Python extension no longer has runtime dependencies. Using - `GAZELLE_PYTHON_RUNTIME_DEPS` from `@rules_python_gazelle_plugin//:def.bzl` is - no longer necessary. - -* (pip_parse) The installation of `pip_parse` repository rule toolchain - dependencies is now done as part of `py_repositories` call. - -* (pip_parse) The generated `requirements.bzl` file now has an additional symbol - `all_whl_requirements_by_package` which provides a map from the normalized - PyPI package name to the target that provides the built wheel file. Use - `pip_utils.normalize_name` function from `@rules_python//python:pip.bzl` to - convert a PyPI package name to a key in the `all_whl_requirements_by_package` - map. - -* (pip_parse) The flag `incompatible_generate_aliases` has been flipped to - `True` by default on `non-bzlmod` setups allowing users to use the same label - strings during the transition period. For example, instead of - `@pypi_foo//:pkg`, you can now use `@pypi//foo` or `@pypi//foo:pkg`. Other - labels that are present in the `foo` package are `dist_info`, `whl` and - `data`. Note, that the `@pypi_foo//:pkg` labels are still present for - backwards compatibility. - -* (gazelle) The flag `use_pip_repository_aliases` is now set to `True` by - default, which will cause `gazelle` to change third-party dependency labels - from `@pip_foo//:pkg` to `@pip//foo` by default. - -* The `compile_pip_requirements` now defaults to `pyproject.toml` if the `src` - or `requirements_in` attributes are unspecified, matching the upstream - `pip-compile` behaviour more closely. - -* (gazelle) Use relative paths if possible for dependencies added through - the use of the `resolve` directive. - -* (gazelle) When using `python_generation_mode file`, one `py_test` target is - made per test file even if a target named `__test__` or a file named - `__test__.py` exists in the same package. Previously in these cases there - would only be one test target made. - -Breaking changes: - -* (pip) `pip_install` repository rule in this release has been disabled and - will fail by default. The API symbol is going to be removed in the next - version, please migrate to `pip_parse` as a replacement. The `pip_parse` - rule no longer supports `requirements` attribute, please use - `requirements_lock` instead. - -* (py_wheel) switch `incompatible_normalize_name` and - `incompatible_normalize_version` to `True` by default to enforce `PEP440` - for wheel names built by `rules_python`. - -* (tools/wheelmaker.py) drop support for Python 2 as only Python 3 is tested. - -### Fixed - -* Skip aliases for unloaded toolchains. Some Python versions that don't have full - platform support, and referencing their undefined repositories can break operations - like `bazel query rdeps(...)`. - -* Python code generated from `proto_library` with `strip_import_prefix` can be imported now. - -* (py_wheel) Produce deterministic wheel files and make `RECORD` file entries - follow the order of files written to the `.whl` archive. - -* (gazelle) Generate a single `py_test` target when `gazelle:python_generation_mode project` - is used. - -* (gazelle) Move waiting for the Python interpreter process to exit to the shutdown hook - to make the usage of the `exec.Command` more idiomatic. - -* (toolchains) Keep tcl subdirectory in Windows build of hermetic interpreter. - -* (bzlmod) sub-modules now don't have the `//conditions:default` clause in the - hub repos created by `pip.parse`. This should fix confusing error messages - in case there is a misconfiguration of toolchains or a bug in `rules_python`. - -### Added - -* (bzlmod) Added `.whl` patching support via `patches` and `patch_strip` - arguments to the new `pip.override` tag class. - -* (pip) Support for using [PEP621](https://peps.python.org/pep-0621/) compliant - `pyproject.toml` for creating a resolved `requirements.txt` file. - -* (utils) Added a `pip_utils` struct with a `normalize_name` function to allow users - to find out how `rules_python` would normalize a PyPI distribution name. - -[0.27.0]: https://github.com/bazelbuild/rules_python/releases/tag/0.27.0 - -## [0.26.0] - 2023-10-06 - -### Changed - -* Python version patch level bumps: - * 3.8.15 -> 3.8.18 - * 3.9.17 -> 3.9.18 - * 3.10.12 -> 3.10.13 - * 3.11.4 -> 3.11.6 - -* (deps) Upgrade rules_go 0.39.1 -> 0.41.0; this is so gazelle integration works with upcoming Bazel versions - -* (multi-version) The `distribs` attribute is no longer propagated. This - attribute has been long deprecated by Bazel and shouldn't be used. - -* Calling `//python:repositories.bzl#py_repositories()` is required. It has - always been documented as necessary, but it was possible to omit it in certain - cases. An error about `@rules_python_internal` means the `py_repositories()` - call is missing in `WORKSPACE`. - -* (bzlmod) The `pip.parse` extension will generate os/arch specific lock - file entries on `bazel>=6.4`. - - -### Added - -* (bzlmod, entry_point) Added - [`py_console_script_binary`](./docs/py_console_script_binary.md), which - allows adding custom dependencies to a package's entry points and customizing - the `py_binary` rule used to build it. - -* New Python versions available: `3.8.17`, `3.11.5` using - https://github.com/indygreg/python-build-standalone/releases/tag/20230826. - -* (gazelle) New `# gazelle:python_generation_mode file` directive to support - generating one `py_library` per file. - -* (python_repository) Support `netrc` and `auth_patterns` attributes to enable - authentication against private HTTP hosts serving Python toolchain binaries. - -* `//python:packaging_bzl` added, a `bzl_library` for the Starlark - files `//python:packaging.bzl` requires. -* (py_wheel) Added the `incompatible_normalize_name` feature flag to - normalize the package distribution name according to latest Python - packaging standards. Defaults to `False` for the time being. -* (py_wheel) Added the `incompatible_normalize_version` feature flag - to normalize the package version according to PEP440 standard. This - also adds support for local version specifiers (versions with a `+` - in them), in accordance with PEP440. Defaults to `False` for the - time being. - -* New Python versions available: `3.8.18`, `3.9.18`, `3.10.13`, `3.11.6`, `3.12.0` using - https://github.com/indygreg/python-build-standalone/releases/tag/20231002. - `3.12.0` support is considered beta and may have issues. - -### Removed - -* (bzlmod) The `entry_point` macro is no longer supported and has been removed - in favour of the `py_console_script_binary` macro for `bzlmod` users. - -* (bzlmod) The `pip.parse` no longer generates `{hub_name}_{py_version}` hub repos - as the `entry_point` macro has been superseded by `py_console_script_binary`. - -* (bzlmod) The `pip.parse` no longer generates `{hub_name}_{distribution}` hub repos. - -### Fixed - -* (whl_library) No longer restarts repository rule when fetching external - dependencies improving initial build times involving external dependency - fetching. - -* (gazelle) Improve runfiles lookup hermeticity. - -[0.26.0]: https://github.com/bazelbuild/rules_python/releases/tag/0.26.0 - -## [0.25.0] - 2023-08-22 - -### Changed - -* Python version patch level bumps: - * 3.9.16 -> 3.9.17 - * 3.10.9 -> 3.10.12 - * 3.11.1 -> 3.11.4 -* (bzlmod) `pip.parse` can no longer automatically use the default - Python version; this was an unreliable and unsafe behavior. The - `python_version` arg must always be explicitly specified. - -### Fixed - -* (docs) Update docs to use correct bzlmod APIs and clarify how and when to use - various APIs. -* (multi-version) The `main` arg is now correctly computed and usually optional. -* (bzlmod) `pip.parse` no longer requires a call for whatever the configured - default Python version is. - -### Added - -* Created a changelog. -* (gazelle) Stop generating unnecessary imports. -* (toolchains) s390x supported for Python 3.9.17, 3.10.12, and 3.11.4. - -[0.25.0]: https://github.com/bazelbuild/rules_python/releases/tag/0.25.0 - -## [0.24.0] - 2023-07-11 - -### Changed - -* **BREAKING** (gazelle) Gazelle 0.30.0 or higher is required -* (bzlmod) `@python_aliases` renamed to `@python_versions -* (bzlmod) `pip.parse` arg `name` renamed to `hub_name` -* (bzlmod) `pip.parse` arg `incompatible_generate_aliases` removed and always - true. - -### Fixed - -* (bzlmod) Fixing Windows Python Interpreter symlink issues -* (py_wheel) Allow twine tags and args -* (toolchain, bzlmod) Restrict coverage tool visibility under bzlmod -* (pip) Ignore temporary pyc.NNN files in wheels -* (pip) Add format() calls to glob_exclude templates -* plugin_output in py_proto_library rule - -### Added - -* Using Gazelle's lifecycle manager to manage external processes -* (bzlmod) `pip.parse` can be called multiple times with different Python - versions -* (bzlmod) Allow bzlmod `pip.parse` to reference the default python toolchain and interpreter -* (bzlmod) Implementing wheel annotations via `whl_mods` -* (gazelle) support multiple requirements files in manifest generation -* (py_wheel) Support for specifying `Description-Content-Type` and `Summary` in METADATA -* (py_wheel) Support for specifying `Project-URL` -* (compile_pip_requirements) Added `generate_hashes` arg (default True) to - control generating hashes -* (pip) Create all_data_requirements alias -* Expose Python C headers through the toolchain. - -[0.24.0]: https://github.com/bazelbuild/rules_python/releases/tag/0.24.0 |