Metadata-Version: 2.1
Name: pip-compile-cross-platform
Version: 0.9.2
Summary: Lock your dependencies once, use your lockfile everywhere
Home-page: https://gitlab.com/mitchhentges/pip-compile-cross-platform
License: AGPL-3.0-only
Author: Mitchell Hentges
Author-email: mitch9654@gmail.com
Requires-Python: >=3.7,<4.0
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: pip-requirements-parser (>=31.2.0,<32.0.0)
Requires-Dist: poetry (>=1.2.0b1,<2.0.0)
Requires-Dist: tomli (>=2.0.1,<3.0.0)
Requires-Dist: tomli-w (>=1.0.0,<2.0.0)
Project-URL: Repository, https://gitlab.com/mitchhentges/pip-compile-cross-platform
Description-Content-Type: text/markdown

# `pip-compile-cross-platform`

🚨 This is early-stage software, it's currently recommended to verify outputted changes 🚨

## Usage

1. `pip install --user pip-compile-cross-platform`
2. `pip-compile-cross-platform requirements.in`

## Description

[`pip-compile`](https://github.com/jazzband/pip-tools) is an incredible tool built by
[the Jazzband crew](https://jazzband.co/). However, there's one main limitation: [cross-environment usage is
unsupported](https://github.com/jazzband/pip-tools#cross-environment-usage-of-requirementsinrequirementstxt-and-pip-compile).

> As the resulting requirements.txt can differ for each environment, users must execute pip-compile on each Python
> environment separately to generate a requirements.txt valid for each said environment.

`pip-compile-cross-platform` is planned to act as a stand-in replacement for `pip-compile` that **can** produce a
single, source-of-truth `requirements.txt` file that can be used in any target environment.

Note that compatibility with `pip-compile` is still weak, and [help to improve the state of
compatibility would be much appreciated](https://gitlab.com/mitchhentges/pip-compile-cross-platform/-/issues/1).

## How it works

Environment-specific dependencies are defined using [environment markers](https://peps.python.org/pep-0496/).
`pip-compile` processes environment markers up-front according to the current environment.
[`poetry`](https://github.com/python-poetry/poetry), **another** fantastic project, can export a `requirements.txt`
file while tracking the state of all environment markers.

Essentially, `pip-compile-cross-platform` is a thin wrapper around `poetry` that mimicks the interface of `pip-compile`.

