A tool to resolve requirements conflicts between n requirements files.
Project description
🔧 Requirements Resolver
Effortlessly merge and resolve Python dependencies from two
requirements.txtfiles via a sleek GUI or CLI tool.
🔍 Overview
Requirements Resolver is a production‑ready Python package that:
- Parses two separate
requirements.txtfiles - Fetches all available versions from PyPI
- Computes the latest set of compatible versions satisfying both files
- Caches results locally for lightning‑fast subsequent runs
- Validates the merged set in an ephemeral virtual environment
- Delivers both a polished GUI (Tkinter) and a powerful CLI
Ideal for open‑source projects, CI/CD pipelines, and large‑scale Python deployments.
🚀 Installation
Ensure you have Python 3.8+ installed. On Debian/Ubuntu, install Tkinter for GUI support:
sudo apt-get update
sudo apt-get install python3-tk
Then install via pip:
pip install requirements-resolver
Or grab the latest source:
git clone https://github.com/ruslanmv/requirements-resolver.git
cd requirements-resolver
pip install .
🎬 Quickstart
GUI Mode
requirements-resolver
- Browse… to select your two
requirements.txtfiles. - Click Resolve Dependencies.
- Watch progress logs and find your
requirements.merged.txtupon success.
CLI Mode
requirements-resolver -f reqs/prod.txt reqs/dev.txt
-
Specify output:
requirements-resolver -f reqs/prod.txt reqs/dev.txt -o requirements.final.txt
🛠 Features
- Dual Interfaces: Tkinter‐based GUI + rich CLI
- PyPI Integration: Real‑time version lookup
- Local Caching: Minimizes API calls for repeat runs
- Automated Testing: Leverages
venvto verify installability - Configurable: Override cache directory, HTTP timeouts, log levels
🧑💻 Development
git clone https://github.com/ruslanmv.com/requirements-resolver.git
cd requirements-resolver
make setup # Installs dev dependencies
make run # Launches GUI in development mode
make lint # Checks code style (flake8)
make test # Runs unit tests
See CONTRIBUTING.md for guidelines.
📄 Documentation
Full user guide, API reference, and examples are on Read the Docs: https://requirements-resolver.readthedocs.io
❤️ Contributing & Support
Please ⭐ the repo, file issues, and submit PRs! For questions or feature requests, open an issue or join our Slack channel.
📜 License
Distributed under the MIT License. © 2025 ruslanmv.com
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file requirements_resolver-0.1.1.tar.gz.
File metadata
- Download URL: requirements_resolver-0.1.1.tar.gz
- Upload date:
- Size: 14.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49f04008301bf9b37be572a813aa9ef1172d7e18a9aca4940f4dfa51be6169a1
|
|
| MD5 |
55cd92052c7c44109ffb7e71971cad11
|
|
| BLAKE2b-256 |
1f817cc4fd1ef62c271b24bde134d5bfc0d62fda3d4b8e3c13e567fd12a36479
|
Provenance
The following attestation bundles were made for requirements_resolver-0.1.1.tar.gz:
Publisher:
build-release.yml on ruslanmv/requirements-resolver
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
requirements_resolver-0.1.1.tar.gz -
Subject digest:
49f04008301bf9b37be572a813aa9ef1172d7e18a9aca4940f4dfa51be6169a1 - Sigstore transparency entry: 295893883
- Sigstore integration time:
-
Permalink:
ruslanmv/requirements-resolver@2cb650d40eefe86c467e0c8473154cd509c30648 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/ruslanmv
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-release.yml@2cb650d40eefe86c467e0c8473154cd509c30648 -
Trigger Event:
release
-
Statement type:
File details
Details for the file requirements_resolver-0.1.1-py3-none-any.whl.
File metadata
- Download URL: requirements_resolver-0.1.1-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fda23c3716b39016cb00fc1d2dcc03c5a97e1f4c33f810d257575ef9a16c8e62
|
|
| MD5 |
d4dcba00270b1b6c5d2e0debec8a913a
|
|
| BLAKE2b-256 |
2f6549791b2b4fb277df599eba7886c1a57aab56b660e12b49eef28c7d1d4efc
|
Provenance
The following attestation bundles were made for requirements_resolver-0.1.1-py3-none-any.whl:
Publisher:
build-release.yml on ruslanmv/requirements-resolver
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
requirements_resolver-0.1.1-py3-none-any.whl -
Subject digest:
fda23c3716b39016cb00fc1d2dcc03c5a97e1f4c33f810d257575ef9a16c8e62 - Sigstore transparency entry: 295893903
- Sigstore integration time:
-
Permalink:
ruslanmv/requirements-resolver@2cb650d40eefe86c467e0c8473154cd509c30648 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/ruslanmv
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-release.yml@2cb650d40eefe86c467e0c8473154cd509c30648 -
Trigger Event:
release
-
Statement type: