Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
Minor updates - still needs a larger overhaul
  • Loading branch information
jvolkman authored Jan 29, 2024
1 parent db2ffe8 commit ada5959
Showing 1 changed file with 5 additions and 7 deletions.
12 changes: 5 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
# `rules_pycross` - Python + cross platform

A proof-of-concept ruleset to (hopefully) improve cross-platform Python builds with Bazel.

**Note:** very much still experimental.
Use your Poetry or PDM lock files with Bazel and enabling cross-platform builds.

### Features:

- A single lock file for all target platforms, thanks to Poetry
- A single lock file for all target platforms, thanks to Poetry and PDM
- Builds that happen in build actions, not during WORKSPACE initialization
- Standard Bazel `http_file` rules used for fetching dependencies. `pip` is not a build-time dependency.

See the [example](examples/poetry).
See the [examples](examples).

### Why?

Expand All @@ -19,7 +17,7 @@ have a couple of issues that make cross-platform usage difficult (see https://gi

- they're based on `pip` and `pip-compile` which do not generate cross-platform lock files. For example, IPython depends
on `appnope` only on MacOS. Lock files generated by `pip-compile` will differ based on whether they're created on Linux
or MacOS.
or MacOS. The `pip-compile` solution to this problem is to generate lock files for different systems, on different systems.
- They use `pip install` during the `WORKSPACE` phase to fetch and possibly build packages (including native libraries).
`WORKSPACE` operations lack many of the things that Bazel's build actions provide such as sandboxing and remote execution.

Expand All @@ -46,4 +44,4 @@ A `pip install` operation can be roughly broken down into these parts:
4. `pycross_wheel_library` "installs" (extracts) a Python wheel - either downloaded or built from an sdist - and
provides it as a `py_library`.

See the [generated docs](docs/rules.md).
See the [generated docs](docs).

0 comments on commit ada5959

Please sign in to comment.