All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
- Adds a uv lock translator.
- Adds
default_build_dependencies
.
- Adds
install_exclude_globs
to exclude certain files during installation of wheels.
- BREAKING Introduce
package_annotation
which replacesalways_build_packages
,build_target_overrides
,package_build_dependencies
andpackage_ignore_dependencies
.
- Using
local_wheels
inpycross_lock_repo
or thelock_import
extension resulted in an invalidselect
statement being generated. - Auto toolchain creation compatibility with rules_python 0.30+.
- Fix
pycross
package imports when using--experimental_python_import_all_repositories
.
- Rely on
cfg = 'exec'
when registering toolchains to limit the combinatorial explosion of len(python versions) _ len(target platforms) _ len(exec platforms). With this change, we register only len(python versions) toolchains.
- Adds
requirements.bzl
tolock_repo
with the standardrequirement
function andall_requirements
list.
- Fixed a toolchain resolution issue if the default version toolchain came before the requested toolchain in lexicographical order. E.g., if 3.12.0 was the default, and 3.9.18 was requested, the matched toolchain would be 3.12.0.
- Fixed an issue where toolchain resolution would fail if the default python version was configured as X.Y instead of X.Y.Z
- Set default GLIBC version to
2.28
, using [pep600_compliance] (https://github.com/mayeut/pep600_compliance#acceptable-distros-to-build-wheels) as a guide.
- Fixed regressions in some examples.
- Bumped
repairwheel
version to fix wheel builds when targeting linux_aarch64.
- (pycross_lock_file)
disallow_builds
- fail if anypycross_wheel_build
targets would be generated. - (pycross_lock_file)
generate_file_map
- generates aFILES
constant that contains referenced whl and sdist files. - Adds bzlmod support: see extensions under pycross/extensions.
- Adds a
pycross_lock_repo
WORKSPACE rule. See example.
- Self-host dependencies; no more
pip_install
dependency. - PDM translator no longer depends on PDM itself (which was pulling in a bunch of third-party dependencies).
PycrossTargetEnvironmentInfo
is removed; environment JSON files are read directly.- BREAKING The original
pycross_lock_repo
is renamed topycross_lock_file_repo
. bzl_lock_generator
is split into two components:raw_lock_resolver
andresolved_lock_renderer
.- BREAKING (pycross_poetry_lock_model)
poetry_lock_file
andpoetry_project_file
are renamed tolock_file
andproject_file
, mirroring the PDM translator. - BREAKING package names in lock files use Python's own normalization semantics and are no longer undercased.
For example,
SQLAlchemy-Utils
becomes:sqlalchemy-utils
, not:sqlalchemy_utils
. - BREAKING (pycross_lock_file) most of the
*_prefix
(package_prefix
,build_prefix
, etc.) are removed. - WORKSPACE-specific rules are moved from
pycross/defs.bzl
topycross/workspace.bzl
.
- Default
pycross_target_platform
abi to"none"
and platform to"any"
when not specified, instead of using host values. - Generated lock files satisfy Buildifier.
0.4 - 2023-11-24
(No notes - pre-dates this file.)
0.3 - 2023-11-22
(No notes - pre-dates this file.)
0.2 - 2023-10-16
(No notes - pre-dates this file.)
0.1 - 2022-10-18
(No notes - pre-dates this file.)