Repository navigation
Conversation
Generate legacy requirements from pyproject.toml, declare required cryptography support, and separate assembly and QR image extras. Add independent dependency resolution and optional-feature checks on the upstream package layout. Refs: bkerler#830 (dependency management stage)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Consolidate Python dependency declarations in
pyproject.tomland separate optional features from the dependencies required by the main CLI tools.Previously,
pyproject.tomlandrequirements.txtmaintained different dependency lists, so installing the package with pip or pipx could produce a different environment from installing the legacy requirements file.This PR makes
pyproject.tomlthe source of truth while retaining compatibility with existing source-based installation instructions.Changes
Dependency declarations
pycryptodomewithpycryptodomex, matching theCryptodomenamespace used by the source code.lxml,pylzma, andparamiko.asmextra.qrcodeextra with Pillow support for OnePlus factory QR code generation.The optional features can be installed with:
Legacy requirements
.github/scripts/update_requirements.pyto generaterequirements.txtfrompyproject.toml.--checkmode to detect outdated generated requirements.uv.lockand document the new dependency structure in the README.Optional dependency handling
asmextra installed.Testing
All four platform/Python combinations passed locally:
The test suite covers isolated installation of base and optional dependencies, wheel/sdist builds, dependency metadata consistency, and functional checks for assembly/disassembly and QR code generation.
No physical device operations were tested.
Scope
This PR focuses only on dependency management and optional features. It does not include the separate packaging or installation-script refactors.
Related to #830.